J2EE面试题大全

2023-06-29   


1、面向对象编程的三个基本特性是什么?
   答:封装、继承和多态。
   2、Java语言中有哪些基本数据类型,String是不是基本数据类型?
   答:有八种基本数据类型(有的资料也称为原始数据类型),分别是byte short int long float double boolean char。String不是基本数据类型,是引用数据类型。
   3、String类是否可以被继承?
   答:String 类是final类,不可以被继承。
   4、谈一谈final关键字的作用?
   答:final class 表示此类不允许有子类。
   final virable 表示一个常量。
   final method 表示一个方法不能被重写。
   5、如何获得静态数组的长度?如何获得字符串的长度?
   答:使用数组变量的length属性。使用字符串变量的length()方法。
   6、如何防止一个类被其它类继承?
   答:定义一个类时将该类声明为final class。
   或者将此类的所有构造方位声明为private。
   7、一个类的构造方法是否可以被重载(overloading),是否可以被子类重写(overriding)?
   答:构造方法可以被重载,但是构造方法不能被重写,子类也不能继承到父类的构造方法。
   8、接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类(非抽象类)?一个类是否可以继承多个类?
   答:接口可以继承接口,但是只能继承一个。
   抽象类可以实现接口。
   抽象类可以继承实体类。
   一个类不可以继承多个类,Java只允许单一继承,可以实现多个接口。
   9、short s1 = 1;s1 = s1 + 1;是否有错?short s1 = 1;s1 += 1;是否有错?
   答:short s1 = 1;s1 = s1 + 1;有错误,s1 + 1 是int类型,不能赋值给short类型。short s1 = 1;s1 += 1;正确。
   10、String、StringBuffer、StringBuilder有什么区别?
   答:String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都是String类的对象。字符串是常量;它们的值在创建之后不能改变。所以可以共享它们。StringBuffer是字符串缓存区,它的内容可以被修 改,长度也可以改变,StringBuffer类是线程安全的,也就是说多个线程可以安全的访问StringBuffer对象。StringBuilder与StringBuffer类似,都是字符串缓冲区,但StringBuilder不是线程安全的,如果你只是在单线程中使用字符串缓冲区,那么StringBuilder的效率会更高些。值得注意的是StringBuilder是在JDK1.5版本中增加的。以前版本的JDK不能使用该类。
   11、一个Java源文件中是否可以定义多个类?接口和类是否可以定义在一个源文件中?
   答:一个源文件中可以定义多个类,但只能有一个类是public。接口和类也可以定义在一个源文件中,同样也只能有一个是public。
   12、介绍什么是JDK?什么是JRE?
   答:有关JDK的介绍,点此链接参见Java EE常见面试题第1题。
   JRE是Java的运行环境,不包含编译、调试环境。如果你只是运行一个Java程序,那么安装JRE就够用了。
   13、解释一下int和Integer有什么区别?
   答:int 是原始数据类型,而Integer是引用数据类型,是int的包装类。Java中的八种原始数据类型都有对应的包装类,boolean-- Boolean char--Character byte--Byte short--Short long--Long float--Float double--Double。int和Integer是可以相互转换的如:
   int a = 1; Integer in = new Integer(a);
   Integer in = new Integer(10); int i = in.intValue();
   JDK5.0支持自动包装和自动解包,以下代码与以上完成相同的功能:
   int a = 1; Integer b = a;
   Integer c= new Integer(10); int d = c;
   14、解释一下&和&&的区别?
   答:&和&&都可以作为逻辑运算符,但还是有区别的,&&是短路与。单独运行以下两行代码:
   System.out.println(false & (1/0 == 0)); 抛出异常
   System.out.println(false && (1/0 == 0)); 打印出false
   &作为逻辑运算符时,即使第一个操作符是false,那么它仍然会计算第二个操作符。&&短路与,如果第一个操作符为false,那么它不会再去计算第二个操作符。另外&还是一个按位与运算符,请看以下代码:
   System.out.println(5 & 4); 打印出4,结果怎样计算呢?将它们转换成二进制数据,一目了然。
   00000101 & 00000100 = 00000100
   15、Math.round(11.5)等于多少? Math.round(-11.5)等于多少? Math.round(-11.7)等于多少? Math.round(11.3)等于多少?
   答:Math.round(11.3) 等于 11
   Math.round(11.5) 等于 12
   Math.round(-11.5) 等于 -11
   Math.round(-11.7) 等于 -12
   速记:距离11.3最近的整数,是11。距离11.5最近的整数,有两个11和12,取大。距离-11.7最近的整数,是-12(别告诉我是-11)。距离-11.5最近的整数,有两个-11和-12,取大-11(也别和我说-12比-11大)。
   16、switch能否作用在byte上,能否作用在long上,能否作用在String上?
   答:能作用在byte上,不能作用在long或String上。
   17、用最有效率的方法算出2乘以8等於几?
   答:用位运算,2


相关内容:

  1. J2EE模式面试题
  2. J2EE面试题
  3. 国外的一些J2EE面试题一
  4. PHP面试题大全
  5. EJB面试题
  6. 创立科技Java面试题