9

日常Java练习题(每天进步一点点系列)

 3 years ago
source link: https://blog.csdn.net/weixin_43883917/article/details/116332917
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

日常Java练习题(每天进步一点点系列)

牛哄哄的柯南 2021-05-01 21:36:51 12767

1、java中,用( )关键字定义常量?
正确答案: A 你的答案: A(正确)
final
#define
float
const

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

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

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 你的答案: 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 你的答案: A (正确)
true
false
TRUE
FALSE

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

4、如果一个接口Glass有个方法setColor(),有个类BlueGlass实现接口Glass,则在类BlueGlass中正确的是? ( )
正确答案: C 你的答案: 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 你的答案: 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 你的答案: 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 你的答案: 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 你的答案: 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 你的答案: 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 你的答案: D (正确)
ActionForm
ValidatorActionForm
ValidatorForm
DynaValidatorActionForm

以上部分题解来自牛客评论区,感谢评论区大佬的解释。

每天进步一点点!
不进则退!

看完如果对你有帮助,感谢点赞支持!
如果你是电脑端,看到右下角的 “一键三连” 了吗,没错点它[哈哈]

在这里插入图片描述
加油!

共同努力!

Keafmd


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK