拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 Java小题精炼训练营(篇三)

Java小题精炼训练营(篇三)

白鹭 - 2022-01-26 1990 0 0

1、关于AOP错误的是?

AOP将散落在系统中的“方面”代码集中实作
AOP有助于提高系统可维护性
AOP已经表现出将要替代面向物件的趋势
AOP是一种设计模式,Spring提供了一种实作

图片说明

这个子类指的是 不同包下的子类

public:可以被所有其他类所访问

private:只能被自己访问和修改

protected:自身、子类及同一个包中类可以访问

default:同一包中的类可以访问,宣告时没有加修饰符,认为是friendly,

A

3、下列关于例外处理的描述中,错误的是(),

程序运行时例外由Java虚拟机自动进行处理
使用try-catch-finally陈述句捕获例外
可使用throw陈述句抛出例外
捕获到的例外只能在当前方法中处理,不能在其他方法中处理

这里需要注意Thread的start和run方法

用start方法才能真正启动执行绪,此时执行绪会处于就绪状态,一旦得到时间片,则会呼叫执行绪的run方法进入运行状态,

而run方法只是普通方法,如果直接呼叫run方法,程序只会按照顺序执行主执行绪这一个执行绪,

在第7行的时候,呼叫的是t.run();方法,之间呼叫run方法就是普通的方法呼叫而已,所以肯定是先执行pong()再执行System.out.print("ping");

如果第7行换成t.start()方法,答案就应该选择c,因为t.start()后,执行绪变为就绪状态,什么时候开始执行时不确定的,可能是主程序先继续执行,也可能是新执行绪先执行,

B

5、在Java中,以下资料型别中,需要存储器最多的是()

byte
long
Object
int

A.由于y的值不确定,所以要加锁;

B,C 两个在多执行绪情况下是必须要加锁的,因为他们是先被读入暂存器,然后再进行+1操作,如果没有加锁,那么可能会出现资料例外;

D 原子操作,所以不需要加锁

原子性:指该操作不能再继续划分为更小的操作,

Java中的原子操作包括:

1、除long和double之外的基本型别的赋值操作

2、所有参考reference的赋值操作

3、java.concurrent.Atomic.* 包中所有类的一切操作

D

7、如果一个界面Glass有个方法setColor(),有个类BlueGlass实作界面Glass,则在类BlueGlass中正确的是? ( )

protected void setColor() { …}
void setColor() { …}
public void setColor() { …}
以上陈述句都可以用在类BlueGlass中

hashcode和equals的约定关系如下:

1.equals()相等的两个物件他们的hashCode()肯定相等,也就是用equals()对比是绝对可靠的,

2.hashCode()相等的两个物件他们的equal()不一定相等,也就是hashCode()不是绝对可靠的,

D

9、protected访问权限要小于包访问权限,( )

正确
错误

1、创建泛型物件的时候,一定要指出型别变量T的具体型别,争取让编译器检查出错误,而不是留给JVM运行的时候抛出类不匹配的例外, 2、JVM如何理解泛型概念 —— 型别擦除,事实上,JVM并不知道泛型,所有的泛型在编译阶段就已经被处理成了普通类和方法, 处理方法很简单,我们叫做型别变量T的擦除(erased) , 总结:泛型代码与JVM ① 虚拟机中没有泛型,只有普通类和方法, ② 在编译阶段,所有泛型类的型别自变量都会被Object或者它们的限定边界来替换,(型别擦除) ③ 在继承泛型型别的时候,桥方法的合成是为了避免型别变量擦除所带来的多型灾难, 无论我们如何定义一个泛型型别,相应的都会有一个原始型别被自动提供,原始型别的名字就是擦除型别自变量的泛型型别的名字,

D

12、下面哪些情况会引发例外:

阵列越界
指定URL不存在
使用throw陈述句抛出
使用throws陈述句

A对:java类单继承,多实作
B错:被abstract修饰的类就是抽象类,有没有抽象方法无所谓
C错:描述有问题,protected成员在子类的可见性,我最初理解是子类(不继承父类protected成员方法)获取父类被protected修饰的成员属性或方法,可见性是不可能变的,因为修饰符protected就是描述可见性的,
这道题应该是要考察子类继承父类,并重写父类的protected成员方法,该方法的可见性可以修改,这是对的,因为子类继承父类的方法,访问权限可以相同或往大了改
D对,
E错:final修饰的方法只是不能重写,static修饰的方法只能访问类的成员变量
F对,

ACDF

14、有关执行绪的叙述正确的是()

可以获得对任何物件的互斥锁定
通过继承Thread类或实作Runnable界面,可以获得对类中方法的互斥锁定
执行绪通过使用synchronized关键字可获得物件的互斥锁定
执行绪调度算法是平台独立的

Java表达式转型规则由低到高转换

1、所有的byte,short,char型的值将被提升为int型;

2、如果有一个操作数是long型,计算结果是long型;

3、如果有一个操作数是float型,计算结果是float型;

4、如果有一个操作数是double型,计算结果是double型;

5、被fianl修饰的变量不会自动改变型别,当2个final修饰相操作时,结果会根据左边变量的型别而转化,

陈述句1错误:b3=(b1+b2);自动转为int,所以正确写法为b3=(byte)(b1+b2);或者将b3定义为int;

陈述句2正确:b6=b4+b5;b4、b5为final型别,不会自动提升,所以和的型别视左边变量型别而定,即b6可以是任意数值型别;

陈述句3错误:b8=(b1+b4);虽然b4不会自动提升,但b1仍会自动提升,所以结果需要强转,b8=(byte)(b1+b4);

陈述句4错误:b7=(b2+b5); 同上,同时注意b7是final修饰,即只可赋值一次,便不可再改变

BCD

16、Java()中的静态方法是什么

它是属于类而不是物件(实体)的方法

静态方法只能访问静态资料,它无法访问非静态资料(实体变量)

静态方法只能呼叫其他静态方法,不能从中呼叫非静态方法,

静态方法不能通过类名直接访问,并且不需要任何物件

1、一个子类只能继承一个抽象类(虚类),但能实作多个界面;
2、一个抽象类可以有构造方法,界面没有构造方法;
3、一个抽象类中的方法不一定是抽象方法,即其中的方法可以有实作(有方法体),界面中的方法都是抽象方法,不能有方法体,只有宣告;
4、一个抽象类可以是public、private、protected、default,
   界面只有public;
5、一个抽象类中的方法可以是public、private、protected、default,
   界面中的方法只能是public和default

CD

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *