Java刷题笔记12

T1 Switch支持的数据类型

image-20231030132433736

在Java7之前,switch只能支持 byte、short、char、int或者其对应的封装类以及Enum类型。

在Java7中,也支持了String类型 String byte short int char Enum 类型

T2 线程锁的对象

image-20231030132548452

​ 同步代码块(synchronized(this),synchronized(类实例对象),锁是小括号()中的实例对象)

​ 同步非静态方法(synchronized method),锁的是当前对象的实例对象

T3 互斥锁

image-20231030140855143

采用synchronized修饰符实现的同步机制叫做互斥锁机制,它所获得的锁叫做互斥锁。每个对象都有一个monitor(锁标记),当线程拥有这个锁标记时才能访问这个资源,没有锁标记便进入锁池。

任何一个对象系统都会为其创建一个互斥锁,这个锁是为了分配给线程的,防止打断原子操作。每个对象的锁只能分配给一个线程,因此叫做互斥锁。

A.可以获得对任何对象的互斥锁定,”任何”错误。

B 线程的创建方式与线程之间互斥无关

C synchronized关键字可以实现互斥

D 线程创建方式不止通过继承Thread类来实现

T4 ServletConfig

image-20231101135846188

ServletContext对象:获取web全局参数 (整个web应用只有唯一的一个ServletContext对象)

servletConfig对象:用于封装servlet的配置信息。从一个servlet被实例化后,对任何客户端在任何时候访问有效,但仅对servlet自身有效,一个servlet的ServletConfig对象不能被另一个servlet访问。

T5 子类与父类的构造函数调用

image-20231107163154966

子类构造方法在调用时必须先调用父类的,由于父类没有无参构造,必须在子类中显式调用,修改子类构造方法如下即可: public Derived(String s){ super(“s”); System.out.print(“D”); }

T6 三元运算符的自动转型

image-20231107165553128

三元操作符类型的转换规则:

1.若两个操作数不可转换,则不做转换,返回值为Object类型

2.若两个操作数是明确类型的表达式(比如变量),则按照正常的二进制数字来转换,int类型转换为long类型,long类型转换为float类型等。

3.若两个操作数中有一个是数字S,另外一个是表达式,且其类型标示为T,那么,若数字S在T的范围内,则转换为T类型;若S超出了T类型的范围,则T转换为S类型。

4.若两个操作数都是直接量数字,则返回值类型为范围较大者