java学习笔记

1、final关键字

可以修饰变量、方法和类

修饰变量,表示变量的值不可以被修改,即常量。

修饰方法,表示方法不可以被重写。

修饰类,表示类不可以被继承。

2、static关键字

静态变量、静态方法、静态代码块

static表明一个成员变量或者方法,可以在没有所属类的实例的情况下被访问。

静态方法不能使用this、super关键字。

3、String、StringBuffer、StringBuilder

String,存放长度不可变的字符串,每次对String类型改变的时候,相当于创建了一个新的对象,将指针指向新的对象

StringBuffer,长度可变字符串,线程安全

StringBuilder,长度可变字符串,线程不安全

速度:StringBuilder>StringBuffer>String

4、方法的重载与重写

(1)重载,在一个类中,有相同的方法名,参数类型或个数不同。

重载的方法,返回值类型,可能相同,可能不同。

(2)重写,子类与父类之间,方法名、参数类型、返回值类型完全一致。

5、抽象类和接口的区别

在jdk1.7及之前

抽象类,可有抽象方法,非抽象方法,类只能继承自一个抽象类,java单继承特性。

接口,只有抽象方法,类可以实现多个接口。

在jdk1.8中

接口可以有静态方法和默认方法,也就是说接口有了实现方法。

默认方法可以在子类中重写,也可以不重写。

6、==和equals的区别

==比较两个内存地址和内容是否相等

equals比较两个内容是否相等。

7、创建线程的方法

(1)继承thread类

(2)实现runnable接口。

这两种方式都需要重写run方法。

8、实现同步的方式

(1)使用synchronized关键字,修饰方法和代码块

(2)使用wait,wait(),notify()方法

9、volatile关键字

为线程同步提供免锁机制

如果一个变量声明为volatile,那么编译器和虚拟机就知道该变量可能被另一个线程并发更新,因此每次使用该变量时,都会重新获取其值,从而实现同步。

10、什么是线程安全?

如果一个线程中有多个线程,这些线程可能会同时执行一段代码,如果每次运行结果与单线程运行时结果是一样的,其他变量的值也和预期一样,就是线程安全的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值