1.

int[] arr = new int[10]; System.out.println(arr);//地址值?

char[] arr1 = new char[10]; System.out.println(arr1); //地址值?

测试:

public class ArrayPrintTest {

public static void main(String[] args) {

int[] arr = new int[]{1,2,3};

System.out.println(arr);//地址值

char[] arr1 = new char[]{'a','b','c'};

System.out.println(arr1); //abc

}

}

原因:

2.

//面试题:多态是编译时行为还是运行时行为?

//证明如下:

class Animal  {

protected void eat() {

System.out.println("animal eat food");

}

}

class Cat  extends Animal  {

protected void eat() {

System.out.println("cat eat fish");

}

}

class Dog  extends Animal  {

public void eat() {

System.out.println("Dog eat bone");

}

}

class Sheep  extends Animal  {

public void eat() {

System.out.println("Sheep eat grass");

}

}

public class InterviewTest {

public static Animal  getInstance(int key) {

switch (key) {

case 0:

return new Cat ();

case 1:

return new Dog ();

default:

return new Sheep ();

}

}

public static void main(String[] args) {

int key = new Random().nextInt(3);

System.out.println(key);

Animal  animal = getInstance(key);

animal.eat();

}

}

3.

//考查多态的笔试题目:

public class InterviewTest1 {

public static void main(String[] args) {

Base1 base = new Sub1();

base.add(1, 2, 3);

Sub1 s = (Sub1)base;

s.add(1,2,3);

}

}

class Base1 {

public void add(int a, int... arr) {

System.out.println("base1");

}

}

class Sub1 extends Base1 {

public void add(int a, int[] arr) {

System.out.println("sub_1");             //容易混淆

}

public void add(int a, int b, int c) {

System.out.println("sub_2");

}

}

答案:

4.

/*

* 关于包装类使用的面试题

*

*

*/

public class InterviewTest {

@Test

public void test1() {

Object o1 = true ? new Integer(1) : new Double(2.0);       三元运算符 A 和 B 类型能统一成一个类型。这边就类型提升为double

System.out.println(o1);// 1.0

}

@Test

public void test2() {

Object o2;

if (true)

o2 = new Integer(1);

else

o2 = new Double(2.0);

System.out.println(o2);// 1

}

@Test

public void test3() {

Integer i = new Integer(1);

Integer j = new Integer(1);

System.out.println(i == j);//false    不是同一个对象

//Integer内部定义了IntegerCache结构,IntegerCache中定义了Integer[],

//保存了从-128~127范围的整数。如果我们使用自动装箱的方式,给Integer赋值的范围在

//-128~127范围内时,可以直接使用数组中的元素,不用再去new了。目的:提高效率

Integer m = 1;

Integer n = 1;

System.out.println(m == n);//true

Integer x = 128;//相当于new了一个Integer对象

Integer y = 128;//相当于new了一个Integer对象

System.out.println(x == y);//false

}

}

5.接口

class C extends B implements A {

System.out.println(x);  编译不通过。因为x是不明确的

System.out.println(super.x);   // 1    (调用父类B中的变量x,可以通过super.x调用)

System.out.println(A.x);   // 0     (调用A类的变量x,此时的A类的变量x是全局常量可以直接通过类.属性调用 )

}

面试易错题 Java的更多相关文章

  1. C/C++程序员面试易错题

    c部分::::::::::::::::::::::::::::::::::: . 关键字volatile有什么含意? 并给出三个不同的例 子. [参考答案]一个定义为volatile的变量是说这变量可 ...

  2. 【笔试题】Java 易错题精选

    笔试题 Java 易错题精选 1.写出下列程序的运行结果( )String 不变性Java 值传递 public class Test { public static void main(String ...

  3. Java五道输出易错题解析(避免小错误)

    收集了几个易错的或好玩的Java输出题,分享给大家,以后在编程学习中稍微注意下就OK了. 1. 看不见的空格? 下面的输出会正常吗? package basic; public class Integ ...

  4. Java五道输出易错题解析(进来挑战下)

    转自:http://blog.csdn.net/lanxuezaipiao/article/details/41985243 收集了几个易错的或好玩的Java输出题,分享给大家,以后在编程学习中稍微注 ...

  5. 杭电OJ2039——三角形(c++)(易错题:数据类型不确定)

    三角形 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  6. JAVA程序改错 (易错题)

    JAVA程序改错 1. abstract class Name { private String name; public abstract boolean isStupidName(String n ...

  7. java考试易错题大全

    常见的Java问题 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Ja ...

  8. java易错题----静态方法的调用

    class A{ public static String s="A.s"; } class B extends A{ public static String s="B ...

  9. Java易错题(1)

    检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果. public class HelloB extends HelloA { public HelloB() { } { Syst ...

随机推荐

  1. Power BI Desktop 安装环境

    Power BI Desktop 环境 最低要求 Windows 7/Windows Server 2008 R2 或更高版本 .NET 4.5 Internet Explorer 9 或更高版本 内 ...

  2. Swift 类的使用class

    /* 类属性的介绍 Swift中类的属性有多种 1.存储属性:存储示例的常量和变量 2.计算属性:通过某种方式计算出来的属性 3.类属性:与整个类自身相关的属性 存储属性 存储属性是最简单的属性,它作 ...

  3. JAVA中的sqlite

    1.SQLiteJDBC SQLite JDBC Driver 可以在这个网站下载https://bitbucket.org/xerial/sqlite-jdbc/overview,当前稳定版本sql ...

  4. 吴裕雄--天生自然C++语言学习笔记:C++ 运算符

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C++ 内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 算术运算符 下表显示 ...

  5. CF1209A Paint the Numbers

    You are given a sequence of integers a1,a2,…,an. You need to paint elements in colors, so that: If w ...

  6. bash 内嵌命令 printf 用于进制转换

    printf - 格式化并显示数据 printf "%d" 0x10 printf "%x" 16

  7. Tomcat JDK MySql 安装配置

    Tomcat 7绿色版指定jdk并注册服务  https://blog.csdn.net/weixin_43976019/article/details/89386171   例如:service.b ...

  8. cf 525D.Arthur and Walls

    判断2*2的正方形,是不是3个"."1个"*"然后暴力bfs就好.(这种处理也是挺神奇的2333%%题解) #include<bits/stdc++.h& ...

  9. recipe for target 'vmnet.ko' failed

    /tmp/modconfig-60OpuH/vmnet-only/bridge.c:639:4: error: invalid preprocessing directive #atomic_inc ...

  10. json解析精度问题

    由于后台传过来的值是float或者double类型,解析之后作为对象放到字典或数组里面,被转成nsstring或者nsnumber会有一定的误差,很正常 解决办法,通过NSNumberFormatte ...