一、编程基础

1.标识符 见名知意原则 驼峰命名

数字不能开头 区分大小写 不能用java 保留字和关键字

2.java 语言的整型三种表现形式:十进制/八进制/十六进制

3.基本数据类型 

四类八种

a.整型 byte short int(4) long

b.浮点型 float(4) double

c.字符型 char

d.布尔型 boolean

4.引用数据类型

类class 接口interface 数组[] 枚举enum

5.运算符

++ -- && & || | !

+= -=

%

6.程序的结构

a.顺序

b.分支

if..else 表达式返回值必须是Boolean型

switch...case

表达式 byte short int char 1.6->枚举 1.7->String 

Case 常量:

break 不写出现case 穿透

default 可不写

c.循环

while 

do..while 先执行一次 再判断

for

增强for for(数据类型 变量名 : 要循环的对象)


break continue return

break:结束整个循环

continue:跳过本次循环 继续下次循环 

return 结束方法

基础知识总结篇(一)_java

二、数组

1.一维数组

一组相同类型的数据存储到一个定长容器中

可以存储 基本/引用 数据类型

静态初始化{}/动态初始化[2]


每个数组中的元素 都有下标/索引/角标 从0开始

数组长度 length

遍历数组 循环

2.多维数组

数组中的元素存的是数组

3.常用算法

选择 一个元素 选择其他位置的元素进行比较

冒泡 相邻的元素进行比较

二分查表发 先排序 必须是有序的

顺序查表法

4.Arrays工具类

sort()...copyOf() ...

基础知识总结篇(一)_java_02

三、面向对象

1.面向对象和面向过程的区别

2.类和对象的区别

类:对一种事物的描述 包含属性 和 行为

对象:是实际存在的个体

类是图纸 对象是产品

3.属性的默认初始化规则

引用数据类型 null

基本数据类型 0 0.0 false....

4.方法

[权限修饰符 状态修饰符] 返回值 方法名(参数列表){方法体}

5.创建对象

new /反射 

6.方法的重写和重载

重写(override) 继承关系中 子类重写父类/接口的方法 一模一样 权限修饰符 / 异常

重载(overload) 在同一个类中 方法名相同 参数列表不同 与返回值无关

7.面向对象的四大特征

a.封装

权限修饰符

方法

导包 import/打包 package

b.继承

extends super this

单继承(类) 多实现(接口) 接口可以多继承

static 静态

类(内部类)

方法

属性

被静态修饰的特点 随着类的加载而加载 与对象无关

static只能访问static

c.多态

三个前提

必须有关系 重写 父类引用指向子类对象

instanceof 运算符

==和equals的区别

final关键字 最终的

d.抽象

abstract

抽象类 可以有非抽象方法 

当方法被抽象修饰的时候 类就必须是抽象类 强制重写抽象方法

接口 interface

变量都是常量 public static final

方法默认 public abstract

方法修饰符:abstract/default/static

8.内部类

定义在类中的类

成员内部类/静态内部类/局部内部类(final)/匿名内部类

基础知识总结篇(一)_java_03

四、常用类

String StringBuffer StringBuilder

Math Random Date Calendar SimpleDateFormat


基本数据类型的包装类 装箱/拆箱

值传递和引用传递

基本数据类型包装类 和 String都是值传递

基础知识总结篇(一)_java_04

五、异常

Throwable

Error

Exception 

checked

RuntimeException

Throw 和 Throws 区别

try...catch..finally

final 和 fianlly 和 finalize的区别

六、集合

Collection(单列) add

遍历 Iterator 

List 有序 允许重复 ArrayList LinkedList Vector

ListIterator for forEach

Set 无序 不允许重复 HashSet TreeSet

HashSet(重写 hashCode() equals())

LinkedHashSet 有序 不重复

TreeSet(比较器 Comparable / Comparator)

Iterator forEach


Map(双列) key value 按键排重 与值无关 put

HashTable

HashMap

TreeMap

keySet() entrySet()

Collections 工具类

基础知识总结篇(一)_java_05

七、IO流

分清源头和目的地


字节流 InpuStream / OutputStream -->byte

字符流  Reader / Writer -->缓冲区 readLine() / newLine()


File类 递归获取所有内容 删除不进回收站 new 不是创建文件


其他流

PrintWriter 构造函数 true 自动刷新

RandomAccessFile

Propertie 

基础知识总结篇(一)_java_06

八、线程

创建线程 三种方式 

同步 synchronized 同步代码块 同步方法 静态同步方法 对应的锁


同步的前提: 多线程 同一个锁

避免出现死锁 同步嵌套的时候可能会出现


线程的五种状态

run() start() sleep() wait() notify() notifyAll()

stop() 

interrupt()从冻结转到运行状态

join()

Deamon()

yield()

线程有优先级 10级 默认是5

线程池 哪个类 四个

基础知识总结篇(一)_java_03

九、网络

Socket套接字

Udp / Tcp

基础知识总结篇(一)_java_03

十、设计模式

单例 装饰 生产消费 

基础知识总结篇(一)_java_03

十一、反射

Class Constructor Method Field

基础知识总结篇(一)_java_03

十二、新特性

jdk 1.5

自动装箱拆箱

泛型

可变参数...

增强for循环

枚举

jdk 1.7

switch 表达式可以用字符串了

泛型简化 <>菱形泛型

异常的多个catch 合并 每个异常用|或连接

jdk 1.8

Lambda

Final

接口 -->default static

Time包