Java面试之SE基础基本数据类型

一、九种基本数据类型的大小以及它们的封装类面试

在咱们面试或者考试过程当中常常会考到八种基本数据类型以及它们的封装类,那么有哪八种基本数据类型呢?它们的封装类又是什么呢?对象

    首先,八种基本数据类型分别是:int、short、float、double、long、boolean、byte、char;它们的封装类分别是:Integer、Short、Float、Double、Long、Boolean、Byte、Character。继承

    由于对基本数据类型封装以后,封装类有能够有方法和属性,而后就能够利用这些方法和属性来处理数据,好比Ingeter对象中有parseInt(String s),能够把字符串转换为int类型等。咱们都知道有些类型的数据会有默认值,基本数据类型跟封装类型的默认值是不同的,好比int i  ,若是不赋值i默认为0;可是Integer j ,若是不赋值,则j 为null;由于封装类产生的是对象,而对象默认值为null。ip

    经常使用的方法int intValue()、static Integer valueOf(int i)、String toString()、static Integer parseInt(String s)。内存

     tip:String 类型不是基本数据类型,它其实是final修饰,因此也不能够继承。字符串

     String 类型的变量一般有两种赋值方式:一种直接赋值,例如String a = "hello world";另外一种是用构造方法,例如 String b = new String ("hello world");那么这里的a 和b是否相等呢?他们又有什么不一样 呢?get

     若是用=做比较,则它们不相等,由于“=”比较的是基本数据类型的值是否相等或者比较对象是否为同一个对象;而变量a和变量b指向的是两个不一样的对象,为何这么说呢?先来理解一下2个变量的赋值过程,对于表达式String a = "hello world",会先建立一个字符串对象“hello world”,而这个字符串其实是放在字符串缓冲区中,而后把a指向这个对象;而对于String b = new String("hello world");则会建立两个对象一个是“hello world”这个放在字符串缓冲区中的,另外一个是new 方法构造出来的对象new String() 这个对象,新对象中保存的是“hello world”对象罢了,这个对象是放在堆内存中,而b 指向这个new String ()对象,这显然是不一样的两个对象,因此他们用 “=”比较的结果为false。变量

    若是用equals()方法比较,这结果为true,由于equals()方法比较的是对象的内容,它们的内容都为“hello world”。数据类型

    另外值得提醒的是,字符串缓冲区中对相同的字符串只会存一次。假如咱们同时写了String a ="hello world";String b = new String("hello world");那么字符串缓冲区实际只有一个hello world 字符串,在给b赋值时,会先检查字符串缓冲区中是否有“hello world”这个字符串,若是有则不建立,直接new String(),而后赋值,所以这种状况下,表达式String  b= new String ("hello world")也只建立了一个对象。float

相关文章
相关标签/搜索