【Java基础面试题】Java特点,八种基本数据类型

Java的特点

  • 1.面向对象
  • 2.跨平台
  • 3.简单易学
  • 4.内存管理

JVM、JDK、JRE的关系

  • JVM:Java虚拟机,它负责把字节码文件进行编译并运行,是Java具有跨平台性的关键所在。它还有内存管理,垃圾回收等功能。
  • JDK:JDK是Java开发工具包,它包含了JVM,编译器,调试器等开发工具,还包含一系列类库。它提供了Java程序编译,调试,运行所需要的工具和环境。
  • JRE:是java运行时的最小环境,它包含JVM和一组Java类库,用于支持java运行。

数据类型

八种基本数据类型:

整型 :byte,short,int,long
浮点型 :float,double
字符型 :char
布尔类型 :boolen

这八种基本类型都有对应的包装类分别为:Byte、Short、Integer、Long、Float、Double、Character、Boolean

基本类型和包装类型的区别

1.用途 :除了定义一些常量和局部变量之外,我们在其他地方比如方法参数、对象属性中很少会使用基本类型来定义变量。并且,包装类型可用于泛型,而基本类型不可以。

2.存储方式 :基本数据类型的局部变量存放在 Java 虚拟机栈中的局部变量表中,基本数据类型的成员变量(未被 static 修饰 )存放在 Java 虚拟机的堆中。包装类型属于对象类型,我们知道几乎所有对象实例都存在于堆中。

3.占用空间 :相比于包装类型(对象类型), 基本数据类型占用的空间往往非常小。默认值:成员变量包装类型不赋值就是 null ,而基本类型有默认值且不是 null。

4.比较方式:对于基本数据类型来说,比较的是值。对于包装数据类型来说,比较的是对象的内存地址。所有整型包装类对象之间值的比较,全部使用 equals() 方法。

装箱和拆箱

  • 装箱:把基本数据类型转化为对应的包装类
  • 拆箱:把包装类型转化为基本数据类型

Integer和int 的区别

  • 基本类型和引用类型:int为基本数据类型,它们是预定义的,不需要实例化就可以使用。而Integer是引用类型,需要实例化。也就是说使用int 来存储一个整数时没有额外的内存分配
  • 自动装箱和拆箱:Integer可以实现自动拆箱和装箱,当把Integer类型的值赋值给int类型时会自动进行拆箱,把int类型的值赋值给Integer类型时,会自动装箱
  • 空指针异常:int类型可以赋0,而Integer不可以赋空值