1、String是最基本的数据类型吗?
基本数据类型包括byte、int、char、long、float、double、boolean和short。
java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类
2、int 和 Integer 有什么区别
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
原始类型封装类
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。
3、&和&&的区别。
&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)
4、error和exception有什么区别?
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。
5、数组有没有length()这个方法? String有没有length()这个方法?
数组没有length()这个方法,有length的属性。String有有length()这个方法。
6、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
会执行,在return前执行。
7、char型变量中能不能存贮一个中文汉字?为什么?
能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的
8、56、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
多线程有两种实现方法,分别是继承Thread类与实现Runnable接口
同步的实现方面有两种,分别是synchronized,wait与notify
9、Java中的线程有四种状态分别是:运行、就绪、挂起、结束。
10、、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。
用try来指定一块预防所有"异常"的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的"异常"的类型。
throw语句用来明确地抛出一个"异常"。
throws用来标明一个成员函数可能抛出的各种"异常"。
Finally为确保一段代码不管发生什么"异常"都被执行一段代码。
可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句,"异常"的框架就放到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某种"异常"进行处理,堆栈就会展开,直到遇到有处理这种"异常"的try语句。
11、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
可以。必须只有一个类名与文件名相同。
12、java中会存在内存泄漏吗,请简单描述。
会。如:int i,i2; return (i-i2); //when i为足够大的正数,i2为足够大的负数。结果会造成溢位,导致错误。
13、java中实现多态的机制是什么?
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。
14、静态变量和实例变量的区别?
static i = 10; //常量
class A a; a.i =10;//可变
15、在JAVA中,如何跳出当前的多重嵌套循环?
用break; return 方法。
16、作用域public,private,protected,以及不写时的区别
答:区别如下:
作用域 | 当前类 | 同一package | 子孙类 | 其他package |
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
friendly | √ | √ | × | × |
private | √ | × | × | × |
不写时默认为friendly
17、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)
答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数
18、float型float f=3.4是否正确?
答:不正确。精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4; float f = 3.4f;
19、heap和stack有什么区别
答:栈是一种线形集合,其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。堆是栈的一个组成元素
20、java类是否可以多继承,怎么实现多继承?
答:java没有多继承,但可以通过接口的形式来达到多继承的目地。
21、面向对象的特点
答:面向对象有三大特点:封装、继承、多态。(如果要回答四个,可加上抽象性这一特点)
22、类变量的初始化
答:在Java中类变量在局部中一定要初始化,因为局部变量会覆盖全局变量,否则会报错:变量未初始化。全局变量则可以不初始化,而到具体的内部方法或其他的类成员中初始化。
23、数组的定义
答:数组是作为一种对象实现的。数组元素可以包含作何类型值,但数组里面的每个元素的类型必须一致创建数组步聚如下:
l 声明
l 构造
l 初始化
24、== 与 equals 的区别
"==" 比较的是两个对象的引用 (references),并不是他们的内容.
equals(Object) 方法与 "==" 相比的特殊之处就在于它可以覆盖,所以我们可以通过覆盖的办法让它不是比较引用而是比较数据内容。当然 JDK 中也有覆盖过 equals(Object) 方法的类,如 java.lang.String,它就覆盖了从 Object 继承来的的 equals(Object) 方法,用以比较字符串内容是否相同。
25、接口中方法的前面有哪些修饰符
访问权限返回值类型是否静态是否抽象
JAVA代码查错
1.
abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}
}
这有何错误?
答案: 错。abstract method必须以分号结尾,且不带花括号。
2.
public class Something {
void doSomething () {
private String s = "";
int l = s.length();
}
}
有错吗?
答案: 错。局部变量前不能放置任何访问修饰符 (private,public,和protected)。final可以用来修饰局部变量
(final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)。
3.
public class Something {
public int addOne(final int x) {
return ++x;
}
}
这个比较明显。
答案: 错。int x被修饰成final,意味着x不能在addOne method中被修改。
4.
class Something {
int i;
public void doSomething() {
System.out.println("i = " + i);
}
}
有什么错呢? 看不出来啊。
答案: 正确。输出的是"i = 0"。int i属於instant variable (实例变量,或叫成员变量)。instant variable有default value。int的default value是0。
5.
class Something {
final int i;
public void doSomething() {
System.out.println("i = " + i);
}
}
和上面一题只有一个地方不同,就是多了一个final。这难道就错了吗?
答案: 错。final int i是个final的instant variable (实例变量,或叫成员变量)。final的instant variable没有default value,必须在constructor (构造器)结束之前被赋予一个明确的值。可以修改为"final int i = 0;"。
判断题:
1、如果将一个对象强制类型转换为一个不兼容的类型,将引发NullPointerException异常。 (错)
2、Java中Object类是最顶层的类。(对)
3、 程序在编译通过以后,仍然可能出现运行时错误和逻辑错误。 (对)
4、在循环语句中,使用continue;语句可以跳出循环。 (错)
5、Java的接口方法必须声明成public
6、如果定义int[]nValues={1,2,3,4};那么nValues为整数类型.
7、Java可以在方法内定义内部类.
8、Protected修饰的类成员只能被其子类访问
9、通过在程序中引入“ import javax.swing.*; ”语句,就可以使用 javax.swing 包中的所有类(包括其嵌套的子包中的类)。 (错)
===== 要使用嵌套子包中的类,必须再次添加 import 子句
单项选择题
1.在下述字符串中,不属于Java语言关键字的是 ( )
A.float
B.new
C.java
D.return
2.在以下供选择的概念中,不属于面向对象语言概念的是 ( )
A.消息
B.模块
C.继承
D.多态性
3. 以下哪个为真(CD)
Interger a = new Interger(9);
Interger b = new Interger(9);
Long c = New Long(9)
-----
A. a==b
B. b==c
C. a.equals(b)
D. b.equals(new Interger(9))
4. 以下哪两个方法可以加到three中
class one{
public one foo(){return this;}
}
class two extends one{
public one foo(){return this;}
}
class three extends two{
//插入到这
}
---
A. public void foo(){}
B. public int foo(){return 1;}
C. public one foo(){return this;}
D. public two foo(){return this;}
E. public object foo(){return this;}
5.以下代码运行结果是(D)
try{
//此行会抛出NullPointedException
}
catch(NullPointedExecption e){
System.out.print("1")
}
catch(RuntimeExection e){
System.out.print("2")
}
finally{
System.out.print("3")
}
-
A. 1
B. 12
C. 123
D. 13
E. 23
6.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?B
ArrayList ar = new ArrayList();//也对
A ArrayList myList=new Object();
B List myList=new ArrayList();
C ArrayList myList=new List();
D List myList=new List();
7.paint()方法使用哪种类型的参数?A
A Graphics
B Graphics2D
C String
D Color
8.运行下列程序, 会产生什么结果 a
public class X extends Thread implements Runable{
public void run(){
System.out.println("this is run()");
}
public static void main(String args[])
{
Thread t=new Thread(new X());
t.start();
}
}
A 第一行会产生编译错误
B 第六行会产生编译错误
C 第六行会产生运行错误
D 程序会运行和启动
9.给出下面代码: c
public class Person{
static int arr[] = new int[10];
public static void main(String a[])
{
System.out.println(arr[1]);
}
}
那个语句是正确的?
A 编译时将产生错误;
B 编译时正确,运行时将产生错误;
C 输出零;
D 输出空
10.下列哪些语句关于内存回收的说明是正确的? bc
A 程序员必须创建一个线程来释放内存;
B 内存回收程序负责释放无用内存
C 内存回收程序允许程序员直接释放内存
D 内存回收程序可以在指定的时间释放内存对象
11.指出正确的表达式 ABD
A double a=1.0;
B Double a=new Double(1.0);
C byte a = 340; //-128~+127
D Byte a = 120;
12.指出下列哪个方法与方法public void add(int a){}为合理的重载方法。 BCD
A public int add(int a)
B public void add(long a)
C public void add(int a,int b)
D public void add(float a)
13.下列哪些情况可以终止当前线程的运行? AB
A 抛出一个例外时。
B 当该线程调用sleep()方法时。
C 当创建一个新线程时。
D 当一个优先级高的线程进入就绪状态时
http://blog.csdn.net/bitfan/article/details/6083926
http://blog.csdn.net/langzipiaobo99/article/details/7098972