Java SE (一)
2019-08-16 17:49:41 45 举报
AI智能生成
java se
作者其他创作
大纲/内容
公共语言基础<br>
第一个程序<br>
配置环境变量
java运行机制
程序入口
命名规范<br>
Java特性
Java版本<br>
Java历史
注释<br>
JDK、JRE、JVM<br>
.exe说明
数据类型<br>
基本数据类型
byte
short
int
long
char
float
double
boolean
引用数据类型
类
接口
数组
类型转换
自动转换
强制转型
特例
整型常量进制表示
运算符
赋值运算符
算术运算符
关系运算符
逻辑运算符
位运算符
一元运算符
i++<br>
++i
三目运算符
扩展运算符
字符串连接符
流程控制语句
分支结构
if...else...
switch...case...
循环结构
for循环
foreach循环
while循环
do...while...
数组
一维数组
声明与初始化<br>
操作<br>
赋值
取值
遍历
拷贝
多维数组
二维数组
定义
操作
取值
赋值
N维数组
GOF23种设计模式
创建型模式
单例模式<br>
懒汉式
饿汉式
双重锁鉴定
静态
枚举
工厂模式
优缺点
抽象工厂
优缺点
建造者模式
原型模式
结构型模式
适配器模式<br>
桥接模式
组合模式
装饰器模式
外观模式
享元模式
代理模式
行为型模式
责任链模式
命令模式
解释器模式
迭代器模式
中介者模式
备忘录模式
观察者模式
状态模式
策略模式
模板模式
访问者模式
容器
泛型
Iterator
Collection
List
AbstractList
ArrayList
Vector<br>
LinkedList
Queue
Set
AbstractSet
HashSet
TreeSet
Map
AbstractMap
HashMap
TreeMap
HashTable
ConcurrentHashMap
LinkedHashMap
容器遍历<br>
List容器遍历<br>
for循环<br>
迭代器
foreach循环
利用API:forEach
Set容器遍历
迭代器<br>
foreach循环
Map容器遍历
values()<br>
keySet()
entrySet()
Map容器排序
Collections类
新特性
jdk8
lambda表达式
IO流
分类
按流向分
输入流
输出流
按单位分
字节流
InputStream
FileInputStream
FilterInputStream<br>
BufferedInputStream<br>
DateInputStream
BushbackInputStream
ObjectInputStream
PipedInputStream
SequenceInputStream
StringBufferInputStream
ByteArrayInputStream
OutputStream
FileOutputStream
FilterOutputStrem
BufferedOutputStream
DateOutputStream
PrintOutputStream
ObjectOutputStream
PipedOutputStream
ByteArrayOutputStream
字符流
Reader
BufferedReader
InputStreamReader
FileReader
StringReader
PipedReader
CharArrayReader
FilterReader<br>
PushbackReader
Writer
BufferedWriter
OutputStreamWriter
FileWriter
PrinterWriter
StringWriter
PipedWriter
CharArrayWriter
FilterWriter
按功能分
节点流
装饰流
常用类
File类
mkdir()
mkdirs()
Scanner类
nextInt()
next()
nextLine()
文件的复制<br>
网络编程
基础知识
三次握手
TCP
UDP
Socket
NIO、AIO
NIO<br>
通道Channel
与IO中流的区别
双向
异步
必须通过Buffer对象
类型
FileChannel
DatagramChannel
SocketChannel
ServerSocketChannel
缓冲Buffer
读写数据的步骤
写入数据到 Buffer;
调用 flip() 方法;
从 Buffer 中读取数据;
清空缓冲区
clear()
compact()
类型
ByteBuffer
CharBuffer
DoubleBuffer
FloatBuffer
IntBuffer
LongBuffer
ShortBuffer
选择器Selector
优点
NIO多路复用
通过 Selector.open() 创建一个 Selector,作为类似调度员的角色
创建一个 ServerSocketChannel,并且向 Selector 注册,通过指定 SelectionKey.OP_ACCEPT,告诉调度员,它关注的是新的连接请求。
配置非阻塞模式
Selector 阻塞在 select 操作,当有 Channel 发生接入请求,就会被唤醒。
通过 SocketChannel 和 Buffer 进行数据操作
AIO(NIO2)
增加了四个异步通道
AsynchronousSocketChannel
AsynchronousServerSocketChannel
AsynchronousFileChannel
AsynchronousDatagramChannel
事件处理类CompletionHandler<V,A>
异步操作成功
异步操作失败
概念
同步和异步
同步
异步
阻塞和非阻塞
阻塞
非阻塞
工具使用<br>
git
配置用户信息
配置用户名
配置用户邮箱
查看所有配置
本地仓库
初始化版本库
添加文件到版本库
查看仓库状态
git工作流程<br>
从暂存区回退
查看git提交日志
版本库回退
远程仓库
选择远程仓库<br>
创建SSH KEY<br>
在github上配置ssh key
测试是否连通
建立与远程仓库的联系
将本地代码推送到远程仓库
克隆仓库
分支管理
创建分支
查看分支<br>
切换分支
合并分支
删除分支
敲代码工具
笔记本
NotePad++
集成工具
Intellij IDEA<br>
快捷键<br>
项目创建
project当作一个项目使用
project当做workspace去用
eclipse
面向对象
对象
概念
引用数据类型转型
类级
接口
默认规范
默认类
类
属性
变量<br>
成员变量
局部变量
静态变量
常量
字面常量
符号常量
方法
一般方法<br>
方法重载
方法签名
可变长参数
静态方法
构造方法
代码块
静态代码块
非静态代码块
抽象类
枚举
三大特性<br>
继承
重写
普通方法的重写
重写的限制
子类的构造方法<br>
引用类型的转型
封装
public
protected
默认
private<br>
多态
关键字
static
final
修饰类
修饰方法
修饰属性
修饰数组
this
super
instanceof
import
正常导入
静态导入
return<br>
已经做完,离开此方法;即退出该方法
返回值
transient
assert
assert condition;
这里condition是一个必须为真(true)的表达式。
如果表达式的结果为true,那么断言为真,并且无任何行动
如果表达式为false,则断言失败,则会抛出一个AssertionError对象
asser condition:expr;
常用类
Object类
equals方法
toString方法
hashCode方法<br>
包装类
Byte
Short
Integer
Long
Float
Double
Character
Boolean
包装类的缓冲区<br>
字符串相关类<br>
String
StringBuilder
apped方法
StringBuffer<br>
精度计算
定点数BigDecimal
超大数BigInteger
编译优化<br>
字符串连接符<br>
自动拆箱、装箱
foreach循环<br>
枚举
泛型擦除
注解
@Override
@Deprecated
回调
内部类
成员内部类
静态内部类
局部内部类
匿名内部类
没有类名及前缀修饰符<br>
必须继承一个抽象类或实现一个接口<br>
一次性
路径
绝对路径
相对路径
算法<br>
排序
冒泡排序
选择排序
插入排序
希尔排序
归并排序
快速排序
堆排序
计数排序
桶排序
基数排序
查找
遍历查找
二分查找
递归
阶乘
遍历树
斐波那契数列
数组
逆序数组
求值
动态规划<br>
异常
Throwable
Error<br>
Exception
RuntimeException<br>
ArithmeticException
NullPointerException
ClassCastException
ArrayIndexOutOfBoundsException
NumberFormatException
IllegalArgumentException
IllegalStateException
NoSuchElementException
CheckedException
IOException<br>
解决异常
try catch<br>
try
catch
u-toString ()方法
u-getMessage()方法
u-printStackTrace()方法
finally
return
throws
方法末尾声明异常
重写中的异常声明
throw和throws区别
throw
throws<br>
自定义异常
须继承Throwable类或者其子类
使用异常机制的建议
可视化界面、窗口<br>
Frame界面
设置尺寸
设置居中<br>
关闭输入法<br>
关闭放大窗口<br>
设置窗口监听器
设置键盘监听器
设置刷新率
双缓冲解决闪屏
设置可显示<br>
画笔
类库
长方形、相交判定<br>
多线程
程序、进程、线程
程序
进程
线程
进程和线程的区别
概念
线程安全
非线程安全
并行
并发
实现多线程的三种方式
继承Thread类
实现Runnable接口
通过Callable和Future创建线程
流程
代码
线程状态
新生
就绪
运行
阻塞
死亡
Thread方法
currentThread()方法
isAlive()方法
sleep()方法
getId()方法
中断方法<br>
interrupt()方法
this.interrupted()
this.isInterrupted()
yield()方法
join()方法
停止线程
使用退出标志,使线程正常退出.
使用stop()方法暴力退出,不推荐
使用interrupt()方法中断线程。
异常法停止
在沉睡中停止异常
暂停线程
suspend()方法暂停线程
resume()方法恢复线程的执行
缺点
独占
不同步
线程的优先级
继承性
规则性
随机性
守护线程(daemon)
setdaemon(boolean)方法
线程同步
synchronized关键字
子主题
子主题
volatile关键字
Lock重入锁
常用方法
ReadLock
WriteLock
ReentrantLock
线程通信
借助于Object类的wait()、notify()和notifyAll()实现通信
使用Condition控制线程通信
使用阻塞队列(BlockingQueue)控制线程通信
死锁
死锁产生的必要条件
互斥条件
请求与保持条件
非剥夺条件
循环等待条件
处理死锁的方法
鸵鸟算法
检测死锁并恢复
资源进行动态分配
破除上面的四种死锁条件之一
正则表达式
0 条评论
下一页