• 0-JavaSE总结索引


    总结中用到的相关案例【随时复习,随时更新】:https://github.com/Web-Learn-GSF/Java_Learn_Examples

    JavaSE总结

    内容文章链接
    JavaSE基础知识https://blog.csdn.net/qq_45445505/article/details/133633514
    JavaSE进阶知识-1-面向对象https://blog.csdn.net/qq_45445505/article/details/134038124
    JavaSE进阶知识-2-递归、流、异常、File、包装类、时间类https://blog.csdn.net/qq_45445505/article/details/134038173
    JavaSE进阶知识-3-集合https://blog.csdn.net/qq_45445505/article/details/134038198
    JavaSE进阶知识-4-IO流(字符流、字节流)https://blog.csdn.net/qq_45445505/article/details/134038259
    JavaSE进阶知识-5-IO流(缓冲流、转换流、序列化流、打印流、压缩流)https://blog.csdn.net/qq_45445505/article/details/134038277
    JavaSE进阶知识-6-多线程https://blog.csdn.net/qq_45445505/article/details/134038302
    JavaSE进阶知识-7-UDP-TCPhttps://blog.csdn.net/qq_45445505/article/details/134038329
    JavaSE进阶知识-8-反射、动态代理https://blog.csdn.net/qq_45445505/article/details/134038354

    JavaSE基础知识

    文章链接: https://blog.csdn.net/qq_45445505/article/details/133633514

    背景知识

    三种技术架构Java SE、Java ME、Java EE
    Java跨平台工作的原理?JDK、JRE、JVM的关联联系?
    Java发展历程(长期支持版本)
    java项目结构(项目、模块、包、类)

    基础语法

    注释单行注释、多行注释、文档注释
    关键字
    字面量、变量、常量
    标识符合法的命名规则
    常量、变量、方法、类等的命名规则
    数据类型基本数据类型(8种)
    ASCLL码表
    引用数据类型(类、接口、数组)
    运算符运算符、表达式
    算术运算符、自增自减运算符、赋值运算符、关系运算符、逻辑运算符、三元运算符、运算符优先级
    类型转换(隐形转换、强制转换)

    方法(函数)

    定义格式
    方法调用内存图解JVM内存分配
    函数调用,各个内存区域调用细节
    方法重载

    流程控制语句

    顺序结构默认
    分支结构if…else
    循环结构for、while、do…while
    跳转控制语句break、continue

    数组

    静态初始化一维数组、二维数组
    动态初始化一维数组、二维数组
    数组及其所属类型、初始化方式和默认值整数数组、小数数组、字符数组、布尔数组、(类、接口、数组)数组

    字符串

    String类特点
    字符串常量池
    字符串比较操作
    StringBuilder类构造方法
    长度可变原理(扩容原理)
    基本操作:添加、反转、获取长度、转为字符串
    StringBuffer类跟StringBuilder的区别(线程安全)

    JavaSE进阶知识-1-面向对象

    文章链接:https://blog.csdn.net/qq_45445505/article/details/134038124

    面向对象-1-基本、封装

    类和对象基本类的组成:成员变量和成员方法
    this关键字
    构造方法
    封装权限修饰符

    面向对象-2-static、final、继承

    static关键字被修饰成员(成员变量、成员方法)特点、注意事项
    final关键字用于修饰类、修饰方法、修饰成员变量
    继承继承关系中成员变量、成员方法、构造方法的各自特点
    继承关系的内存图解
    this、super的区别

    面向对象-3-包、抽象类、接口、多态

    导包、建包
    抽象类定义格式、注意事项
    接口接口特点、其内部成员特点
    接口和类的关系(类和类、接口和类、接口和接口)
    接口和抽象类在(成员变量、成员方法、构造方法)上的区别
    接口新特性
    多态实现前提(3要素)
    多态访问非静态成员
    多态访问静态成员
    多态的好处和不足
    多态转型

    面向对象-4-代码块、内部类、Lambda表达式

    代码块局部代码块、构造代码块、静态代码块、同步代码块
    内部类成员内部类、静态内部类、局部内部类、匿名内部类
    Lambda表达式Lambda表达式和匿名内部类的区别

    JavaSE进阶知识-2-递归、流、异常、File、包装类、时间类

    文章链接: https://blog.csdn.net/qq_45445505/article/details/134038173

    实用类:Objects、Math、System、BigDecimal

    Objects所有的类都直接或间接继承该类(祖宗类),其内的方法都可用
    Math包含基本的数字运算方法
    System都是静态方法,可以直接调用
    BigDecimal用于解决小数运算中,出现的不精确问题

    包装类

    8大基本数据类型对应的包装类
    自动拆箱、自动装箱
    包装类的比较问题

    时间类

    JDK8以前的时间类Date、SimpleDateFormat、Calendar
    JDK8以后的时间类日历类(获取当前时间):LocalDate、LocalTime、LocalDateTime
    日期格式化类(格式化时间):DateTimeFormatter
    时间类(获取时间):Instant、ZoneId、ZoneDateTime
    工具类(计算时间间隔):Period、Duration、ChronoUnit

    递归

    方法直接或间接调用本身

    异常

    异常体系
    异常处理方法默认抛出
    异常捕捉
    throw和throws的区别

    JavaSE进阶知识-3-集合

    文章链接:https://blog.csdn.net/qq_45445505/article/details/134038198

    补充知识-泛型

    泛型有关的版本信息
    泛型类常用泛型标识符
    泛型方法非静态泛型方法
    静态泛型方法
    泛型接口类实现接口的时候,直接确定泛型
    延续接口的泛型,等创建对象的时候再确定
    泛型通配符可以让一个方法传入不同的对象类型

    补充知识-树

    树的基本概念节点、度、树高、根节点、左子节点、右子节点、根节点的左子树、根节点的右子树
    二叉树-普通二叉树
    二叉树-二叉查找树数据分布特点(大小)
    节点添加流程
    优点、不足
    二叉树-平衡二叉树定义
    旋转机制
    二叉树-红黑树定义
    红黑规则

    补充知识-常见数据结构

    常见数据结构栈、队列、数组、链表、双向链表、树
    集合底层数据结构Collection-List
    Collection-Set
    Map

    集合基本

    集合分类大分类、小分类
    集合的遍历方式通用遍历方式:迭代器、增强for、forEach
    额外遍历方式-List集合:普通for循环、ListIterator(List集合特有的迭代器)

    Collection接口

    通用函数add、clear、remove、contains、isEmpty、size
    List-ArrayList支持索引
    增、删、改、查
    ArrayList长度可变原理
    List-LinkedList增、删、改、查 + 查首个元素、查尾部元素(非索引)
    Set-TreeSet具备排序功能的集合(红黑树实现)
    自然排序:常见类、自定义类
    比较器排序
    Set-HashSet可以保证数据唯一性
    底层实现的版本信息
    数据存储过程、数组扩容、链表转红黑树
    特点
    Set-LinkedHashSet可以保证存取有序
    相对于HashSet多了一个双链表存储顺序
    Collection类集合的选用
    Collections工具类

    Map接口

    基础介绍双列集合、元素格式
    Map类别TreeMap、HashMap、LinkedHashMap
    通用方法put、remove、clear、containsKey、containsValue、isEmpty、size
    HashMap底层原理理解
    Map集合遍历方式forEach方法
    通过键值对对象获取键、值
    通过键找值
    Map集合选用

    JavaSE进阶知识-4-IO流(字符流、字节流)

    文章链接:https://blog.csdn.net/qq_45445505/article/details/134038259

    IO概述

    什么是IO
    IO分类
    各IO的究极父类

    IO整体总结

    类1-1字节流、字符流
    类1-2字节缓冲流、字符缓冲流
    类1-3字节打印流、字符打印流
    类2转换流
    类3-1序列化流、反序列化流
    类3-2压缩流、解压缩流

    字节流

    一切皆字节可以传输任何形式的数据
    字节输出流抽象父类OutputStream
    实现子类-文件输出流-FileOutputStream构造方法
    写字节数据-单个
    写字节数据-多个-数组
    数据追加写
    数据换行写
    字节输入流抽象父类-InputStream
    实现子类-文件输入流-FileInputStream构造方法
    读字节数据-单个
    读字节数据-多个-数组
    流的关闭原则

    字符流

    处理文本文件
    字符编码-字符集字符编码
    字符集–ASCII、字符集–ISO-8859-1、字符集–GBxxx、字符集–Unicode
    字符输出流抽象父类-Writer
    实现子类-FileWriter构造方法
    写字节数据-单个
    写字节数据-多个-数组
    写字节数据-多个-字符串
    数据续写
    数据换行写
    流的关闭和刷新
    字符输出流抽象父类-InputStream
    实现子类-文件输入流-FileInputStream构造方法
    读字节数据-单个
    读字节数据-多个-数组
    底层实现原理文件关联、缓冲区

    JavaSE进阶知识-5-IO流(缓冲流、转换流、序列化流、打印流、压缩流)

    文章链接:https://blog.csdn.net/qq_45445505/article/details/134038277

    缓冲流

    字节缓冲流:BufferedInputStream、BufferedOutputStream构造方法
    效率对比-字节流
    字符缓冲流:BufferedReader、BufferedWriter构造方法
    特有方法:realLine()、newLine()
    总结字节缓冲流高效的原因(缓冲区)
    字符缓冲流,效率提升不明显(本来就有缓冲区)

    转换流

    字符流和字节流之间的桥梁将输入字节流转为输入字符流:InputStreamReader
    将输出字符流转为输出字节流:OutputStreamWriter
    InputStreamReader构造方法
    指定编码读取(转换流,JDK11后淘汰;用字符输入流)
    OutputStreamWriter构造方法
    指定编码写出(转换流;字符输出流)

    序列化流

    序列化流对象到字节-ObjectOutputStream
    序列化必备条件:实现Serializable接口;所有属性可序列化(不需要序列化的属性需特殊标记)
    反序列化流字节到对象-ObjectInputStream
    避免属性变更造成无法反序列化,需要提供一个序列版本号
    OutputStreamWriter构造方法
    指定编码写出(转换流;字符输出流)

    打印流

    只有输出流,不具备输入流
    PrintStream-字节打印流构造方法
    改变打印流向
    PrintWriter-字符打印流构造方法
    成员方法

    压缩流和解压缩流

    压缩流负责压缩文件或文件夹
    解压缩流负责把压缩包中的文件和文件夹解压出来
    宗旨体会思想,有很多现成的工具包

    工具包

    Commons-io是apache开源基金组织提供的一组有关IO操作的开源工具包,提高IO流的开发效率
    hutool国人开发的开源工具包,里面有很多帮助我们提高开发效率的API

    JavaSE进阶知识-6-多线程

    文章链接:https://blog.csdn.net/qq_45445505/article/details/134038302

    多线程–基本概念

    并发和并行
    进程和线程
    多线程

    多线程–实现

    1-继承Thread类
    2-实现Runnable接口
    3-实现Callable接口
    三种多线程实现方法对比

    多线程–线程方法

    设置和获取线程名称
    线程休眠
    线程优先级
    守护线程
    礼让线程和插入线程
    线程的生命周期

    多线程–线程同步

    买票例子举例
    实现线程同步的方法同步代码块
    同步方法
    线程锁Lock

    多线程–死锁

    理解即可

    多线程–生产者消费者模式示例

    理解等待唤醒机制暂空
    阻塞队列实现等待唤醒机制暂空

    多线程的6种状态

    掌握6种状态
    注意:没有运行状态

    线程池

    暂空

    JavaSE进阶知识-7-UDP-TCP

    文章链接:https://blog.csdn.net/qq_45445505/article/details/134038329

    网络编程

    概述计算机网络、网络编程三要素
    网络编程三要素–IP地址IP地址–分类:IPv4、IPv6
    IP地址–特殊的IP地址
    IP地址–获取:DOS命令、InetAddress类
    网络编程三要素–端口端口号
    网络编程三要素–协议什么是协议?
    UPD协议
    TCP协议

    UDP协议通信实现

    三种通讯方式单播、组播、广播
    三种方式不同的地方在于,打包数据的时候,塞入不同的地址
    发送数据创建发送端的Socket对象(DatagramSocket)—【快递公司】
    创建数据,并把数据打包—【用户打包数据】
    调用DatagramSocket对象的方法发送数据—【快递员发送】
    关闭发送端—【结账】
    接收数据创建接收端的Socket对象(DatagramSocket)—【快递公司】
    创建一个数据包,用于接收数据—【位置存放数据】
    调用DatagramSocket对象的方法接收数据—【快递员接收】
    解析数据包,并把数据在控制台显示
    关闭接收端–【签收】

    TCP协议通信实现

    Java中,底层通过IO流来完成通信
    传输数据–常规(不带有中文)
    传输数据–带有中文需要用到转换流、字符缓冲流(不必备)

    JavaSE进阶知识-8-反射、动态代理

    文章链接:https://blog.csdn.net/qq_45445505/article/details/134038354

    反射

    反射的理解可以无视修饰符调用类里面的所有内容
    概念:字节码文件和字节码文件对象的理解反射要获取的是字节码文件对象,这个对象在内存中是唯一的
    掌握-获取class字节码文件对象3中获取手段
    掌握-利用反射获取构造方法获取所有公开的、获取所有空开&飞公开的、获取单个公开的、获取单个公开&非公开的
    掌握-利用反射获取成员变量获取所有公开的、获取所有空开&飞公开的、获取单个公开的、获取单个公开&非公开的
    掌握-利用反射获取成员方法利用反射获取成员方法获取所有公开的、获取所有空开&飞公开的、获取单个公开的、获取单个公开&非公开的

    动态代理

    动态代理–好处无侵入式的给方法增强功能
    动态代理–三要素真正干活的对象、代理对象、利用代理调用方法
    动态代理–扩展应用方法拦截
  • 相关阅读:
    如何理解Java是按值传递
    东风至,数智生 | “算力+”发力工业互联网,助迎新突破
    【UniApp】-uni-app-打包成网页
    基于大数据的企业岗位需求决策
    libcoap3对接华为云平台
    java毕业设计大学生食堂饭菜价格信息管理系统mybatis+源码+调试部署+系统+数据库+lw
    [Llama3] ReAct Prompt 测试实验
    VirtualBox下安装CentOS7.9及网络配置
    技术分享 | 接口自动化测试之JSON Schema模式该如何使用?
    Vue.js 3.x 中跨层级组件如何传递数据?
  • 原文地址:https://blog.csdn.net/qq_45445505/article/details/134059879