java

文章目录

一:基础语法

1. 数据类型

1.1 基本数据类型

1.1.1 整数

byte:1字节—>8位

short:2字节

int(默认):4字节

long:8字节

Ob:二进制

OX:十六进制

O:八进制

1.1.2 浮点数

float:4字节

double(默认):8字节

BigDecimal

1.1.3 字符

char:2字节

​ ascii,utf-8,Unicode

转义字符(\b \n \r \t )

1.1.4 布尔值

boolean:1位

1.2 引用数据类型

1.2.1类

1.2.2接口

1.2.3数组

2.类型转换

2.1 自动类型转换

低->高

2.3 强制类型转换

高->低

3.变量和常量

type varName [=value];

3.1 作用域

类变量

实例变量:把static去掉

局部变量:在方法内的

3.2 final

一般用大写

final int MAX_A=10;

3.3 命名规范

1.见名知意

2.驼峰命名(变量,方法)

3.类:首字母大写,驼峰命名

4.常量:大写+下划线

5.不用拼音命名

4.运算符

4.1 算术运算符

+ - * / % 

4.2 赋值运算符

=

4.3 关系运算符

>   <    >=   <=   ==  !=   instanceof

4.4 逻辑运算符

&&  ||   !

4.5 位运算符

&    |     ^    ~     >>    <<    >>>

4.6 条件运算符

?:

4.7 扩展运算符

+= 	-=   *=  /=

5 包机制

5.1 域名倒写

防止命名冲突

5.2 package

定义包

写在第一行,最上面

5.3 import

导入包

6. JavaDoc

@author

@Version

@Since

@param

@return

@throws

7.流程控制

7.1 顺序结构

程序默认的结构,自上而下的执行

7.2 选择结构

if

if-else

if-else if -else

switch:jdk7支持了String类型

​ case:穿透现象

​ default

7.3 循环结构

while

do…while

for

for-each:增强for循环

8 方法

8.1 方法的定义

方法修饰符 返回值 方法名(参数名) { return 返回值;}

8.2 方法调用

类名.方法

对象.方法

8.3 方法重载

名字相同,参数列表不同

8.4 命令行传参

给main方法传递参数

public class Main{
	/**
	*@author cc
	*@param args 命令参数
	*@Since 1.0
	*@throws 没有异常抛出
	*/
	public static void main(String[] args) {
        for(int i=0;i<args.length;i++){
            System.out.println(args[i]);
        }
    }
	
	
}








C:\Users\cc\Desktop\cc>javac Main.java

C:\Users\cc\Desktop\cc>java Main cc yhf ace LL
cc
yhf
ace
LL

8.5 可变长参数(…)

必须放在最后一个参数

9.数组

new int[5];

{1,2,3};

通过下标拿到值

ArrayIndexOutOfBounds
int[][]
    
    
Arrarys工具类
    

二:面向对象

一切皆对象

1. 类与对象

类是对象的抽象:模板class

对象是类的具体

2.构造方法

2.1构造的重载

默认的无参构造

如果手动定义了有参构造就必须要手动再加一个无参构造

单例模式,需要构造器私有

3.new对象

栈存放引用

堆存放具体的对象

4 .封装

属性私有

get

set

5. 继承

extends

Object

子类拥有父类的全部特性

方法重写

this

super

java是单继承,只能继承一个父类

6. 多态

父类的引用指向子类的对象

​ Persion person=new Student();

instanceof 如果匹配,可以进行类型直接的转换

7.修饰符

public

protected

private

default

static

abstract

final

8.接口interface

约束:只能定义方法名

子类实现接口,必须重写其中的方法

只有一个方法的接口叫做函数式接口,可以使用lambda表达式简化

接口比抽象类更抽象

一个类可以实现多个接口

9.内部类

9.1 成员内部类

9.2 静态内部类

9.3 局部/方法内部类

9.4 匿名内部类

三:异常

1.Throwable

1.1 Exception

运行时异常

​ 1/0

​ ClassNotFound

​ NUllPoint

​ UnKownType

​ 下标越界异常

检查型异常

--------------->手动定义异常就继承这个

1.2 Error

AWT错误

JVM错误

​ StackOverFlow

​ OutOfMemory

2.五个关键字

try{}

catch(){}:先小后大

finally{}

throw :手动抛出异常

throws:方法抛出异常

3.自定义异常

继承Exception类即可

四:常用类

1.Object类

hashcode()

