**

每天10道面试题

**
第一天java基础

1: JDK 和 JRE 有什么区别?

JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。
JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。
具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很多 java 
程序调试和分析的工具。简单来说:如果你需要运行 java 程序,只需安装 JRE 就可以了,
如果你需要编写 java 程序;需要安装 JDK。

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

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

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

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

4:静态变量和实例变量的区别?

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

5:switch语句能否作用在byte上,能否作用在long上,能否作用在String上?

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

6:简述Java中实现多态的机制是什么?

重载(overloading)、重写(overriding)
   1.重载(overloading):是一个类中多态的表现,比如一个类中定义多个同名的方法,但它们具有不同的参数或不同参数类型都称之为重载。
   2.重写(overriding):子类定义一个方法和父类的方法名称参数都相同,那么父类的方法被重写。

7:简述Java反射机制及其作用?

Reflection:是Java被视为一种动态语言的一个关键性质,这个机制允许程序在运行时通过Reflection API获取任意一个已知名称Class的内部信息。并可在运行时改变字段内容,唤起methods。

8:简述java中super()和this()、super和this的区别?

1、super()和this()区别
			super():调用父类无形参的构造方法;
			super(形参):调用父类中某个带形参的构造方法;
			this(形参):调用本类中另一种形式的构造方
	2、super和this的区别
	
			super.父类的成员变量;
			super.父类的方法;
			super:当子类中的成员变量、方法和父类的相同时,实现调用父类的成员变量和方法;
			this:代表当前的对象;
			使用的地方:若函数的形参和成员变量同名时,需要用this.成员变量名

9:Integer和int的区别?

Integer是一个封装int类型的封装类,默认值为null,int是Java中8中数据类型之一,默认值为0

10:简述++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