- 编译java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(.class)
- 面向对象的三个特点是:封装、继承、多态。
- 设 x=2;则表达式(x++)/3的值是:0
package com.javalainxi;
public class Interview01 {
public static void main(String[] args) {
int a = 2;
int x = (a++) / 3;
System.out.println(x);
System.out.println(a);
//结果
//0
//3
}
}
- 代码 int a[] = new int[3]; 中a[0] 的值为(0)。如果是double类型则值为(0.0)。如果是String类型则值为(null)。
- java基本数据类型中的整型占用字节数为(4),字符型占用字节数为(2),短整型占用字节数为(2),byte占用字节数为(1),boolean占(1),float占(4),double占(8)。
- String str = " ABCDEF"; str.charAt(3)的值为(C)
- 创建线程既可以从Thread类继承,也可以实现(Runnable、Callable)接口。
- 下面代码输出结果为(2)
public class Interview01 {
static int i =0;
public static void main(String[] args) {
Interview01 a = new Interview01();
a.i = 1;
Interview01 b = new Interview01();
b.i = a.i + 1;
System.out.println(a.i);
- IO流可分为字节流和字符流。
- 下面代码执行结果为:(B)
public class Interview01 {
public String toString() {
return "A";
}
public class B extends Interview01{
public String toString() {
return "B";
}
public static void main(String[] args) {
Interview01 b = new B();
System.out.println(b.toString());
//结果 B
}
}
二、选择题
public class Interview01 {
static int a[] = new a[10];//a[10] 错误,将a改成int
public static void main(String[] args) {
System.out.println(a[10]);//索引越界
- 关于上面程序,哪项正确(编译时产生错误)
- 哪个关键字可以对对象加互斥锁(synchronized)
- int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是
A.public int MAX_LENGTH=100
B.final int MAX_LENGTH=100
C.public const int MAX_LENGTH=100
D.public final int MAX_LENGTH=100
正确答案:D
解析:本题考查Java中变量的声明。选项A虽然按照题目要求定义了一个变量,但没有满足保持为常数的要求,该变量可以被改变。选项B没有满足题目要求的public成员变量;选项C与C语言混淆,const是C语言用来定义常值变量的关键字,Java中定义常值变量使用的是 final属性,说明该值赋值以后永不改变,所以选项 D为正确答案。
- main 方法是 Java Application 程序执行的入口点,关于 main 方法的方法头以下哪项是合法的(B.E )?
A. public static void main()
B. public static void main(String args[])
C. public static int main(String [] arg)
D. public void main(String arg[])
E. public static void main(String[] args)
- 以下哪个方法声明能够被加入到child类中,编译正确(B)
public class Interview01 {
public int addValue(int a ,int b){
return a+b;
}
public class B extends Interview01{
public void addValue(int b,int a){}//错误
A. int addValue(int a, int b){} //不写修饰符,默认是default(同一包下可以访问)
B. public void addValue(){}
C. public void addValue(int b, int a){} //返回值问题,Interview01 类的方法有返回值,这就会出现矛盾。
- 判断以下Teacher类的main方法的运行结果是()
public class Persion {
public Persion(){func();}
public void func(){
System.out.println("1, ");
}
}
package com.javalainxi;
public class Teacher extends Persion{
public Teacher(){super();}
public Teacher(int a ){
System.out.println(a);
}
public void func(){
System.out.println("2, ");
}
public static void main(String[] args) {
Teacher t1 = new Teacher();
Teacher t2 = new Teacher(3);
System.out.println(t1);
System.out.println(t2);
}
}
//结果
//2,
//2,
//3
- 下面不允许作为外部类的访问控制符的是( private )
public
private
protected
- Set接口和Collection接口的区别是(A)
A. Set不允许有重复值,Collection允许有重复元素。
B. collection不允许有重复值,Set允许有重复值。
C. 都允许有重复值。 - Statement和PreparedStatement的区别(B)
A. DMBC对 Statement语句进行预编译,DMBC对PreparedStatement不进行预编译
B. DMBC对 Statement语句不进行预编译,DMBC对PreparedStatement进行预编译
C. Statement执行语句效率更高。
解释:Statement每次执行sql语句,数据库都要执行sql语句的编译,最好用于仅执行一次查询并返回结果的情形,效率高于PreparedStatement.但存在sql注入风险。PreparedStatement是预编译执行的。在执行可变参数的一条SQL时,PreparedStatement要比Statement的效率高
- System.out.println(“2”+6);的输出结果为(26)
- 下列字符串半段结果为true的是()
String a = new String("ABC");
String b = new String("ABC");
String c = "ABC";
System.out.println(a==b); //false
System.out.println(a==c); //false
System.out.println(c.equals(a)); //true
-
在一个窗口(JFrame)中单击事件必须实现哪个接口(A)
A. ActionListenter
B. MouseListenter
C. MouseMotionListern -
下面代码执行后输出的结果为(B)
public class ExceptionDemo {
public static void main(String[] args) {
int i = 0;
try{
i++;
int j = Integer.parseInt("12a");
i++;
}catch (NumberFormatException e){
i++;
}
finally {
i++;
}
System.out.println(i);
}
}
A. 2
B. 3
C. 4
-
请问所有的异常类皆直接继承于哪一个类?(C)
A. java.applet.Applet
B. java.lang.Throwable
C. java.lang.Exception
D. java.lang.Error -
创建下列类的对象,不正确的是(C)
public class Persion {
private String name;
public Persion(String name){
this.name = name;
}
}
public class Student extends Persion {
String name;
private String number;
public Student (String name,String number){
super(name);
this.name = name;
this.number = number;
}
public static void main(String[] args) {
Student liMing = new Student("LiMing", "123");
Persion liMing1 = new Student("LiMing", "123");
Persion liMing2 = new Persion("LiMing", "1234");//Persion类是一个参数
}
}
A. Student liMing = new Student(“LiMing”, “123”);
B. Persion liMing1 = new Student(“LiMing”, “123”);
C. Persion liMing2 = new Persion(“LiMing”, “1234”);
- 下面代码不正确的是(都对啊啊,都有输出结果)
A. Object i =10;
int j = (int)i;
System.out.println(i);
B. int a =187;
char b =(char)a;
System.out.println(b);
C. Object x = " A";
String q = (String)x;
System.out.println(q);
//结果
//10
//»
// A
-
下面关于垃圾收集的说法正确的是(D)
A. 一旦一个对象成为垃圾,就立刻被收集掉。
B. 对象空间被收集掉之后,会执行该对象的finalize方法
C. finalize方法和C++的析构函数是完全一回事情
D. 一个对象成为垃圾是因为不再有引用指着它,但是线程并非如此 -
关于Java虚拟机垃圾回收以下说法正确的有哪些?(C, D)
A. Java虚拟机中的自动垃圾回收机制能阻止程序运行时内存溢出
B. 垃圾回收是一个独立的平台
C. 当一个对象的所有引用都被置为空时,该对象就可以变为能被垃圾回收的
D. System.gc()可以建议垃圾回收执行,但不能强迫其执行;
三、简答题
public class B {
public int i =5;
private String s;
protected double d;
B b;
public void test(){
System.out.println("in B");
}
}
public class C extends A {
public C(){};
public void test(){
System.out.println("IN C ");
}
}
public class A extends B {
public byte i =1;
public A(){}
public void test(){
System.out.println(" in A");
}
public static void main(String[] args) {
A a = new A(); //a可以访问的变量是 i , b , d
C c = new C(); //c可以访问的变量是 i , b , d
B a1 = new A();
System.out.println("---------------");
a1.test();// 打印结果 in A
System.out.println(a1.i);//打印结果 5
// A aa = (A)a1;
C c2 = (C)a;//错误 ClassCastException
}
}