J2SE
2021-03-22 17:09:07 1 举报
AI智能生成
JAVA思维导图
作者其他创作
大纲/内容
面对对象初级
定义对象
new构造函数
new含义
什么是构造函数
匿名对象:只用一次
构造函数
类中没有其他构造函数时系统默认存在无参构造
构造函数名字与类名一致
用于构造函数 初始化
this的含义
本类的一个对象的引用
静态函数内不能使用this
方法重载
方法名字相同
跟返回类型无关,跟参数类型、数量和顺序有关
面对对象高级
继承
子类可以继承父类中除了私有以外的所有内容
子类可以调用父类的构造函数 super()
覆盖
返回类型完全一致
参数类型个数完全一致
子类权限访问控制符比父类大
向上转型
Fan fan = son;
属性使用的是父类的
方法调用的是子类的
向下转型
Son son = (son)fan;
final
修饰的属性不鞥被改变
修饰的类不能被继承
修饰方法不能被覆盖
多态的体现
同一个方法不同的表现形态
前置条件
继承
父类的引用指向子类的对象
覆盖
抽象类
可以包含抽象方法
不能直接实例化
接口
所有方法默认抽象
接口可以继承接口
谁实现接口,就要实现所有方法
传值
基本数据类型 形参
数组,对象,引用
集合操作
数组的大小不要从0或很小的数值开始
collection
特性
长度可变
类型只能是object的子类
list
特性
保存数据是有序的
ArrayList
底层是数组结构
new ArrayList
add
LinkList
删除和插入元素操作性高
底层是链表结构
map
特性
key标识,value信息
key不能重复,无序
性能
因为有key标识符,性能远高于List
大小
数组默认大小16,扩容2倍
遍历方式
foreach遍历map.values
foreach使用entry遍历其键值对
foreach得到其keyset来访问遍历其value
实现类
HashMap
数组
TreeMap
二叉树
Hashtable
线程安全的,有同步控制
不允许key,value为null
set
特性
无序,不重复
函数
add,remove
iterator
move
hasnext
next
泛型
<>
限制保存的类型
static
静态
..
调用方式:类名静态内容
特性
地址分配独立区域
唯一
一般是全局可访问public
单例
一个类只有一个实例
组成
私有化构造函数
静态对象
静态带有同步锁的返回函数
工具类
包装类
8种引用数据类型
异常
1.try代码块 有异常就catch
2.finally 无论如何都执行
3.catch 多重异常处理 小到大
4.自定义异常
继承异常exception 调用super(String)
5.throw : 写在方法内
throws : 方法外
throws : 方法外
6.务必添加e.printStackTrace(); 珍爱 维护人员
关键字
String/StringBuffer
StringBuffer/StringBuilder
final/finally/finalize
throw/throws
lang包默认导入
认识java
配置环境变量
变量
变量标识符定义
以什么开头
后面跟什么内容
不能以什么开头
8种基本数据类型
4种整形类型
精度
取值范围
默认
2种浮点型
1字符型
默认
是否可以保存一个汉字?是的
1布尔类型
默认
自动类型转换顺序
强制类型转换
a=(int)b;
注
int a=3;
a = a+++5;
a = a+++5;
byte b=127;
b+=a;
b+=a;
%取余与符号的关系只与第一个数的符号有关
运算符
控制语句
if else
for
for(A:B:C){
D
}
D
}
abdcbdcb
冒泡法
快速排序,插入法
while
do while
switch
允许:byte,short,int,char,enum,String
子主题
continue
break
数组
画星星
冒泡法
int a[] = new int[5];
开辟了6个位置
a保存的首地址
默认值为0,字符串为null
特点
定长
存放任意数量数据类型
方法
复制
数组扩容
删除其中某个值删掉
排序
1.8新特性
接口
1.default默认函数
1.5之后:注解
说明,运行附加的参数
搞基框架中,把一些配置信息,放到运行代码时,被系统使用
注释:@+字母
扫描
定义:@interface
可以和什么代码一起运行@Target(ElemMentType.FIELD\method\Type)
在什么时候被系统调用@Retention(RetentionPolicy.RUNTIME.class,source)
接口内部实现
内部匿名类
lamdba表达式
(参数)-> 方法体
特点:
只能使用一次
简化了语法
网络编程
服务器
// 1.启动服务器
ServerSocket serverSocket = new ServerSocket(8888);
ServerSocket serverSocket = new ServerSocket(8888);
2.等待连接
Socket socket = serverSocket.accept();
Socket socket = serverSocket.accept();
3.读取客户发送的信息 字节流
InputStream socketIn = socket.getInputStream();
InputStream socketIn = socket.getInputStream();
4.字节流转成字符流
InputStreamReader inputStreamReader = new InputStreamReader(socketIn);
InputStreamReader inputStreamReader = new InputStreamReader(socketIn);
5.增强性能
BufferedReader in = new BufferedReader(inputStreamReader);
BufferedReader in = new BufferedReader(inputStreamReader);
6.读取信息
System.out.println(in.readLine());
System.out.println(in.readLine());
7.定义处理流(写出流)
PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
8.发送
printWriter.println("321");
printWriter.flush();
printWriter.println("321");
printWriter.flush();
9.关闭
客户端
1.连接服务器 ip 端口号
Socket socket = new Socket("10.10.88.27",8888);
Socket socket = new Socket("10.10.88.27",8888);
2.信息交互 收in 发out
PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
3.获取输入流
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println(in.readLine());
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println(in.readLine());
4.关闭
多线程
定义
Thread
Runnable
lambda
生命周期
线程之间传值
流
分类
传输的单位
stream/reader write
方向
输入/输出
从数据源直接获取
节点流
处理流
调用函数
read
write
序列化
网络通信,对象一定要序列化
0 条评论
下一页