Java笔试面试题汇总(5)

2019-08-30 12:59

public class Z extends X { Y y = new Y(); Z() {

//super();

System.out.print(\); }

public static void main(String[] args) { new Z(); } }

结果: YXYZ

面试题:

package,import,class有没有顺序关系? 有。

package > import > class

Package:只能有一个 import:可以有多个

class:可以有多个,以后建议是一个

面试题:

局部内部类访问局部变量的注意事项?

A:局部内部类访问局部变量必须用final修饰 B:为什么呢?

局部变量是随着方法的调用而调用,随着调用完毕而消失。 而堆内存的内容并不会立即消失。所以,我们加final修饰。 加入final修饰后,这个变量就成了常量。既然是常量。你消失了。

我在内存中存储的是数据20,所以,我还是有数据在使用。

面试题:

要求请填空分别输出30,20,10。 注意:

1:内部类和外部类没有继承关系。 2:通过外部类名限定this对象 Outer.this

成员内部类的面试题(填空) 控制台输出:30,20,10 class Outer {

public int num = 10;

class Inner {

public int num = 20; public void show() { int num = 30;

System.out.println(num);

System.out.println(this.num);

System.out.println(Outer.this.num); } } }

class InnerClassTest {

public static void main(String[] args) {

Outer.Inner oi = new Outer().new Inner(); oi.show(); } }

//匿名内部类面试题: //按照要求,补齐代码

//要求在控制台输出”HelloWorld” /*

interface Inter { void show(); }

class Outer { //补齐代码 }

class OuterDemo {

public static void main(String[] args) { Outer.method().show(); } } */

//答案:

interface Inter { void show(); //public abstract }

class Outer { //补齐代码

public static Inter method() { //子类对象 -- 子类匿名对象

return new Inter() { public void show() {

System.out.println(\ } }; } }

class OuterDemo {

public static void main(String[] args) { Outer.method().show();

//1:Outer.method()可以看出method()应该是Outer中的一个静态方法。

//2:Outer.method().show()可以看出method()方法的返回值是一个对象。

// 又由于接口Inter中有一个show()方法,所以我认为method()方法的返回值类型是一个接口。 } }

字符串的面试题(看程序写结果)

==和equals()的区别?

A:==

基本类型:比较的是值是否相同 引用类型:比较的是地址值是否相同 B:equals()

只能比较引用类型。默认情况下,比较的是地址值是否相同。 但是,我们可以根据自己的需要重写该方法。

A:==和equals()

String s1 = new String(\ String s2 = new String(\

System.out.println(s1 == s2);// false System.out.println(s1.equals(s2));// true

String s3 = new String(\ String s4 = \

System.out.println(s3 == s4);// false System.out.println(s3.equals(s4));// true

String s5 = \ String s6 = \

System.out.println(s5 == s6);// true

System.out.println(s5.equals(s6));// true B:字符串的拼接 /*

* 字符串如果是变量相加,先开空间,再拼接。

* 字符串如果是常量相加,是先加,然后在常量池找,如果有就直 接返回,否则,就创建。 */

public class StringDemo {

public static void main(String[] args) { String s1 = \ String s2 = \

String s3 = \

System.out.println(s3 == s1 + s2);// false

System.out.println(s3.equals((s1 + s2)));// true

System.out.println(s3 == \这个我们错了,应该是true

System.out.println(s3.equals(\+ \true

// 通过反编译看源码,我们知道这里已经做好了处理。 // System.out.println(s3 == \

// System.out.println(s3.equals(\ }

}

面试题:

StringBuffer:同步的,数据安全,效率低。

StringBuilder:不同步的,数据不安全,效率高。

1:String,StringBuffer,StringBuilder的区别?

A:String是内容不可变的,而StringBuffer,StringBuilder都是内容可变的。 B:StringBuffer是同步的,数据安全,效率低;StringBuilder是不同步的,数据不安全,效率高

2:StringBuffer和数组的区别?

二者都可以看出是一个容器,装其他的数据。

但是呢,StringBuffer的数据最终是一个字符串数据。 而数组可以放置多种数据,但必须是同一种数据类型的。

3:形式参数问题

String作为参数传递

StringBuffer作为参数传递

形式参数:

基本类型:形式参数的改变不影响实际参数 引用类型:形式参数的改变直接影响实际参数

注意:

String作为参数传递,效果和基本类型作为参数传递是一样的。 面试题

-128到127之间的数据缓冲池问题

注意:Integer的数据直接赋值,如果在-128到127之间,会直接从缓冲池里获取数据

通过查看源码,我们就知道了,针对-128到127之间的数据,做了一个数据缓冲池,如果数据是该范围内的,每次并不创建新的空间

注意:

public class BigDecimalDemo {

public static void main(String[] args) { System.out.println(0.09 + 0.01); System.out.println(1.0 - 0.32); System.out.println(1.015 * 100); System.out.println(1.301 / 100);

System.out.println(1.0 - 0.12);

//0.09999999999999999 //0.6799999999999999 //101.49999999999999 //0.013009999999999999 //0.88 } }

面试题:数组有没有length()方法呢?字符串有没有length()方法呢?集合有没有length()方法呢?

List:(面试题List的子类特点) ArrayList:

底层数据结构是数组,查询快,增删慢。 线程不安全,效率高。 Vector:

底层数据结构是数组,查询快,增删慢。 线程安全,效率低。 LinkedList:

底层数据结构是链表,查询慢,增删快。


Java笔试面试题汇总(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:广东省关于〈幼儿园收费管理暂行办法〉的实施细则和《广东省关于

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: