JavaSE思维导图
2021-08-20 14:51:44 16 举报
AI智能生成
JavaSE思维导图
作者其他创作
大纲/内容
Java的多线程
线程的创建方式(三种)
继承Thread
实现Runnable接口
线程任务
没有返回值
实现Callable接口
线程任务
有返回值
线程的安全问题
原因
多个线程抢夺CPU的执行权
解决方法
同步代码块
同步方法
Lock锁
线程池
Executors
newCacheThreadPool
创建可变长度的线程池
newFixedThreadPool
创建固定长度的线程池
Java网络编程
网络编程三要素
ip地址
ipv4子
占4个字节
点分十进制表示法
ipv6
占16个字节
冒分十六进制表示法
端口号
表示应用程序的标识
0~65535
通信协议
UDp协议
无连接,不可靠
TCP协议
有连接,可靠的
UDp通信子
DatagramSocket
发送和接受数据的数据包
DatagramPacket
封装数据的数据包子(包裹)
封装的数据(四个参数)
字节数组
数据的长度
对方的IP地址
对方的端口号
TCP通信
Socket
客户端
getOutputStream
往服务器写数据
shutdownoutput
告诉服务端数据写完了
getInputStream
读取服务器返回值的数据
ServerSocket
服务端
accept方法
监听客户端Socket
getInputStream
读取客户端发送的数据
getOutputStream
往客户端写数据
Java高级技术
枚举
枚举本质上是一个类,枚举类
枚举类中可以有多个枚举项(枚举类的对象)
注解
概念
注解是一个标记,给类、方法、变量添加一些额外的信息
内置注解
@Override
标记一个方法是重复父类方法
@Deprecated
标记一个方法已过时
@SuppressWarnings
压制警告
元注解
@Retention
RetentionPolicy.RUNTIME
注解在运行时有效
RetentionPolicy.SOURCE
注解在源代码时期有效
RetentionPolicy.CLASS
注解在字节码时期有效
@Target
ElementTYpe.TYPE
注解可以使用在类上
ElementType.METHOD
注解可以在使用在方法上
ElementType.FIELD
注解可以使用在变量上
反射
反射可以获取一个类的各个组成部分(成员变量、成员方法、构造方法)
获取字节码子主题
Class.forName("包名.类名")子主题
对象名.getClass()
类名.class
获取构造方法
getConstructor()
获取公有的-----------------
getDeclaredConstructor()
获取所有的构造方法
获取成员变量
getField()
获取公有的成员变量
getDeclaredField()
获取所有的成员变量
获取成员方法
getMethod()
获取公有的成员方法
getDeclaredMethod()
获取所有的成员变量
JDK8的新特性
Lambda的表达式
简化匿名内部类的书写
使用前提
必须要有一个函数式接口,接口中只有一个抽象方法
Stream流式编程
对集合和数据进行操作
获取流Stream
单列集合获取流
集合对象.stream()
双列集合获取流
先获取键的集合,再获取流
map.keySet().stream()
获取值的集合,再获取流
map.values().stream()
获取键值对的集合,再获取流
map.entrySet().stream()
数组获取流
Stream.of(数组)
对流操作
中间操作
fliter
过滤元素
limit
截取前面几个元素
skip
跳过前面几个元素
map
对元素进行转换
终结操作
forEach
遍历元素
count
统计元素个数
collect
toList
把流收集成List集合
toSet
把流收集为Set集合
基础语法
JDK的安装
JDK Java开发工具包 包括了JRE和一些 编辑运行的操作
JRE Java运行时的环境 JVM和核心类库
JVM Java虚拟机 就是Java程序运行的地方
关键字
修饰符
public 、protected、private、default
状态符
static、final、abstract
异常
throw、throws、try、catch、finally
基础数据类型
boolean、byte、short、int、char、float、double、long
条件控制语句
if、else、switch、do..while、while、for
标识符
概念
就是用作给包 类 成员变量 成员方法 接口 枚举 注释 定义的一个名称
命名规范
1.包名
全部都小写
2,类名
大驼峰 从首个单词开始 首字母大写
3,方法名 对象名
小驼峰 从第二个单词开始首字母大写
命名规则
1,要求见名知意,不能以关键字命名
2,是由数字、英文、美元符号和下划线组成,且首字母不能是数字
3,严格区分大小写
常量
字符常量 ‘a’
字符串常量 “abcd”
整型常量 10
浮点型常量 10.01
double型常量 10.0001
标记型常量
被final修饰的变量,里面的值不能变,实际上就是一个常量
变量
概念:实际上就是一个在栈内存或者常量池里的一个地址。
变量的定义格式
数据类型 变量名 (标识符) =常量
变量的分类
基本数据类型的变量
引用数据类型的变量
Java面向对象
类与对象
类
同一种事物的属性和行为的集合
对象
类的具体实例(可以想象为具体的一个人,一条狗,千千万万...)
封装性
概念
共性的抽取
封装的分类
对类的封装
就是对具有相同属性和行为的一类事物的封装
对方法的封装
对具有相同功能事物的封装
jar包
JAR 文件就是 Java Archive File
继承性
概念
继承解决的问题是多个类中的共性抽取
共性的成员变量、成员方法抽取到父类,子类就不用写了
特点
Java继承 只允许单继承,不允许多继承 但是允许多层继承
好处和弊端
好处
弊端
类与类的关系过于紧密,增强了代码的耦合性
提高了代码的复用性
继承成员访问
成员变量
遵守就近原则
成员方法
遵守就近原则
方法复写
概念:子类创建一个和父类的某个方法除了方法体的内容,其他都一样的方法。在子类对象调用这个方法时,就会执行子类重写的那个方法。子类不重写,就默认调用父类的方法。
构造方法
所有的子类在被创建实列的时候 默认都会先调用父类的无参构造方法,即:在子类中都有一个super();
如果子类想要使用父类的有参构造,需要手动写有参构造。(前提是父类有这个有参构造)
所有的类都会直接或者间接继承Object
多态性
概念
同一个对象有多种表现形态
本类形态、父类形态
格式
父类 变量名 = new 子类对象()
实际运用
方法的参数是父类、接口类、调用方法可以传任意子类对象
方法的返回值是父类,接口类型,调用方法返回的是子类对象
多态的转型
instanceof
判断一个对象具体是什么类型
内部类
局部内类
定义在方法中的类
成员内部类
定义在成员变量位置的类
匿名内部类
前提:有一个接口或者抽象类
本质:就是这个接口或者抽象类的实现类对象
定义格式:new 类名/接口名/抽象类名(){}
当这个类或者接口只有一个抽象方法时,可以用lambda表达式简写
Java的集合体系
单列集合(Collection)
List
ArrayList
数据结构,查询快,增删慢
LinkedList
链表结构、查询慢、增删快
Set
HashSet
哈希表结构(数组+链表+红黑树),元素去重
TreeSet
红黑树结构,对元素进行排序
双列集合(Map)
HashMap
TreeMap
Properties
load
把配置文件中的键值对加载到集合
store
把集合中的键值对存储到配置文件中
Java的IO流
字节流
InputStream
FileInputStream
读取字节文件的流
BufferedInputStream
对InpurStream进行包装,提高读取效率
OutputStream
FileOutputStream
写入字节文件的流
BufferedOutputStream
对Output Stream进行包装,提高写入效率
字符流
Reader
FileReader
读取文本文件的流
BufferedReader
readLine()
读一行
Writer
FileWriter
写入文本文件的流
BufferedWriter
newLine()
写----换行符
转换流
InputStreamReader
把InputStream转换为Reader,指定编码表
OutputStreamWriter
把OutputStream转换为Writer,指定编码表
杂流
序列化流
标准的输入输出流
System.out
往控制台输出
System.in
读取控制台输入的数据
自由主题
0 条评论
下一页