Java日常练习题,每天进步一点点(37)

时间:2022-11-22 00:08:56

1、java中,用( )关键字定义常量?

正确答案: A

final

#define

float

const

题解:
A:final修饰变量,表示变量的指向(引用地址)不可变。
B:#define,Java中没这个东西。
C:单精度浮点。
D:const,这是个保留关键字,和goto一样。暂时没有用,是C和C++中的常量关键字。

2、以下代码的循环次数是

?
1
2
3
4
5
6
7
8
9
10
public class Test {
public static void main(String args[]) {
int i = 7;
do {
System.out.println(--i);
 --i;
} while (i != 0);
System.out.println(i);
}
}

正确答案: D

0

1

7

无限次

题解:
会先执行do循环体一次,再判断while里的判断条件是否成立,如果成立继续,不成立退出,单独的–i和i–没有区别,但是在表达式中,–i会先进行自减再执行语句,而i–是先执行语句再进行自减,这一题每次循环执行输出语句时i自减1,执行–i时再次自减1,每次循环减2,总值为7,第四次执行循环时,i=-1,不等于0,所以会无限次循环。

3、下面代码的执行结果是 :

class Chinese{

private static Chinese objref =new Chinese();

private Chinese(){}

public static Chinese getInstance() { return objref; }

}

public class TestChinese {

public static void main(String [] args) {

Chinese obj1 = Chinese.getInstance();

Chinese obj2 = Chinese.getInstance();

System.out.println(obj1 == obj2);

}

}

正确答案: A

true

false

TRUE

FALSE

题解:
饿汉式单例模式,在类创建时,就已经实例化完成,在调用Chinese.getInstance()时,直接获取静态对象,obj1和obj2其实是一个对象,应该返回true。

4、如果一个接口Glass有个方法setColor(),有个类BlueGlass实现接口Glass,则在类BlueGlass中正确的是? ( )

正确答案: C

protected void setColor() { …}

void setColor() { …}

public void setColor() { …}

以上语句都可以用在类BlueGlass中

题解:
接口中属性为public static final。方法为public abstract,子类的权限不能比父类更低。

5、下面的输出结果是什么?

public class Demo {

public static void main(String args[])

{

String str=new String(“hello”);

if(str==“hello”)

{

System.out.println(“true”);

}

else {

System.out.println(“false”);

}

}

}

正确答案: B

true

false

题解:
==用来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是数值类型(不要求数据类型严格相同),则只要两个变量的值相等,就返回true;对于两个引用类型变量,必须指向同一个对象,==才会返回true。==判断的是对象引用地址是否相同,String str=new String(“hello”);
这句话new了一个新的String对象,所以地址与"hello"字符串常量的地址不同,答案为false,如果判断字符串是否相等应给用str.equals(“hello”)方法。

6、以下JAVA程序代码的输出是

public static void main(String args[]) {

System.out.println(14^3);

}

正确答案: B

2744

13

17

11

题解:
^表示异或 就是相同是0 不同是1
14是1110
3是0011
所以14^3=1101,即13

7、Which method you define as the starting point of new thread in a class from which n thread can be execution?

翻译:在一个可以执行n个线程的类中,哪个方法定义为新线程的起点?

正确答案: B

public void start()

public void run()

public void int()

public static void main(String args[])

public void runnable()

题解:
问线程执行的入口,start()是启动该线程的方法,是启动的动作,run方法就是线程执行的入口。

8、Java1.8之后,Java接口的修饰符可以为()

正确答案: D

private

protected

final

abstract

题解:
接口是一种特殊的抽象类,先说明抽象类中的抽象方法,再说明接口
抽象类中的抽象方法(其前有 abstract1修饰)不能用 private、 static、 synchronized、native访回修饰符修饰。原因如下:
1、private
抽象方法没有方法体,是用来被继承的,所以不能用 private修饰。
2、static
static修饰的方法可以通过类名来访间该方法(即该方法的方法体),抽象方法用sttic修饰没有意义。
3.、synchronized
该关键字是为该方法加一个锁。而如果该关键字修饰的方法是 static方法。则使用的锁就是class变量的锁。如果是修饰类方法。则用this变量锁。
但是抽象类不能实例化对象,因为该方法不是在该抽象类中实现的。是在其子类实现的。所以,锁应该归其子类所有。所以,抽象方法也就不能用 synchronized关键字修饰了。
4、native
native这个东西本身就和 abstract冲突,他们都是方法的声明,只是一个把方法实现移交给子类,另一个是移交给本地操作系统。如果同时出现,就相当于即把实现移交给子类,又把实现移交给本地操作系统,那到底谁来实现具体方法呢?
接口是一种特殊的抽象类,接口中的方法全部是抽象方法(但其前的 abstract可以省略),所以抽象类中的抽象方法不能用的访间修饰符这里也不能用。同时额外说明一下protect关键词
5、protect
protected访同修饰符也不能使用,因为接口可以让所有的类去实现(非继承),不只是其子类,但是要用public去修饰。接口可以去继承一个已有的接口。

9、假如某个JAVA进程的JVM参数配置如下:

-Xms1G -Xmx2G -Xmn500M -XX:MaxPermSize=64M -XX:+UseConcMarkSweepGC -XX:SurvivorRatio=3,

请问eden区最终分配的大小是多少?

正确答案: C

64M

500M

300M

100M

题解:
先分析一下里面各个参数的含义:
-Xms:1G , 就是说初始堆大小为1G
-Xmx:2G , 就是说最大堆大小为2G
-Xmn:500M ,就是说年轻代大小是500M(包括一个Eden和两个Survivor)
-XX:MaxPermSize:64M , 就是说设置持久代最大值为64M
-XX:+UseConcMarkSweepGC , 就是说使用使用CMS内存收集算法
-XX:SurvivorRatio=3 , 就是说Eden区与Survivor区的大小比值为3:1:1
题目中所问的Eden区的大小是指年轻代的大小,直接根据-Xmn:500M和-XX:SurvivorRatio=3可以直接计算得出
500M*(3/(3+1+1))
=500M*(3/5)
=500M*0.6
=300M
所以Eden区域的大小为300M。

10、在Struts框架中如果要使用Validation作验证的话,需要使用以下哪个Form?

正确答案: D

ActionForm

ValidatorActionForm

ValidatorForm

DynaValidatorActionForm

总结

本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注服务器之家的更多内容!

原文链接:https://blog.csdn.net/weixin_43883917/article/details/116332917