【系统学习】【Java基础】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中获取手段
掌握-利用反射获取构造方法获取所有公开的、获取所有空开&飞公开的、获取单个公开的、获取单个公开&非公开的
掌握-利用反射获取成员变量获取所有公开的、获取所有空开&飞公开的、获取单个公开的、获取单个公开&非公开的
掌握-利用反射获取成员方法利用反射获取成员方法获取所有公开的、获取所有空开&飞公开的、获取单个公开的、获取单个公开&非公开的

动态代理

动态代理–好处无侵入式的给方法增强功能
动态代理–三要素真正干活的对象、代理对象、利用代理调用方法
动态代理–扩展应用方法拦截
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值