每天进步一点点,挑战每天5道笔试题!加油!!!
正确答案在文末~~
1. 已知 声明并初始化二维数组 int a[ ][ ]={{1,2},{3,4},{5,6}} ,则 a[1][1] 的值为()
- A. 1
- B. 2
- C. 4
- D. 5
2. 类Person里面有个方法sleep(),如果直接用Person.sleep(),则方法sleep前面必须用的关键词是? ( )
- A. class
- B. static
- C. public
- D. final
3. 下面代码的返回值是什么?
public boolean returnTest()
{
try
{
return true;
}
catch (Exception e)
{
}
finally
{
return false;
}
}
- A. true
- B. false
4. 以下哪个不属于JVM堆内存中的区域()?
- A. survivor区
- B. 常量池
- C. eden区
- D. old区
5. 下列说法正确的是()
- A. JAVA程序的main方法必须写在类里面
- B. JAVA程序中可以有多个名字为main方法
- C. JAVA程序中类名必须与文件名一样
- D. JAVA程序的main方法中,如果只有一条语句,可以不用{}(大括号)括起来
答案
- C
这是一个二维数组,注意数组下标是从零开始的! - B
static关键字:针对多个对象共有成员变量值时所提出的。
特点:
1、随着类的加载而加载;
2、优先于对象存在;
3、被类的所有对象共享;
4、可以通过类名直接调用。
注意:
1.在静态方法中是没有this关键字的;
2.静态方法只能访问静态的成员变量和静态的成员方法。 - B
一旦finally中使用了return或throw语句,将会导致try块、catch块中的return、throw语句失效。
当java程序执行try块、catch块时遇到了return或throw语句,这两个语句会导致方法立即结束,所以 系统并不会立即执行者两个语句, 而是去寻找是否有finally块,如果没有,程序立即执行return或throw语句,方法终止;如果有finally,系统立即执行finally块,只有当finally块执行完成后系统才跳回来执行try、Catch块里的return、throw,如果finally里也使用了return或 throw等导致方法终止的语句,finally块已经终止了方法,系统将不会跳回执行try、catch块里的任何代码 - B
堆中的内存可以为了新生代和老年代,新生代由可以分为一个Survivor和两个Eden(From,To),默认比例8:1:1。
其实这个题有问题,从JDK7开始,常量池就从方法区中被移了到了堆(Hotspot叫做永久代),JDK8的时候,永久代被元空间代替。但是这个字符串常量池可是一直都在堆中的。
这里先说一下,方法区和永久代只是针对于HotSpot而言,在JDK7之前是一个概念,对于别的虚拟机而言,可没有什么永久代,只有方法区。
为什么HotSpot把永久代取消了呢,主要是因为这块地方的GC机制和堆邦定在一起,但是因为它不是堆,所以每一个GC收集器都需要有很大一部分代码去专门实现这个区域的垃圾,其次,每次一开始为永久代分配内存的时候,因为无法估量对象的大小,所以总是很难分配合适的内存,还容易出现OOM,所以取代成了元空间。元空间的话相当于一个内地内存,所以基本不会出现什么OOM,但是内存泄漏还是有的 - AB
一个java程序中可以包含一个或多个类,可以存在多个名字为main的方法(重载),但只能有一个入口地址,即只能包含一个public static void main(String[] args){}。
方法体必须用{}括起来,无论有多少句,但是for和if等中,如果是一条语句,可以省略{},但要注意缩进。
如果你看到了这里,请小伙伴给个一键三连,你的肯定是对我最大的鼓励-