JAVASE
2021-08-19 09:48:13 7 举报
AI智能生成
Java学习笔记
作者其他创作
大纲/内容
硬件系统
软件系统
计算机语言
DOS命令
计算机语言发展史
JAVA SE 基础版
主要应用于安卓
JAVA ME 移动版
JAVA EE 企业版
Java的诞生
简单性 安全性 面向对象 高性能 编译性 解释性 分布式处理 健壮性 开源 跨平台
配置环境变量
开发者工具包
JDK
运行java程序最小的环境
运行环境
JRE
负责加载.class并运行.class文件
JVM
Java语言特征
Java语言
生成.class文件
Java Hello.java
软件的安转和使用
IDEA
Java是一种 编译型 解释型语言
Hello word
格式: //
单行注释
格式: /**/
多行注释
javadoc生成帮助文档
格式: /** */
文档注释
注释
关键字
标识符
1字节
byte
2字节
short
4字节
int(默认)
8字节
long
整数型
float
double(默认)
浮点型
char
字符
boolean
布尔
基本数据类型
类
接口
数组
引用数据类型
拓展
128个字符
ascii 码表
中文编码格式
utf-8 编码格式
数据类型
低转高
自动类型转换
高转低
强制类型转换
舍弃小数
浮点型转整数型
类型转换
tybe varName [=value]
类变量
实例变量
局部变量
作用域
final MAX_A =10;
常量
1. 见名知意
2. 驼峰命名 (变量 方法)
3. 类首字母大写 (驼峰命名)
4. 常量: 大写+下划线
5. 不要使用拼音命名
命名规范
变量和常量
+ - * / % ++ --
算数运算符
= += -= *= /=
赋值运算符
> < >= <= == != instanceof
关系(比较)运算符
& && | || !
逻辑运算符
^ ~ >> << >>>
位运算符
? :
三目运算符
运算符
域名倒写
防止命名冲突
package
import
包机制
JDK帮助文档
@author
@version
@since
@param
@return
@throws
javadoc
JavaDoc
基础语法
用户交互System.in
Scanner
顺序结构
if 单选择结构
if-else 双选择结构
if-else if-else 多选择结构
jdk支持了String类型
case 穿透现象
break
default
switch
选择结构
尽量避免死循环
while
do while
for (int i = 0; i < 100); i++)
for
九九乘法表
增强for循环
循环结构
跳出循环
结束当前循环
continue
结束方法的运行
return
break & continue
流程控制
什么是方法!
修饰符 返回值 方法名 (参数名) {return: 返回值;}
方法的定义
类名.方法
对象.方法
方法调用
方法重载
给main方法传递参数
命令行传参
递归
方法
new int[5]
必须是同一个类型
数组的定义
通过下标取值
增强for循环遍历
ArrayIndexoutofBounds
数组的使用
int[][]
二维数组
Arrays工具类
冒泡排序
选择排序
插入排序
快速排序
归并排序
希尔排序
堆排序
基数排序
排序算法
什么是面向对象
类是对象的抽象: 模板Class
对象是类的具体
类与对象
默认无参构造
如果手动定义了有参构造就必须再手动添加一个无参构造
构造的重载
构造方法
栈存放引用
堆存放具体的对象
new对象
基本介绍:封装就是把抽象出来的数据【属性】和对数据的操作【方法】封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作【方法】,才能对数据进行操作。
封装的理解和好处隐藏实现细节。可以对数据进行验证,保证安全合理。
封装
extends
Object
子类拥有父类的全部特征
方法重写
this
super
继承
多态基本介绍方法或对象具有多种形态。是面向对象的第三大特征,多态是建立在封装和继承基础上的。
父类的引用指向子类对象 Person person = new Student();
多态
public
protected
private
static
final
abstract
修饰符
interface
接口比抽象类更抽象
一个类可以实现多个接口
局部内部类
静态内部类
匿名内部类
内部类
面向对象
1/0(除数不能为0)
ClassNotFound
NullPoint
UnKownType
下标越界异常
运行时异常
检查型异常
Exception
AWT错误
StackOverFlow
OutOfMemory
JVM错误
Error
Throwable
try{}
先小后大
catch() {}
finally{}
手动抛出异常
throw
方法抛出异常
throws
异常处理
继承Exception类即可
自定义异常
异常
hashcode ()
toString ()
clone ()
getClass ()
notify ()
wait ()
equals ()
Object类
常见的数学运算
Math类
UUID
生成随机数
Random类
创建文件
查看文件
修改文件
删除文件
File类
自动装箱和拆箱
包装类
Date
yyyy-MM-dd HH:mm:ss
SimpleDateFormat
Calender
Date类
操作量较少
字符串不可变 final修饰
String类
多线程数据量较大
StringBuffer
单线程数据量较大
StringBuilder
常用类
add
remove
contains
size
ArrayList (常用)
getFirst()
getLast()
removeFirst()
addFirst()
LinkedList (常用)
Vector
Stack
List(有序可重复)
HashSet (常用)
TreeSet
Set(无序不可重复)
Iterator: 迭代器
Collection
JDK1.8 : hash表=数组+链表+红黑树
HashMap
TreeMap
Map
Collections 工具类
集合框架
输出: OutputStream
输入: InputStream
字节流
Reader
Wirter
字符流
File
节点流
bufferInputStream
bufferOutputStream
bufferReader
bufferWriter
butter
transient (透明的)
Serializable
反序列化
序列化
DataInputStream
DataOutputStream
data
object流
InputstreamReader
OutputStreamWriter
转换流
四个
Filter
PrintWriter
PrintStream
Print
处理流
IO流
进程和线程
private native void start0();
Thread
lambda 表达式
函数式接口
Runnable
可以有返回值
Callable
线程创建的方式
new Thread(Runnable).start();
静态代理
函数式编程
避免内部类定义过多
new Thread(()->{ System.out.printIn();}).start();
Lambda 表达式
新建
就绪
运行
对象锁阻塞
等待阻塞
其他阻塞
阻塞
终止
线程的状态
sleep
join
yield
isLive
start
setPriority
interrupt
常用的方法
每次对某资源进行操作时,都会持有一个独占的锁
悲观锁
它不需要持有锁,将”比较-替换”这两个动作作为一个原子操作尝试去修改内存中的变量
乐观锁
队列 + 锁
弊端: 锁太多
同步方法
同步代码快(常用)
互斥
请求与保持
不剥夺条件
循环等待条件
死锁: 两个进程都抱着对方的锁
Synchronized
lock
trylock
unlock
ReentrantLock
Lock (优先级高)
线程同步
缓冲区: 消息队列
标志位: 红绿灯
wait () :
notifyAll () :
线程通信
池化技术
池的大小
最大连接数
保持时间
线程池
多线程
元注解
JDK内置注解
自定义注解
反射读取注解
注解
newInstance();
Class
类加载机制
invoke
Method
set
Field
Construct
setAccessible(true);
破坏私有关键字
正常> 检测关闭的反射> 默认的反射
性能分析
反射
Stream
效率对比
ForkJoin
注解与反射
IP
端口
Socket编程
三次握手
四次挥手
面向连接
TCP
无连接
Packet
UDP
URL
初始Tomcat
聊天通信
文件上传
网络编程
懒汉式
饿汉式
单例模式(常用)
原型模式
建造者模式
工厂方法模式
抽象工厂模式
创建型模式
装饰模式
组合模式
桥接模式
外观模式
亨元模式
代理模式
适配器模式
结构型模式
模板模式
状态模式
策略模式
命令模式
访问者模式
观察者模式
中介者模式
责任链模式
备忘录模式
迭代器模式
解释器模式
行为型模式
设计模式(23种)
JAVASE
0 条评论
回复 删除
下一页