博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java面试之SE基础基本数据类型
阅读量:6622 次
发布时间:2019-06-25

本文共 1458 字,大约阅读时间需要 4 分钟。

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

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

    首先,八种基本数据类型分别是: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。

    常用的方法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是否相等呢?他们又有什么不同 呢?

     如果用=作比较,则它们不相等,因为“=”比较的是基本数据类型的值是否相等或者比较对象是否为同一个对象;而变量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")也只创建了一个对象。

转载于:https://www.cnblogs.com/yw-ah/p/5827760.html

你可能感兴趣的文章
003-对象——对象的释放 抽象 封装 继承 多态
查看>>
Cookies 题解报告
查看>>
Java中关于WeakReference和WeakHashMap的理解
查看>>
SQL Lazy Spool Eager Spool
查看>>
type的解释
查看>>
python之路--类与类之间的关系
查看>>
Windows Phone 8 开发环境搭建
查看>>
cisco路由器的基本硬件组成
查看>>
python random模块的详细讲解
查看>>
常用LINUX软件,下载后解压出来ISO文件,直接挂载到LINUX使用即可
查看>>
那些年,阿里巴巴技术男神们写的书!
查看>>
Linux下压缩某个文件夹(文件夹打包)
查看>>
db file sequential read等待事件
查看>>
CISCO路由器上使用 TCP intercept 防止DOS攻击
查看>>
ActiveMQ接收消息+发送消息的简单实例
查看>>
linux 日志清理
查看>>
CentOS系统启动流程
查看>>
Emacs之ditaa与PlantUML与dot绘图环境配置
查看>>
Android UI学习 - Tab的学习和使用
查看>>
Windows Server入门系列之十七 ARP协议原理
查看>>