![](https://img-blog.csdnimg.cn/10aca282bc374eb3afc2e02900d97f16.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java复习系列
文章平均质量分 73
知识点复习
→长歌
南来北往,不迷失方向,不辜负生活!
展开
-
IO/NIO — NIO
IO/NIO — NIO一、相关概念1、阻塞和非阻塞2、同步和异步3、IO模型二、NIO的使用1、NIO优点2、Channel(通道)3、Buffer(缓冲区)4、Selector(多路复用器)5、使用示例三、jdk1.7的 NIO(改进)1、 Path、Paths和Files工具类2、Files工具类常用方法3、使用示例相比于之前讲的输入流、输出流、缓冲流等传统IO,jdk1.4提供的NIO在效率上会更高,jdk1.7时,提供了Files工具类,支持异步Channel的IO,效率更高区别:IO面向流原创 2021-11-12 17:05:04 · 571 阅读 · 0 评论 -
IO/NIO — 对象序列化
IO/NIO — 对象序列化1、对象序列化(输出)2、对象序列化示例3、对象反序列化(输入)4、反序列化示例5、Transient 关键字阻止变量被序列化对象序列化的目标是将对象保存在磁盘中,或者是在网络中可以传输对象1、对象序列化(输出)就是将内存上的Java对象转换成与平台无关的二进制流,可以将这种二进制流持久的保存在磁盘上,或者是可以在网络上传输实现实现接口Serializable或者Externalizable,该接口仅仅是标识一下可序列化,无需实现任何方法2、对象序列化示例原创 2021-11-12 17:00:38 · 151 阅读 · 0 评论 -
IO/NIO — 输入/输出流
IO/NIO — 输入/输出流一、流的分类二、常用方法1、InputStream 和 Reader2、OutputStream 和 Writer三、处理流四、转换流一、流的分类按流的方向分,可以分为输入流和输出流(以程序运行所在内存角度划分)按操作单元分,可以分为字节流和字符流(字节流1字节,字符流2字节)按流的角色分,可以分为节点流和处理流节点流:从/向特定的IO设备(磁盘、网络等)读写数据的流,也称低级流处理流:对一个已存在的流进行连接或者封装,再实现数据读写功能二、常用原创 2021-11-11 15:42:18 · 690 阅读 · 0 评论 -
IO/NIO — File递归
IO/NIO — File递归一、File 相关方法1、创建File对象2、File类的获取3、文件和文件夹的创建删除等4、文件目录遍历二、文件过滤器三、File 递归遍历实现File类在java.io`包下,可以在程序中操作文件和目录File可以新建、删除、重名名文件和目录,但是不能访问文件内容,需要通过输入/输出流一、File 相关方法1、创建File对象File(String c):以当前路径创建一个File对象File(File p, String c):将File文件封装成Fil原创 2021-11-11 10:51:27 · 145 阅读 · 0 评论 -
集合框架 — LinkedList
集合框架 — LinkedList一、LinkedList特点二、实现结构三、LinkedList的使用1、添加方法2、删除方法3、获取元素四、链表遍历方法一、LinkedList特点相比于ArrayList,增删快,因为是直接改变链表指向关系查询慢,需要从头根据链表向下查二、实现结构LinkedList 也是 List接口的实现类,区别于 ArrayList,LinkedList底层结构是双向链表每个节点用内部类Node表示,通过prev和next分别指向上一个节点和下一个节点,链表只有原创 2021-11-10 16:31:59 · 499 阅读 · 0 评论 -
集合框架 — ArrayList
集合框架 — ArrayList一、结构特点二、ArrayList初始化1、无参构造2、有参构造三、ArrayList扩容四、ArrayList添加数据1、不指定位置 add()2、指定位置添加 add(int, E)3、删除操作五、ArrayList的使用和安全性1、线程安全性2、使用场景一、结构特点底层是数组实现,存放对象(基本类型则存放对应的包装类型)可以存放任意数量对象,动态扩容查询效率高,增删效率低,线程不安全二、ArrayList初始化注意:在通过构造方法对ArrayLis初原创 2021-11-10 15:41:33 · 545 阅读 · 0 评论 -
集合框架 — ConcurrentHashMap
集合框架 — ConcurrentHashMap 一、ConcurrentHashMap(JDK1.7)1、实现结构2、保证并发安全 — 分段锁技术3、put 和 get 方法二、ConcurrentHashMap(JDK1.8)1、实现结构2、ConcurrentHashMap 保证并发安全3、put 操作,并保证线程安全4、CAS 轻量级锁5、synchronized6、自旋锁7、ConcurrentHashMap get操作ConcurrentHashMap 相比于 synchronizedMap原创 2021-11-10 10:50:44 · 1059 阅读 · 1 评论 -
集合框架 — HashMap
集合框架 — HashMapMap常用方法:一、HashMap的使用二、HashMap注意点1、jdk1.8采用尾插法的原因2、jdk1.8转红黑树3、解决哈希冲突,初始值是16,扩容也为2倍4、new HashMap时,为什么可以赋值不是2的幂5、扩容时,不是直接复制过去,而是重新Hash6、安全问题(modCount字段)关于Map、Set和List的关系,有个说法很形象把 Map里所有的 key 放一起就组成了一个 Set 集合(无序、不重复),keySet()把 Map 里所有的 valu原创 2021-11-09 16:57:02 · 621 阅读 · 0 评论 -
JavaSE — 类加载机制和反射
JavaSE — 类加载机制和反射一、类的加载、连接和初始化1、JVM和类2、类的加载3、类的连接4、类的初始化5、类初始化的时机二、类加载器1、类加载机制三、反射1、获得Class对象2、Class对象的使用3、 使用反射获得操作对象5、操作数组6、使用反射生成JDK动态代理7、泛型和反射一、类的加载、连接和初始化1、JVM和类当程序启动时,会先启动一个Java虚拟机进程,程序的运行都是在Java虚拟机进程里的JVM进程被终止的情况:1)、程序运行到最后正常结束2)、程序运行到使用原创 2021-11-08 16:45:21 · 1229 阅读 · 0 评论 -
JavaSE — Java基础类库
JavaSE — Java基础类库一、运行Java程序的参数二、使用 Scanner 类获得键盘输入1、Scanner 类主要方法三、系统相关类1、System 类2、Runtime类3、String、StringBuffer、StringBuild四、Math类五、Java 7 的ThreadLocalRandom类 和 Random类六、BigDecimal类七、日期、时间类八、正则表达式一、运行Java程序的参数// java程序入口:main()方法public static void mai原创 2021-11-07 18:01:02 · 212 阅读 · 0 评论 -
JavaSE — 面向对象(下)
JavaSE — 面向对象(下)一、包装类及其用法二、处理对象1、== 和 equals 方法2、常量池3、判断多个对象是否为同一个类的实例为什么不建议用 instanceof ?三、单例(Singleton)类四、final修饰符1、final成员变量2、final局部变量3、final修饰基本类型变量和引用类型变量的区别4、可执行“宏替换”的final变量5、final修饰方法、类五、抽象类1、抽象类和抽象方法2、abstract注意点六、接口1、使用接口2、接口和抽象类区别3、面向接口编程七、内部类1原创 2021-11-07 15:03:41 · 77 阅读 · 0 评论 -
JavaSE — 面向对象(上)
JavaSE — 面向对象(上)一、类和对象二、方法方法重载三、成员变量和局部变量四、隐藏和封装五、构造器六、类的继承1、重写2、super关键字3、调用父类构造器七、多态八、初始化块1、初始化块2、静态初始化块(static)3、初始化顺序一、类和对象构造器不能定义返回类型,也不能使用void声明,因为构造器的返回值是隐式的,有返回值,返回该类的实例this关键字总是指向调用该方法的对象最大的作用就是,让类中的一个方法调用类中的另一个方法或实例变量,而不需要new一个对象(当有些局部变量和原创 2021-11-06 20:06:37 · 117 阅读 · 0 评论 -
JavaSE — 流程控制与数组
JavaSE — 流程控制与数组一、流程控制1、顺序结构2、循环语句二、数组类型1、数组2、数组元素系统默认的分配规则3、多维数组一、流程控制1、顺序结构switch语句后面的表达式的数据类型为byte、short、char、int四种整数类型,jdk1.7之后新增String类型switch分支语句中,除了最后的default,前面case中的break不能省略,省略会造成执行符合条件的case和后面的所有case的语句2、循环语句break:跳出循环体(后面的循环不执行)contin原创 2021-11-06 15:45:57 · 143 阅读 · 0 评论 -
JavaSE — 数据类型和运算符
JavaSE — 数据类型和运算符一、数据类型二、整型1、原码、反码、补码2、为什么计算机用补码计算三、字符型四、浮点型1、浮点数计算精度丢失问题2、二进制为什么不能准确的表示浮点数3、代码中怎么解决精度丢失问题五、基本类型的类型转换1、自动类型转换2、强制类型转换六、运算符1、位运算符2、左移运算符和右移运算符3、移位运算注意4、逻辑运算符一、数据类型二、整型1、原码、反码、补码> 整型 5 和 -5 用二进制原码、反码、补码表示,其实默认为`int`,占4个字节,32位>>原创 2021-11-06 15:44:38 · 184 阅读 · 0 评论 -
JavaSE — Java特点
JavaSE — 面向对象1、理解面向对象Java是纯粹的面向对象的程序设计语言,主要有三种基本特征:继承、封装和多态Java程序最小单位是类,程序就是一个个类构成的2、封装、继承和多态封装:是指将对象的实现细节隐藏起来,然后通过一些公共的方法暴露该对象的功能继承:是面向对象实现软件复用的重要手段,当子类继承父类后,子类直接获得父类非私有的属性和方法多态:是指子类对象可以直接赋值给父类型变量,但运行时依旧保持子类的行为特征,也就是同一个对象执行方法时,可以根据子类表现出不同的行为特征(重原创 2021-11-06 15:38:13 · 179 阅读 · 0 评论 -
JavaSE — Java概述
JavaSE — Java概述1、Java概述JDK、JRE、JVM关系JDK:java 开发工具,包括JRE+java类库JRE:Java运行时环境,包括JVM+运行时环境JVM:Java虚拟机2、JavaSE — 运行机制和JVM执行Java程序过程:不同平台JVM不同,向上面向所有字节码文件提供了相同的接口,向下适应不同的平台接口则互不相同...原创 2021-11-06 15:35:45 · 7094 阅读 · 0 评论 -
Java知识复习清单
Java知识复习清单复习范围1、javaSEJavaSE基础 Java基础语法、面向对象特征集合底层原理 HashMap、ConcurrentHashMap、ArrayList、LinkedListIO/NIO File 递归、字节流、字节缓冲流、转换流、序列化、序列化流、打印流网络编程 网络概述、网络模型、Socket原理机制、 TCP/IP、UDP、HTTP和HTTPS、XSS、CSRF、SQL注入JDK新特性计算机组成原理2、并发编程原创 2021-11-06 15:30:25 · 1769 阅读 · 2 评论