![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
天宇龙腾
计算机CV程序猿、系统开发攻城狮、青枫网络工作室创始人,致力于科技拥抱生活的开源程序开发者!
展开
-
Java 基础核心知识
文章目录1. Java必知2. JVM 种类3. JDK安装目录结构4. Java特性5. 常见疑点6. 输入输出7. 空串与NULL串8. 基础代码1. Java必知Java于 1996 年第一次发布。LTS(Long Term Support) 长期支持版本Java类库源文件在 jdk 安装目录下的 src.zip 压缩文件中。Java是 强类型 + 面向对象 语言,每个变量必须声明一种类型。Java语言是跨平台的,但是 JVM 不是跨平台的。Java语言不一定是最好的语原创 2020-11-27 17:58:59 · 1196 阅读 · 0 评论 -
Java日志
Java一共有七个日志级别,默认情况下只记录前三个。SEVEREWARNINGINFOCONFIGFINEFINERFINEST原创 2020-12-13 22:09:08 · 114 阅读 · 3 评论 -
文档注释(JavaDOC)
在源代码中加入特殊定界符 /** ···注释··· */ ,届时将会生成一个具有专业水准的文档,特点是注释与代码在一起,防止在单独文档中不能保持两者的一致性。类注释放在定义的类之上,import语句之后。原创 2020-12-03 22:42:40 · 139 阅读 · 0 评论 -
注解(Annotation)
提一下:元数据 例如String name = “tylt”,真实数据是tylt也是最重要的,那么String name就是修饰真实数据的数据,叫元数据。代码中的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理,未来的开发模式都是基于注解的,相对较简洁。需要反射去读取注解信息,再去读其成员的值,再做事,没有注解的话只能用XML配置文件去做。自定义注解没有使用反射读取注解就没有信息处理流程,也就没有意义。JavaSE基础版 —> JavaEE。对注解进行解释说明的注解。...原创 2021-12-19 13:12:23 · 364 阅读 · 0 评论 -
面向对象(OOP)
面向对象程序设计(OOP - object oriented programming)面向对象程序由对象组成,每个对象对用户公开特定功能并隐藏实现的部分,很多的对象来自Java标准库,也存在一部分是开发者自定义的,只要当前对象能够满足要求,就不必去关心其功能是如何实现的。面向对象将数据放在第一位,再去考虑操作数据的算法,操作数据的过程也就被称为方法。类便是构建对象的模板,由类构造对象的过程称为创建类的实例。创建时使用构造器(构造函数)创建新实例(对象),如果希望构造的对象可以多次使用,那么就会将对象存原创 2020-12-02 22:30:49 · 4138 阅读 · 0 评论 -
String类
String 不可变的字符序列(具有不可变性)String 的实例化方式方式一:字面量定义(字面量形式 s1 位于方法区中的字符串常量池中,其中不存储相同内容的字符串)String s1 = "hello!";//构造方法中定义的值属于字面量方式,但是s3是变量指向堆中StringTest s3 =new StringTest("hello!");System.out.println(s1 == s3.name);//true方式二:new + 构造器方式(数据在new的时候堆空间开辟原创 2021-12-19 13:48:56 · 108 阅读 · 0 评论 -
抽象(Abstract)
抽象abstract定义的类或者方法被称为抽象类或抽象方法,抽象类不能被实例化,但是可以定义一个抽象类的对象变量去引用非抽象类对象。原创 2021-01-13 21:54:32 · 140 阅读 · 0 评论 -
接口(Interface)
文章目录1. 概念2. 接口常量3. 类常量4. 冲突解决方法5. 回调1. 概念Java用接口间接实现了C++的多重继承,一个类可以实现一个或多个接口,不但实现了多重继承的大多数好处,同时可以避免多重继承的复杂性和低效性。常量可以在接口中定义,任何实现这个接口的类都会继承这些常量,方便用于多个类使用。接口不是类,所以不能实例化,接口只是用来描述类应该做什么,定义一个规范,而不指定它如何去做,更像类实现的模板。接口及其成员的访问控制必须是公共的(public)接口的成员变量必须是pu原创 2020-12-07 20:37:44 · 169 阅读 · 0 评论 -
异常(Exception)
异常异常类型非检查型异常检查型异检查型异常一般在方法名增加一个throws子句,并且调用这个方法的任何方法也都需要一个throws 声明。原创 2020-12-07 22:58:21 · 112 阅读 · 0 评论 -
日期时间类
System类代表系统级的属性和控制方法,该类的构造器是 private 的,内部成员及方法都是 static 的,所以可以直接调用。,用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差,这个毫秒数称为时间戳,此方法适于计算时间差。java.sql.Date(java.util.Date的子类,数据库中的date类型交互)包含in、out、err三个成员变量,分别是标准输入流、标准输出流、标准错误输出流。exit(int status) 0代表正常退出,非0代表异常退出。...原创 2021-12-19 13:50:40 · 373 阅读 · 0 评论 -
枚举(Enum)
枚举比较枚举类型的值直接使用==即可,枚举的构造器总是私有的,所有的枚举类型都是Enum的子类。package xyz.tylt.test;public enum Test { SMALL, MEDIUM, MAX; public static void main(String[] args) { Test test = Test.MAX; System.out.println(test); }}......原创 2021-01-13 21:53:53 · 127 阅读 · 0 评论 -
集合(Collections)
文章目录1. 概念2. Collection接口2.1. List:有序、可重复(Vector、ArrayList、LinkedList)2.1.1 源码分析2.2. Set:无序、不可重复(HashSet、LinkedHashSet、TreeSet)3. Map接口3.1. 源码分析4. Collections工具类1. 概念因为数组存在弊端,为了方便多个对象的内存存储,可以动态的把多个对象的引用放入容器中初始化以后,其长度就不可修改。数组中提供的方法非常有限,对添加、删除、插入数据等操作,非常原创 2020-12-14 22:25:02 · 293 阅读 · 0 评论 -
程序、进程、线程
文章目录1. 概念2. 同步3. 异步1. 概念程序(Program):语言编写的指令集合,指一段静态的代码。进程(Process):动态的,一个正在运行的程序,及程序的一次执行过程,存在生命周期。可并发多个线程,每条线程执行不同任务 进程的三种状态 1. 就绪态 2. 运行态 3. 阻塞态线程(Thread):进程中的一个单一顺序的控制流,作为调度和执行的最小单位,每个线程都拥有独立的运行栈和程序计数器,切换的开销小,共享同一个进程中的结构(方法区、堆) 线原创 2020-12-12 23:15:14 · 1246 阅读 · 0 评论 -
Java内部类
内部类定义在类中的类使用内部类的原因:内部类可以对同一个包中的其它类隐藏内部类方法可以访问定义于这个类中的数据,包括私有。public class Outer { private int id = 10; class Inner { int id = 20; public void fun() { System.out.println("内部类显示外部类id" + Outer.this.id); } } public static void main(Strin原创 2020-12-07 21:34:41 · 150 阅读 · 0 评论 -
文件(File)
由于Java是面向对象的语言,所以每个文件或文件夹对应的则是File类的对象,File类只涉及文件创建、删除、重命名等操作,不能实现对文件内部读写,实现需要采用IO流完成,将File类对象传入IO流构造器中。路径分隔符与系统有关,Windows默认使用 “ \ ” ,UNIX和URL使用 “ / ”表示,由于Java程序支持跨平台运行,所以提供动态分隔符。从内存层面映射到物理层面,JVM关闭之后内存中的数据会消失,所以要将数据转化为相应的文件进行持久化存储;反之从物理映射到内存则是文件读取过程。......原创 2021-12-19 13:21:04 · 506 阅读 · 0 评论 -
I/O流(Input、Output)
文章目录1. 概念2. 分类3. 应用实例3.1 文件流3.2 缓冲流3.3 转换流3.4 标准输入输出流3.5 打印流3.6 数据流3.7 对象流3.8 随机存取文件流4. Java NIO1. 概念Input,从硬盘读取数据到内存Output,将内存中的数据输出到硬盘代表数据源对象或者接收数据的接收端对象本质是数据传输,根据传输的特性将流抽象为各种类,方便直观的进行数据操作作用是建立数据源与目的地的数据输送通道2. 分类根据数据流向分为输入流、输出流按照数据单位分为字节流原创 2021-01-13 23:06:01 · 320 阅读 · 0 评论 -
网络编程类
目的:直接或间接通过网络协议与其它计算机进行数据交换,实现通信问题:如何准确的定位到网络上一台或多台主机及主机上特定的应用,实现可靠高速传输的方式/* * InetAddress代表IP */InetAddress inetAddress = InetAddress.getByName("localhost");System.out.println(inetAddress.getHostName());System.out.println(inetAddress.getHostAddress原创 2021-12-19 13:52:59 · 412 阅读 · 0 评论 -
泛型(Generic)
泛型类int age;//未声明参数类型 T test;//泛型标签类型只影响定义成泛型的成员变量 Test < Integer > test = new Test < >();} }//在此处指明继承泛型父类的变量类型,也可以是TestSon extends Test,这样子类仍然是泛型类 public class TestSon extends Test < Integer > {/*...原创 2020-12-13 22:30:33 · 190 阅读 · 0 评论 -
反射(Reflection)
能够分析类能力的程序称为反射。检查类的结构(反射机制最重要的内容)使用反射在运行时分析对象使用反射编写泛型数组代码调用任意方法与构造器动态语言的关键,允许程序在执行期间借助 Reflection API 取得任何类的内部信息,并能直接操作任意对象的内部属性及方法因为在编译的时候并没有实例化对象,只有在运行时才能确定加载完类之后,在堆内存的方法区中就产生了一个 Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对原创 2020-12-07 22:58:56 · 123 阅读 · 0 评论 -
代理(Proxy)
由代理类和被代理类组成,类似于经纪人和明星之间的关系,是否创建对象由代理类进行决定,代理类和被代理类必须实现同一个接口,调用代理类方法实现同名被代理类方法的执行,在运行期间进行创建动态一个总代理类,称为动态代理,通过反射进行。代理类是在程序的运行过程中动态创建的,一旦被创建,它们也就变成了常规类,与虚拟机的常规类没有什么区别。只要是代理模式的话必须要有一个接口标准与一个被代理类(真正干活的)代理类可以在运行时创建全新的类,这样的代理类可以实现指定的接口。原创 2020-12-07 22:53:13 · 476 阅读 · 0 评论 -
Java数据库连接API(JDBC)
JDBC的PreparedStatement是预编译的Statement,防止SQL注入,由于是预编译的,查询一次之后放到数据库的缓存,下次执行时发现相同,所以执行效率高。原创 2020-01-07 19:51:06 · 334 阅读 · 1 评论 -
Java设计模式
单例模式package singlecase;public class LazySingle { private volatile static LazySingle single = null;//volatile表示禁止数据缓存以及重排序,即执行语句先后问题 //私有构造器,不允许外部程序再创建新的对象 private LazySingle() { } //共有静态的获取实例方法 public synchronized static LazySingle getInstan原创 2020-12-12 23:17:01 · 79 阅读 · 0 评论 -
垃圾回收机制
垃圾回收机制只回收JVM堆内存里的对象空间。对于其他物理连接,比如数据库连接、输入流输出流、Socket连接无能为力现在的JVM有多种垃圾回收实现算法,表现各异垃圾回收发生具有不可预知性,程序无法精确控制垃圾回收机制执行。可以将对象的引用变量设置为null,暗示垃圾回收机制可以回收该对象程序员可以通过 System.gc()或者 Runtime.getRuntime().gc()来通知系统进行垃圾回收,会有一些效果,但是系统是否进行垃圾回收依然不确定垃圾回收机制回收任何对象之前,总会先调用它的fi原创 2021-12-19 13:51:49 · 832 阅读 · 0 评论 -
lambda表达式与方法引用
lambda 表达式 λ属于匿名函数代码,使用箭头操作符 -> 左边是参数列表,右边是方法体 (参数类型 参数,···) -> {代码块}即使没有参数,也要提供空括号,就像是无参方法一样。lambda表达式是一个可传递的代码块也被称为闭包,可以在之后一次或者多次执行。函数可以作为参数进行传递。lambda的返回类型并不需要定义,它本身会根据上下文推导得出。使用lambda表达式的重点是延迟执行,例如:在一个单独的线程中执行多次运行代码在适当的位置或发生某种情况下执行代码在必原创 2020-12-07 20:38:06 · 207 阅读 · 0 评论 -
StreamAPI
引入真正的函数式编程,在Java层面对集合数据进行操作,类似于SQL执行的数据库查询,主要处理NoSQL数据原创 2021-12-19 13:57:14 · 200 阅读 · 0 评论 -
Optional类
解决空指针异常 java.lang.NullPointerException原创 2021-12-19 13:58:02 · 83 阅读 · 0 评论