1.下列哪个对访问修饰符作用范围由大到小排列是正确的?
A.private>default>protected>public
B.public>default>protected>private
C.private>protected>default>public
D.public>protected>default>private
2.以下代码的输出的正确结果是____
public class Test {
public static void main(String args[]) {
String s = "祝你考出好成绩!";
System.out.println(s.length());
}
}
3.关于继承和实现说法正确的 是 ? ( )
A.类可以实现多个接口,接口可以继承(或扩展)多个接口
B.类可以实现多个接口,接口不能继承(或扩展)多个接口
C.类和接口都可以实现多个接口
D.类和接口都不可以实现多个接口
4.有变量int i = 0; int a = i++; int b = ++a; int c = a+b; int d = (a == 1)?b:c; 请问a和d的值分别是多少?( )。
A.2,4
B.1, 4
C.1, 2
D.1,1
5.关于下面的程序Test.java说法正确的是( )。
public class Test {
static String x="1";
static int y=1;
public static void main(String args[]) {
static int z=2;
System.out.println(x+y+z);
}
}
A.3
B.112
C.13
D.程序有编译错误
6.下面关于 new 关键字的表述错误的是()
A.new关键字在生成一个对象时会为对象开辟内存空间
B.new关键字在生成一个对象时会调用类的构造方法
C.new关键字在生成一个对象时会将生成的对象的地址返回
D.Java中只能通过new关键字来生成一个对象
7.检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果。
public class HelloB extends HelloA
{
public HelloB()
{
}
{
System.out.println("I’m B class");
}
static
{
System.out.println("static B");
}
public static void main(String[] args)
{
new HelloB();
}
}
class HelloA
{
public HelloA()
{
}
{
System.out.println("I’m A class");
}
static
{
System.out.println("static A");
}
}
A.
static A
I’m A class
static B
I’m B class
B.
I’m A class
I’m B class
static A
static B
C.
static A
static B
I’m A class
I’m B class
ID.
’m A class
static A
I’m B class
static B
8.假如某个JAVA进程的JVM参数配置如下:
-Xms1G -Xmx2G -Xmn500M -XX:MaxPermSize=64M -XX:+UseConcMarkSweepGC -XX:SurvivorRatio=3,
请问eden区最终分配的大小是多少___
9.JavaWEB中有一个类,当会话种绑定了属性或者删除了属性时,他会得到通知,这个类是:___
10.下面哪些类实现或者继承了Collection接口?
A.HashMap
B.ArrayList
C.Vector
D.Iterator
(1)D
public可以被当前类,子类,包,其他包,访问,
protected 可以被当前类,子类,包访问
default可以被可以被当前类,包内访问;
private只能被当前类访问
(2) 8
length得到的是字符,不是字节。
(3)1.类与类之间的关系为继承,只能单继承,但可以多层继承。 2.类与接口之间的关系为实现,既可以单实现,也可以多实现。 3.接口与接口之间的关系为继承,既可以单继承,也可以多继承。 故为A
(4)
public class MyClass {
public static void main(String args[]) {
int a=1;
int b=1;
int y = a++;
int z = ++b;
System.out.println("y="+y);
System.out.println("z="+z);
}
}
输出结果是
y=1
z=2
分析:
y = a++ 先执行 y =a,后执行 a = a+1 ,即 y =1
z = ++b 先执行 b = b+1 后执行 z = b,即 z = 2
(5)D
被static修饰的变量称为静态变量,静态变量属于整个类,而局部变量属于方法,只在该方法内有效,所以static不能修饰局部变量
(6)正确答案是D
java中创建对象有以下几种方法:
1.用new语句创建对象,这是最常用的创建对象的方式。
2.运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。
3.调用对象的clone()方法。
4.运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法.
(7)其中涉及:静态初始化代码块、构造代码块、构造方法
当涉及到继承时,按照如下顺序执行:
1、执行父类的静态代码块
static {
System.out.println(“static A”);
}
输出:static A
2、执行子类的静态代码块
static {
System.out.println(“static B”);
}
输出:static B
3、执行父类的构造代码块
{
System.out.println(“I’m A class”);
}
输出:I’m A class
4、执行父类的构造函数
public HelloA() {
}
输出:无
5、执行子类的构造代码块
{
System.out.println(“I’m B class”);
}
输出:I’m B class
6、执行子类的构造函数
public HelloB() {
}
输出:无
那么,最后的输出为:
static A
static B
I’m A class
I’m B class
正确答案:C
(8)先分析一下里面各个参数的含义:
-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。
(9)HttpSessionAttributeListener
HttpSessionAttributeListener:可以实现此侦听器接口获取此web应用程序中会话属性列表更改的通知;
HttpSessionBindingListener:当该对象从一个会话中被绑定或者解绑时通知该对象,这个对象由HttpSessionBindingEvent对象通知。这可能是servlet程序显式地从会话中解绑定属性的结果,可能是由于会话无效,也可能是由于会话超时;
HttpSessionObjectListener:没有该接口API;
HttpSessionListener:当web应用程序中的活动会话列表发生更改时通知该接口的实现类,为了接收该通知事件,必须在web应用程序的部署描述符中配置实现类;
HttpSessionActivationListener:绑定到会话的对象可以侦听容器事件,通知它们会话将被钝化,会话将被激活。需要一个在虚拟机之间迁移会话或持久会话的容器来通知所有绑定到实现该接口会话的属性。
(10)