JavaSE
2020-11-13 17:04:00 0 举报
AI智能生成
JavaSE总结
作者其他创作
大纲/内容
Java语言知识
注册博客:
MarkDown语法
简单的Dos命令
计算机语言的发展
Java的诞生
1995
JAVA SE
JAVA ME
Android
子主题
Java EE
2006
Hadoop
JDK
开发者工具包
配置环境变量
JRE
运行环境
HelloWorld
java Hello.java
生成Class
javac
编译型
解释型语言
IDEA
开发工具的使用
基本语法
注释
行内注解 //
多行注解 /**/
文档注解 /** */
javadoc生成帮助文档
标识符
关键字
数据类型
基本数据类型
整数
byte 1
short 2
int 4 默认
long 8
0b 二进制
0x 十六进制
0 八进制
浮点数
float 4
double 默认 8
字符
char 2
布尔值
boolean 1
引用数据类型
类
接口
数组
类型转换
自动转换
低转高
强制转换
高转低
变量和常量
作用域
类变量
实例变量
局部变量
常量 final
命名规范
1.见名知意
2.驼峰命名 (变量,方法)
3.类,首字母大写,驼峰命名
4.常量: 大写 + 下划线
5.不要使用拼音命名
运算符
算数
+-*/ ++ --
赋值
=
关系
<>= !=
逻辑
&& || !
位
<< >> &
条件
? :
扩展
+= -= *= /=
包机制
域名倒写
防止命名冲突
import
JavaDoc
JDK 帮助文档
1.javadoc
@author
@Version
@Since
@param
@return
@throws
流程控制
Scanner
用户交互 System.in
顺序结构
程序默认结构,自上而下的执行
选择结构
if
单选择结构
if-else
双选择结构
if -else - if - else 多选择结构
switch
jdk支持了String 类型
case 穿透现象
default
循环结构
while
尽量避免死循环
do-while
for
增强for
break& continue
break 跳出循环
continue 终止当次循环
return 结束方法的运行
方法
什么是方法
方法的定义
修饰符 返回值 方法名 (参数名) return 返回值
方法的调用
类名。方法
对象。方法
方法重载
名字相同,参数列表不同
命令行传参
给main方法传递参数
可变长参数
.................
必须放在最后一个参数
递归
自己调用自己,给自己一个出口
数组
数组的定义
必须同一类型
数组的使用
通过下标拿到值
ArrayIndexoutofBounds
z增强for循环遍历
多维数组
Arrays工具类
排序算法
冒泡排序
选择
插入
快速
归并
堆
基数
面向对象
什么是面向对象
类与对象
类是对象的抽象:模板Class
对象是类的具体
构造方法
构造器的重载
默认的无参构造
如果手动定义一个有参构造方法,就要手动构造一个无参构造方法
单例模式,需要构造器私有
new对象
堆存放具体的对象
封装
属性私有 get set
继承
extends
Object
子类拥有父类的全部特性
方法重写
this
super
单继承
多态
父类的引用指向子类的对象 父类 对象名=new 子类();
instanceof关键,如果匹配,可以进行类型之间的转换
修饰符
public
protected
private
static
final
abstract
接口
interface
约束,只能定义方法名
子类实现接口,必须重写其中的全部方法
只有一个方法的接口叫做函数式接口,可以使用lambda表达式简化
接口比抽象类更抽象
一个类可以实现多个接口
内部类
静态内部类
匿名内部类(重点)
异常
Throwable
Exception
1/0
ClassNotFound
Nullpoint
unkownType
下标越界异常
.............
Error
AWT
JVM
stackOverFlow
outOfMemory
五个关键字
try{}
catch(){}
先小后大
finally{}
throw
手动抛出异常
throws
方法抛出异常
自定义异常
继承Exception类即可
常用类
Obiect
hashcode()
toStirng()
clone()
getClass()
notify()
wait()
equals()
Math类
常见的数字运算
Randomlei
生成随机数
UUID
File类
创建文件
查看文件
修改文件
删除文件
包装类
自动装箱和拆箱
Data类
Data
SimpleDateDormat
格式化
calendar
String类
不可变性 final
操作量较少使用
StringBuffer
可变长
append()
多线程数据量较大
效率低,安全
StringBuilder
可变长
单线程数据量较大
效率高,不安全
集合框架
Collection
List(有序可重复)
ArrayList
add
remove
contains
size
LinkedList 常用
getFirst()
getlast()
removeFirst()
addFirst()
........
Vector
Stack
set 无序不可重复
HashSet 常用
TreeSet
Iterator:迭代器
Map
HashMap(重点,天天用,面试高频)
jdk7:数字+链表
jdk8:hash表=数组+链表+红黑树
TtreeMap
Collections
工具类
泛型《》约束,避免类型转换之间的问题
IO流
字节流
输出 outputStream
输入 InputStream
字符流
Reader
Wirter
节点流
CharArrayReader,Writer,inputstream,outputstream
StringReader,Writer
pipe(管道流) pipedOutputStram
处理流
buffer
bufferinputStream
bufferOutputStream
bufferReader
bufferWriter
序列化
反序列化
Serializable
transient(透明的)
data
DatainputStream
DataOutputStream
object流
转换流
inputStreamReader
OutputSteamWriter
Filter
四个
print
printWriter
printStream
多线程
进程和线程
run() ,start()
线程创建方法
Thread
start(),本地方法;java无权调用,交给底层处理
Runnable
函数式接口
lambds
Callable
可以有返回值
静态代理
new Thread(Runnable).start()
Lambda表达式
函数式编程
避免内部类定义过多
new Thread(()->{
System.out.println();
}).start();
System.out.println();
}).start();
手动推导一遍lambda表达式
线程的状态
新建状态
运行
阻塞
死亡
常用的方法
sleep
join
yield
isLive
start
setPriority
interrupt
线程同步
多个对象操作同一个资源,并发
队列 +锁
Synchronized
同步方法
弊端: 锁太多了
同步代码块(常用!)
第一个线程进来拿到锁,后面就要排队了,直到这个人释放锁,后面拿到锁才可以进去
死锁
两个线程都抱着对方的锁
子主题
条件
互斥
请求与保持
不剥夺条件
循环等待条件
Lock
ReentrantLock
lock
trylock
unloc
线程通信
缓冲区:消息队列
标注位:红绿灯
wait()
notifyAll()
线程池
池化技术
池的大小
最大连接数
保持时间
...............
网络编程
IP
端口
socket编程
TCP
三次握手
四次挥手
面向连接
UDP
无连接
packet
URL
初识Tomcat
聊天通信
文件上传
GUI(可选)
AWT
Frame
监听事件
鼠标
键盘
窗口
动作事件
.................
Swing
文本域
标签
文本框
按钮
面板
布局方式
关闭窗口
列表
贪吃蛇
Timer
键盘监听
游戏帧的概念
注解与反射
注解
元注解
内置注解
自定义注解
反射读取注解
反射
Class
newWinstance()
类的加载机制
Methed
invoke(,)
存在重载,也需要写参数的类型
Field
set( , )
Construct
newWinstance()
获取的时候需要传递参数的class类型
破坏私有关键字
setAccessible(true)
性能分析
正常》检测关闭的反射》默认的反射
反射获得注解,泛型..............
单例模式的探究
stream
ForkJoin
效率对比
收藏
收藏
0 条评论
下一页