行内注释 //
多行注释 /* */
文档注释 /** */ Javadoc生成帮助文档
关键字
整数:byte 1 short 2 int(默认) 4 long 8
浮点数:float 4 double(默认) 8 BigDecimal
字符:char 2 ASCII utf-8 Unicode
布尔值:boolean 1位
类
接口
数组
自动类型转换(低转高)
强制类型转换(高转低)
类变量
实例变量
局部变量
final MAX_A = 10;
1.见名知意
2.驼峰命名(变量、方法)
3.类,首字母大写,驼峰命名
4.常量:大写+下划线
5.不要使用拼音命名
算术运算符:+ - * / % ++
赋值运算符:=
关系运算符:< > <= >= == != instanceof
逻辑运算符: && || !
位运算符: & | ^ ~ >> << >>>
条件运算符: ?:
扩展运算符:+= -= /=
域名倒写
防止命名冲突
package
import
javadoc -encoding UTF-8 -charset UTF-8 HelloWorld.java
@author @Version @Since @param @return @throws
Scanner:用户交互 System.in
顺序结构:程序默认结构,自上而下执行
选择结构:if单选择结构 if else双选择结构 if elseif else多选择结构
switch:jdk支持了String类型 case穿透现象 break default
循环结构:while do while for for each
break continue return
修饰符 返回值 方法名 (参数名){return返回值}
类名.方法
对象.方法
名字相同,参数列表不同
给main方法传递参数
doc窗口下 HelloWorld 后接参数
...
必须放在最后一个参数
自己调用自己,给自己一个出口
面试常问
new int[5]
{1,2,3,4,5}
必须是同一类型值
通过下标拿到值
异常:ArrayindexoutofBounds
for each遍历
int [] []
冒泡排序
选择排序
插入排序
快速排序
归并排序
希尔排序
堆排序
基数排序
类是对象的抽象:模板Class
对象是类的具体
构造的重载:默认无参构造
如果手动定义有参构造那必须手动加一个无参构造
单例模式,需要构造器私有
栈存放引用
堆存放具体的对象
属性私有,get、set方法
extends
Object
子类拥有父类的全部特性
方法重写
this
super
父类的引用指向子类的对象 Person person = new Student();
instanceof 关键字,如果匹配,可以进行类型之间的转换
public
protected
private
static
final
abstract
interface
约束,只能定义方法名
子类实现接口,必须重写其中的方法
只有一个方法的接口叫做函数式接口,可以使用lambda表达式简化
接口比抽象类更抽象
一个类可以实现多个接口
局部内部类
静态内部类
匿名内部类(重点)
exception—运行时异常:1/0 ClassNotFound NullPoint UnknowType 下标越界异常 .....
Error:AWT错误
JVM错误:StackOverFlow OutOfMemory
try{}
catch(){}
finally{}
throw 手动抛出异常
throw 方法抛出异常
继承Exception类即可
创建文件、查看文件、修改文件、删除文件
自动装箱拆箱
Date
SimpleDateFormat yyyy-MM-dd HH:mm:ss
Calendar(建议使用)
不可变性 final 操作量较少
可变长 append() 多线程数量较大 效率低安全
可变长 单线程数量较大 效率高不安全
使用Iterator接口遍历
ArrayList:add remove contains size
LInkedList: getFirst{} getLast{} removeFirst{} addFirst{} ...
vector
Stack
HashSet
TreeSet
HashMap(重点,面试高频问题):
JDK1.7:数组+链表
JDK1.8:数组+链表+红黑树
TreeMap
约束,避免类型转换之间的问题
OutputStream
InputStream
Reader
Writer
CharArrayReader,CharArrayWriter
CharInputStream,CharOutputStream
StringReader,StringWriter
pipe(管道流),PipeOutputStream
file流
buffer:BufferInputStream,BufferOutputStream
BufferReader,BufferWriter
data:DataInputStream,DataOutputStream
Object流
转换流:InputStreamReader,OutputStreamWriter
Filter流
print:PrintWriter,PrintStream
序列化—反序列化 Serializable transient(透明化)
Thread start0 本地方法:Java无权调用,交给底层的C处理
private native void start0();
Runnable 函数式接口 lambda
Callable 可以有返回值
new Thread(Runnable).start();
函数式编程
避免内部类定义过多
new thread(()->{System.out.println();}).start();
手动推导一遍lambda表达式
新建状态
就绪
运行
阻塞
死亡
sleep
join
yield
isLive
start
setPriority
interrupt
多个对象操作同一资源,并发
队列+锁
Synchronized:同步方法,同步代码块(常用)
第一个线程进来拿到锁,后面的进行排队,知道这个人释放锁,后面的才能拿着锁进去。
死锁:两个人都抱着对方的锁—互斥、请求与支持、不剥夺条件、循环等待条件
Lock(优先级高):
ReentrantLock:lock,trylock,unlock
缓冲区:消息队列
标志位:红绿灯
wait();
notifyAll();
池化技术
池的大小
最大连接数
保持时间
。。。
原文:https://www.cnblogs.com/zzqzzqzzq520/p/13741243.html