2026/4/6 2:20:38
网站建设
项目流程
如何提高网站的搜索排名,做的新网站能用多久,电商订单系统,五个成功品牌推广案例JAVA基础语法
JAVA参考教程文档#xff08;这里#xff09;。
是解释型的语言#xff08;.java文件 javac-.class文件 解释器-JVM虚拟机#xff09;#xff0c;GO是编译型的#xff0c;PHP是解释型的。
JAVA变量有枚举类型#xff0c;PHP8 才开始支持枚举…JAVA基础语法JAVA参考教程文档这里。是解释型的语言.java文件 javac-.class文件 解释器-JVM虚拟机GO是编译型的PHP是解释型的。JAVA变量有枚举类型PHP8 才开始支持枚举类型。重载形参必须不同方法名称可以一样与重写可不变内部核心变 --- 多态性。多态存在的三个必要条件继承重写父类引用指向子类对象Parent p new Child();PHP是没有重载的不能有同名函数。多态的优点1. 消除类型之间的耦合关系2. 可替换性3. 可扩充性4. 接口性5. 灵活性6. 简化性当使用多态方式调用方法时首先检查父类中是否有该方法如果没有则编译错误如果有再去调用子类的同名方法。多态的好处可以使程序有良好的扩展并可以对所有类的对象进行通用处理。JAVA的字符串是 类对象这和PHP和GO是不一样的PHP 字符串可以直接加号拼接JAVA可以借助对象内函数来处理字符串拼接等操作也可以直接加号拼。小马理解JAVA的package名有点类似 GO的包PHP的命名空间。JAVA数据结构Java 集合框架https://m.runoob.com/java/java-collections.html集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容接口是代表集合的抽象数据类型。例如 Collection、List、Set、Map 等。之所以定义多个接口是为了以不同的方式操作集合对象实现类是集合接口的具体实现。从本质上讲它们是可重复使用的数据结构例如ArrayList、LinkedList、HashSet、HashMap。算法是实现集合接口的对象里的方法执行的一些有用的计算例如搜索和排序。这些算法被称为多态那是因为相同的方法可以在相似的接口上有着不同的实现。集合框架体系如图所示找一下图好理解。Java Iterator迭代器不是一个集合它是一种用于访问集合的方法可用于迭代 ArrayList 和 HashSet 等集合。// 创建集合ArrayListString sites new ArrayListString();sites.add(Google);sites.add(Runoob);sites.add(Taobao);sites.add(Zhihu);// 获取迭代器IteratorString it sites.iterator();// 输出集合中的第一个元素System.out.println(it.next());Java Object 类是所有类的父类也就是说 Java 的所有类都继承了 Object子类可以使用 Object 的所有方法。泛型泛型类泛型类的声明和非泛型类的声明类似除了在类名后面添加了类型参数声明部分。--- 这里与UML的泛化 是两种概念泛化有继承的意思。泛型类例子public class BoxT {private T t;public void add(T t) {this.t t;}public T get() {return t;}public static void main(String[] args) {BoxInteger integerBox new BoxInteger();BoxString stringBox new BoxString();integerBox.add(new Integer(10));stringBox.add(new String(菜鸟教程));System.out.printf(整型值为 :%d\n\n, integerBox.get());System.out.printf(字符串为 :%s\n, stringBox.get());}}GO和PHP的泛型话题Golang团队认为在类型系统和运行时的复杂性花费太大还没找到可以和这个复杂性相抵的良好设计。内置的map和slice其实都有泛型的味道加上可以用interface{}来构造容器可以达到泛型的效果。所以目前为止还没有直接的支持泛型。至于PHP目前还没必要支持泛型。JAVA类型通配符1、类型通配符一般是使用 ? 代替具体的类型参数。例如 List? 在逻辑上是 ListString,ListInteger 等所有 List具体类型实参 的父类。2、类型通配符上限通过形如List来定义如此定义就是通配符泛型值接受Number及其下层子类类型。3、类型通配符下限通过形如 List? super Number 来定义表示类型只能接受 Number 及其上层父类类型如 Object 类型的实例。对象的序列化和反序列化类 ObjectInputStream 和 ObjectOutputStream 是高层次的数据流它们包含反序列化和序列化对象的方法。请注意一个类的对象要想序列化成功必须满足两个条件该类必须实现 java.io.Serializable 接口。该类的所有属性必须是可序列化的。如果有一个属性不是可序列化的则该属性必须注明是短暂的。如果你想知道一个 Java 标准类是否是可序列化的请查看该类的文档。检验一个类的实例是否能序列化十分简单 只需要查看该类有没有实现 java.io.Serializable接口。Java 网络编程java.net 包中提供了两种常见的网络协议的支持TCP UDPSocket 编程套接字使用TCP提供了两台计算机之间的通信机制。 客户端程序创建一个套接字并尝试连接服务器的套接字。当连接建立时服务器会创建一个 Socket 对象。客户端和服务器现在可以通过对 Socket 对象的写入和读取来进行通信。java.net.Socket 类代表一个套接字并且 java.net.ServerSocket 类为服务器程序提供了一种来监听客户端并与他们建立连接的机制。socket是一般的app用的服务端之间的通信客户端是任何的socket client websocket 是web上用客户端一般是浏览器上的js或其他web客户端 SDK Applet 是一种 Java 程序。它一般运行在支持 Java 的 Web 浏览器内。因为它有完整的 Java API 支持,所以 Applet 是一个全功能的 Java 应用程序。applet 标签是在HTML文件中嵌入 Applet 的基础。applet codeHelloWorldApplet.class width320 height120好多java实例demo这里。Java 8 新特性Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 它支持函数式编程新的 JavaScript 引擎新的日期 API新的Stream API 等。Java 9 新特性注解的理解JAVA注解是 jdk 5新特性注解也被称为元数据为我们在代码中添加信息提供了一种形式化的方式。拥有如下优势简单易读的代码编译器类型检查使用 annotation API 为自己的注解构造处理工具。即使 Java 定义了一些类型的元数据但是一般来说注解类型的添加和如何使用完全取决于你。注解基本语法注解的语法十分简单主要是在现有语法中添加 符号。比如常用的Override检查该方法是否是重写方法。如果发现其父类或者是引用的接口中并没有该方法时会报编译错误。Deprecated标记过时方法。如果使用该方法会报编译警告。SuppressWarnings每当创建涉及重复工作的类或接口时你通常可以使用注解来自动化和简化流程。在这个例子中注解可以和任何修饰符共同用于方法诸如 public、static 或 void。从语法的角度上看注解的使用方式和修饰符的使用方式一致。自定义注解注意啊interface前边有个interface 这是自定义注解不是接口。public interface Student{String name(); //属性没有默认值使用时必须指定值。int age() default 0 ; //有默认值使用时可以不给也可以给。String[] hobbies(); //数组格式按照数组格式赋值只有一个时可以省略大括号。}//这样使用。Student(name小老犇hobbies{放牛,吃草})public void abc(){sout(注解使用)}注解中属性的数据类型一共有三种八种基本数据类型byte short int long float double boolean charClass String 枚举 注解以上所有类型的类型数组。元注解【用于定义注解】的注解通常用于注解的定义上Target目标描述自定义注解的使用范围比如类、接口、枚举、方法等等。 ---- 自定义一个注解类型有字典列表然后用来约束检查被 自定义注解注解的 元素我们定义了一个适用于类的注解代码如下所示Target({ElementType.TYPE})public interface AnnotationTest {//注意啊interface前边有个这是自定义注解不是接口。}AnnotationTestpublic class Test {//AnnotationTest ErroAnnotationTest not applicable to methodpublic void method(){}}Retention保留表示注解信息保存的时长。值 说明SOURCE 注解将被编译器丢弃该类型的注解信息只会保留在源码里源码经过编译后注解信息会被丢弃不会保留在编译好的class文件里CLASS 注解在class文件中可用但会被VM丢弃该类型的注解信息会保留在源码里和class文件里在执行的时候不会加载到虚拟机中请注意当注解未定义Retention值时默认值是CLASS如Java内置注解Override、Deprecated、SuppressWarnning等RUNTIME VM 将在运行期也保留注解因此可以通过反射机制读取注解的信息。Documented生成的JavaDoc文档。Inherited允许子类继承父类的注解一般情况下获取不到父类注解。Repeatable允许一个注解可以被使用一次或者多次Java 8。不包含任何元素的注解称为标记注解marker annotation例如上例中的 AnnotationTest 就是标记注解。注解元素注解元素可用的类型如下所示所有基本类型int、float、boolean等StringClassenumAnnotation以上类型的数组不允许使用任何包装类型但是由于自动装箱的存在这不算是什么限制。注解也可以作为元素的类型。Retention(RetentionPolicy.RUNTIME)Target(ElementType.METHOD)InheritedDocumentedpublic interface AnnotationTest {int id();String value() default value;double[] number();}public class Test {AnnotationTest(id1,value 123,number {1,2,3})public void method(){}AnnotationTest(id1,number {1,2,3})public void method2(){}}编译器会进行类型检查如果在注解某个方法时没有给出指定值时会编译错误使用default 关键字则该注解的处理器会使用此元素的默认值。使用反射操作注解方法 说明getAnnotations() 获取元素上所有的注解getDeclaredAnnotations() 获取元素上所有的注解不包括从父类(inherited)继承getAnnotation() 获取元素上指定注解getDeclaredAnnotation() 获取元素上指定注解不包括从父类(inherited)继承isAnnotationPresent() 指定类型的注解存在于此元素上则返回 true否则返回 false。注解不支持继承Spring笔者要提醒的是千万不要把Spring和Spring Framework搞混淆了很多文章都错误的定义了springspring是一个一站式的轻量级的java开发框架核心是控制反转IoC和面向切面AOP针对于开发的WEB层(springMVC)、业务层(IoC)、持久层(jdbcTemplate)等都提供了多种配置解决方案。这是Spring Framework的定义至于Spring是整个生态。Spring framework即Spring,是其他Spring全家桶的基础和核心包括SpringMVC业务开发、SpringBoot在MVC基础上简化了XML配置自动装配、SpringCloud一整套基于Spring Boot的微服务解决方案、SpringData、SpringSecurity。Spring由Rod Johnson创立2004年发布了Spring框架的第一版其目的是用户简化企业级开发的难度和周期。所以我们学习的时候不要避重就轻应该以Spring Framework和Spring Boot为主而不是Spring Cloud。spring文档https://www.w3cschool.cn/wkspring/dcu91icn.htmlspring视频教程https://www.imooc.com/video/3662IOC接口A a new 接口A实现类A1()a.echoA1name();接口cachecache new redis()XML或注解方式 实现IOC bean对象容器一个beanid 一个对象xml bean id 配置对应具体的类class接口实现类/bean.java 载入xml文件然后 某接口A a super.getBean(bean_id)a.hello();//接口函数得到接口实现类中的具体实现初始化bean容器spring注入bean对象互相注入设值注入构造注入 配置xml文件bean完成实现https://www.imooc.com/video/3668。 ----- 写完代码后含注入代码然后依赖还需要通过 配置XML bean来实现注入后的最终对象bean配置项bean作用域 单例每次请求新建每个http请求有效(像session)session每个session内有效global sessionSpring 基于注解的配置序号 注解 描述1 RequiredRequired 注解应用于 bean 属性的 setter 方法。 -----必须要在xml配置文件定义属性2 AutowiredAutowired 注解可以应用到 bean 属性的 setter 方法非 setter 方法构造函数和属性。---- 自动装载自定实例化 注入对象不用在xml配置注入3 Qualifier通过指定确切的将被连线的 beanAutowired 和 Qualifier 注解可以用来删除混乱。4 JSR-250 AnnotationsSpring 支持 JSR-250 的基础的注解其中包括了 ResourcePostConstruct 和 PreDestroy 注解。AOP面向切面编程 适用于功能是垂直的。实现方式预编译 aspectJ 和 运行期动态代理spring-aop 。https://www.w3cschool.cn/wkspring/izae1h9w.htmlhttps://www.jianshu.com/p/38e2ba053ed7日志事务安全控制thinkphp AOP(面向切面编程)钩子和行为在软件业AOP为Aspect Oriented Programming的缩写意为面向切面编程通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续是软件开发中的一个热点也是Spring框架中的一个重要内容是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离从而使得业务逻辑各部分之间的耦合度降低提高程序的可重用性同时提高了开发的效率。AOP大概意思指在程序需要扩展时不该动原本的代码在thinkphp中实现类似java的AOP可以使用“行为”。首先需要知道“切面”在thinkphp 中称为标签位(钩子,行为)。即在代码的某个位子加入一个标签这个标签代表执行一个或多个操作thinkphp也提供了几个标签.AI大模型学习福利作为一名热心肠的互联网老兵我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。一、全套AGI大模型学习路线AI大模型时代的学习之旅从基础到前沿掌握人工智能的核心技能因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获取二、640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获三、AI大模型经典PDF籍随着人工智能技术的飞速发展AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型如GPT-3、BERT、XLNet等以其强大的语言理解和生成能力正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获四、AI大模型商业化落地方案因篇幅有限仅展示部分资料需要点击文章最下方名片即可前往获作为普通人入局大模型时代需要持续学习和实践不断提高自己的技能和认知水平同时也需要有责任感和伦理意识为人工智能的健康发展贡献力量