个人学习总结,只有学的对象和要学的对象,不足请勿喷,事宜人群,刚刚学习java,没有具体学习计划的人,javaSE基本就我总结的东西。
1.java语言---学习目录(了解)
1.1,你要了解这个语言的一些发展,包含计算机语言发展历
1.2,学会使用简单的Dos命令
1.3,MarkDown语法
1.4,强烈建议学习中写博客
1.5,java的诞生, 1995------JavaSE,JavaME, JavaEE
2006------Hadoop
1.6,JDK------开发包-----配置环境变量【要求,在不看任何文档的前提下,成功配置环境】
1.7,JRE-------运行环境
2.正是开始
2.1,HelloWord 【第一个程序】
public class HelloWord {
public static void main(String[] args) {
//首先clas后面的类名,单词首字母大写
System.out.println("HelloWord");
//符号必须是英文“ ”或者;
}
}
2.2,学了两个命令
2.2.1,javac 比如Hello.java 会生成一个class文件
2.2.2,java Hello
2.2.3,编译型语言
2.2.4,解释型语言
2.2.5,java属于编译型+解释型语言。静态语言+准动态语言
2.2.7,idea的使用
3.1,基础语法
3.1.1,注释
3.1.1.1,行内注释//
3.1.1.2,多行注释/* */
3.1.1.3,文档注释/** */ javadoc生成帮助文档
3.1.2,标识符,关键字
3.1.3,数据类型
3.1.3.1,基本数据类型
,整数
byte 1 个字节
short 2 个字节
int 4 个字节
long 8 个字节
ob 二进制
ox 十六进制
o 八进制
浮点数
float 4 个字节
double 8 个字节
BigDecimal 金融计算
字符
char 2 个字节
ascii 1 个字节
utf-8 中文一般用这个
Unicode 2 个字节
'\u0000’ \b \n \r \t \' \" \\ 转意
布尔值
boolean 1 位
if(a)
3.1.4,引用类型
类
接口
数组
3.1.5,类型转换
自动类型转换---------低转高
强制类型转换----------高转低 (低)高
3.1.6,变量和常量 --------type varName = value;
作用域
类变量
实列变量
局部变量
常量 dinal MAX A =10 ;
命名规范
见名知意
驼峰命名,变量,方法
类,首字母大写
常量,大写+下划线
不要使用拼音
3.1.7,运算符
算术运算符----------- + - * / % ++ --
赋值运算符 =
关系运算符 > < >= <= == != instanceof
逻辑运算符 && || !
位运算符 & | ^ ~ >> << >>>
条件运算符 ? :
扩展运算符 += -= *= /=
3.1.8,包机制
域名倒写
防止命名冲突
package
import
3.1.9,javaDoc
JDK帮助文档
javadoc @author @Version @Since @param @return @throws
4.1.1,流程控制
顺序结构 默认结构,自上而下的执行
选择结构 if但选择结构
if-else 双选择结构
if-else-if-else多选择结构
switch jdk支持String case穿透现象 break default
循环结构
while
do...while
for
增强for循环
Scanner 用户交互
break&continue
break 跳出循环
continue 终止当次循环
return 结束方法的运行
5.1.1方法 语句块的集合
方法的定义 修饰符 返回值 方法名(参数名){返回值}
方法调用 类名.方法 对象.方法
方法重载 名字相同,参数列表不同
命令行传参 给main 方法传递参数
可变长参数 必须放在最后一个参数
递归 自己调用自己,给自己应该出口。{面试常问}
6.1.1,数组
数组的定义 new int[5] 必须是同一个类型
数组的使用 通过下标拿到值 ArraylndexoutofBounds 增加for循环遍历
二维数组 int[][]
Arrays 工具类
排序算法
冒泡排序
选择排序
插入排序
快速排序
归并排序
希尔排序
堆排序
桶排序
基数排序
7.1.1,面向对象
什么是面向对象
类与对象 类是对象的抽象 模板class 对象是类的具体
构造方法 构造重载 默认是无参构造 如果手动定义了一个有参构造,必须加一个无参构造
new 对象 栈存放引用 堆存放具体的对象
封装 属性私有,get,set
继承 extends object 子类用有父类的全部特性,方法的重写,this,super
java是单继承,只能继承一个父类
多态 父类的引用指向子类的对象 instanceof关键字,如果匹配,可以进行类型之间的转换
修饰符 public protected private static abstract final
接口interface
约束,只能定义方法名,子类实现接口,必须重写其中的方法
只有一个方法的接口叫做函数式接口,可以使用lambda表达简化式
接口比抽象类更抽象
一个类可以实现多个接口
内部类
局部内部类
静态内部类
匿名内部类(重点)
8.1.1,异常 Throwable
Exception
运行是异常 1/0 ClassNoFound NullPoint UNKownType 下标越界................
检查型异常
Error AWT错误
JVM错误 StackOverFlow OutOfMemory
五个关键字 try ,catch, final, throw手动抛出异常, throws方法抛出异常
自定义异常 继承Execption
9.1.1常用类
Object类 hashcode() toString()clone()getClass()notify()wait()equals()
Math类 常见是数学类
Random类 生成随机数
File类 创建文件,查看文件,修改文件,删除文件,
包装类 自动装箱和拆箱
Date类 Data SimpleDataFormat Calender建议使用的
String类 不可变性final
StringBuffer类 可变长 append 多线程数据量较大,效率低,安全
StringBuilder类 可变长 单线程数据量较大,效率高,不安全
10.1.1,集合框架
Collection
List 有序可以重复
常用ArrayList aad remove contains contains size
常用LinkedList getFirst getLast removeFirst addFirst
Vector
Stack
Set 无序,不可重复
常用HashSet,
TreeSet
迭代器Iterator
Map
天天用HashMap
1.7数组+链表
1.8 hash=数组+链表+红黑树
TreeMap
Collection工具类
泛型<>约束,避免类型转换之间的问题
IO流
字节流,输出outputStream、,输入inputStream
字符流 Reader,Wirter
节省流
CharArrayReader,Wirter,inputStream,outputStream
处理流
buffer bufferinputStream,bufferoutputStream bufferReader bufferwriter
Data DatainputStream DataoutStream
转换流 inputStreamReader outputStreamReader
Filter 四个
print printWriter printStream
object流
序列化,反序列化 Serializable transient透明的
多线程
进程和线程
ren方法和Start方法
线程创建的方式
Thread start本地方法,java无权调用交给底层private native void start
Runnable函数式接口 lambda
Callable 可以有返回值
静态代理 new Thread(Runnable) start();
lambda 函数式编程,避免内部类定义过多
线程的状态
新建状态
就绪
运行
阻塞
死亡
常用的方法
sleep
join
yield
islive
start
satpriority
interrupt
线程同步
多个对象操作同一个资源,并发
队列+锁
Synchronized 同步方法 同步代码块 第一个线程进来拿到锁,后面的人排队,直到释放,后面的才能进去
死锁,互斥,请求与保持,不剥夺条件,循环等待
lock juc
ReentrantLock
lock(优先级高)
trylock
unlock
线程通信 缓冲区,消息队列 标志位 红绿灯 wait notifyAll
线程池pool 池化技术,池的大小,最大连接,保持时间
网络编程
URL
端口
Socket编程
TCP 三次握手,四次挥手,面向连接
UDP 无连接,Packet
URL
初识Tomcat
GUI
AWT Frame
监听事件,鼠标,键盘,窗口,文本框,动作事件
Swing 文本框 标签 按钮 文本域 面板 布局方式 关闭窗口 列表
timer
键盘监听
注解反射
注解,元注解
内置注解
自定义注解
反射读取注解
反射 Class newInstance
类的加载机制
Method invoke 存在重载,需要写参数类型
Field set
Construct newInstance 获取的时候需要,传递参数的class类型
破坏私有关键字 setAccessible
性能分析 正常>检测关闭的反射>默认反射
反射获取注解,泛型
单列模式的探究
Stream
ForkJoin 效率对比