2018Java面试题(Java基础部分)

1.Java中有哪些基本数据类型?String是基本数据类型吗?String类是否能够继承?

答:1.java定义了4中类8种基本类型:
            整型:byte、short、int、long
            浮点型:float、double
            布尔型: boolean
            字符型: char
        2.String不是基本数据类型,String属于引用类型。
        3.String类是一个final类,因此不能被继承。

2.简述++i和i++的区别?

答:

  int i=0;
  System.out.print("++i先自加1再赋值得到结果是=");
  System.out.println(++i);
  控制台打印:++i先自加1再赋值得到结果是=1
  ----------------------------------------
  int i=0;
  System.out.print("i++先赋值,然后再自加1得到结果=");
  System.out.println(i++);
  控制台打印:i++先赋值,然后再自加1得到结果=0
3.short s=1;s=s+1;有什么错?short s=1;s+=1;有什么错?

答:1.对于short s=1;s=s+1;由于short数据类型和int数据类型表示范围不一样,所以需要进行类型转换,解决方案是:要么将short改为int,要么强制类型转换(short)s+1。
      2.对于 short s=1;s+=1;由于+=是Java的规定运算符,Java编译器会对它进行特殊处理,因此可以正确编译。

4.Integer和int的区别?

答:参考博客 Integer是一个封装int类型的封装类,默认值为null,int是Java中8中数据类型之一,默认值为0.

5.&和&&的区别?

答:&表示逻辑运算符:必须计算左右两个表达式之后再取结果值。&&表示运算符先计算左边表达式如果为true,则不计算右边。如果左边表达式为false那么就需要计算右边表达式。

6.使用最有效的方式计算出2乘以4等于几?

答:使用位运算:2<<2

位运算符 功能 案例 说明
<< 左移 a< < b 将a各比特位向左移动b位
7.String s=new String(“xyz”)创建了几个对象?

答:创建2个String对象,一个是=null的s,一个是=“xyz”的string。

8. 静态变量和实例变量的区别?

答:1.在语法上的区别:静态变量前需要加static关键字,而实例变量不需要加。
       2.静态变量不是某一个实例对象的属性,它属于类属性,只要程序加载类的字节码,不需要创建任何实例对象静态变量就可以分配空间从而被使用。必须先创建实例对象,实例变量才会被分配空间,才能使用这个实例变量。
         3. 无论创建多少实例对象,永远只分配一个静态变量。创建一个实例对象静态变量会加1,但是每创建一个实例对象就会分配一个实例变量,每个实例变量的值只会自加1.

public class TestProblem {
    static int a=0;
    int b=0;
    public TestProblem() {
        a++;
        b++;
        System.out.println("静态变量数值:"+a);
        System.out.println("实例变量数值:"+b);
    }
    public static void main(String[] args) {

        TestProblem testProblem=new  TestProblem();
        System.out.println("------------");

        TestProblem testProblem1=new  TestProblem();

    }
}
控制台打印结果:
   静态变量数值:1
   实例变量数值:1
   ------------
   静态变量数值:2
   实例变量数值:1
9.switch语句能否作用在byte上,能否作用在long上,能否作用在String上?

答:1.switch常量表达式的值必须是整型(必须是int)或字符型。
       2.在.switch表达式中,括号表达式只能是一个整型表达式或枚举常量整数表达式可以是int基本数据类型会Integer包装类型。由于byte、short、char都可以隐式转换为int,所以这些基本数据类型及其包装类型都可以。
        3.long和String无法隐式转换为int类型所以不能在switch中使用。

猜你喜欢

转载自blog.csdn.net/weixin_36279318/article/details/80555752