toString()

clone()

getClass()

notify()

wait()

equals()

2.Math类

3.Random类

生成随机数

4.File类

创建文件

查看文件

修改文件

删除文件

5.包装类

自动装箱

自动拆箱

6.Date类

Date

SimpleDateFormat :yyy-MM-dd HH:mm:ss

Calendar

7.String类

不可变性final

操作量较少

8.StringBuffer类

可边长

append()

多线程数据量较大,效率低,安全

9.StringBuilder类

可变长

单线程数据量较大,效率高,不安全

五:集合框架

1.Collection

1.1.LIst(有序可重复)

1.1.1 ArraryLIst(常用)

add()

remove()

contains()

size()

1.1.2 LinkedList

getFirst()

getLast()

removeFirst()

addFirst()

1.1.3 Vector

1.1.4 Stack

1.1.5 Queue

1.2 Set(无序不可重复复)

1.2.1 HashSet

1.2.2 TreeSet

2.Map

2.1 HashMap

JDK1.7:数组+链表

JDK1.8:hash表=数组+链表+红黑树

2.2 TreeMap

3.泛型

泛型<>约束:避免类型转换之间的问题

4.Collections工具类

六:IO流

1. 字节流

1.1 输出

OutputStream

1.2 输入

InputStream

2. 字符流

2.1 Reader

2.2 Witer

3. 处理流

3.1 buffer

3.1.1bufferInputStream

3.1.2 bufferOutStream

3.1.3 bufferReader

3.1.4bufferwriter

3.2 data

3.2.1 DataInputStream

3.2.2 DataOutputStream

3.2.3 转换流

InputstreamReader

OutputStreamWriter

3.3 Filter

四个

3.4 print

3.4.1 PrintWriter

3.4.2 PrintStream

序列化

反序列化 -> Serializable -> transient(透明的)

4. 节点流

CharArrayReader,Writer,inputstream,outputstream

StringReader ,Writer

pipe(管道流) PipedOutStream

File

七:多线程

1. 进程和线程

2. run(),star()

3.线程的创建方式

3.1 Thread

start(), 本地方法:java无权调用,交给底层c处理

3.2 Runnable

函数式接口

3.3 Callable

可以有返回值

4.静态代理

new Thread(Runnble).start()

5.lambda表达式

5.1 函数式编程

避免内部类定义过多

new Thread(()->{
  System.out.println("hello world");
}).start();

6.线程的状态

新建状态

就绪

运行

阻塞

死亡

7. 常用的方法

sleep()

join()

yield

isLive

start

setPriority

interrupt

8.线程同步

多个对象操作同一个资源----->并发

8.1 队列+锁

8.2 Synchronized

第一

8.2.1 同步方法

弊端:锁太多

8.2.2 同步块(常用)

默认锁当前类

8.3 死锁

两个人都抱着对方的锁

a.互斥

b.请求保持

c.不剥夺条件

d.循环等待条件

破坏其中一个条件就解开死锁了

8.4 Lock

ReentrantLock

8.4.1 lock

8.4.2 tylock

8.4.3 unlock

9. 线程通信

9.1 缓冲区:消息队列

9.2 标识位:红路灯

9.3 wai(),notifyAll()

10. 线程池(pool)

10.1 池化技术

10.2 池的大小

10.3 最大连接数

10.4 保持时间

八:网络编程

1.IP

2.端口

3.Socket编程

4.TCP

4.1 三次挥手

4.2 四次挥手

4.3 面向连接

5.UDP

5.1 无连接

5.2 Packet

6.URL

7.聊天通信

8.文件上传

九:GUI(可选)

1.AWT

1.1 Frame

1.2 监听时间

鼠标

键盘

窗口

动作事件

2.Swing

2.1 文本框

2.2 标签

2.3 按钮

2.4 文本框

2.5 面板

2.6 布局方式

2.7 关闭窗口

2.8 列表

十:注解和反射

1. 注解

1.1 元注解

1.2 内置注解

1.3 自定义注解

1.4 反射读取注解

2.反射

2.1 Class

2.2 类加载机制

2.3 Method

存在重载,也需要写参数的类型

2.4 Field

2.5 Construct

获取的时候需要传递

参数的class类型

2.6 破坏私有关键字

2.7 性能分析

正常>检测关闭的反射>默认的反射

3.单例模式的探究

4.Stream

5.ForkJoin

效率对比

十一:数据库操作

十二:JVM

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页