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

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

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")也只创建了一个对象。

java string封装类_java中八种基本数据类型以及它们的封装类,String类型的一些理解...相关推荐

  1. java默认值_Java中八种基本数据类型的默认值

    通过一段代码来测试一下 8种基本数据类型的默认值 package dierge; public class Ceshi { int a; double b; boolean c; char d; fl ...

  2. Java中八种基本数据类型的大小,以及他们的封装类

    Java中八种基本数据类型的大小,以及他们的封装类 1.int是基本数据类型,Integer是int的封装类,是引用类型. int默认值是0,而Integer默认值是null, 所以Integer能区 ...

  3. Java中八种基本数据类型占用字节空间总结

    一.Java四大数据类型分类 1.整型 byte .short .int .long 2.浮点型 float . double 3.字符型 char 4.布尔型 boolean 二.八种基本数据类型 ...

  4. java八种包装_Java的八种基本数据类型及其包装类

    Java有八种基本数据类型,所谓基本类型就是说存储时仅存在栈中,那么与之相对就是引用类型,引用类型既存在栈里又存在堆里,栈内存放堆内地址. 八种基本类型分别为byte short int long f ...

  5. Java常用类之【八种基本数据类型】

    一.装箱和拆箱 装箱:将基本数据类型包装为对应的包装类对象 拆箱:将包装类对象转换成对应的基本数据类型 JDK5.0中为基本数据类型提供了自动装箱(boxing).拆箱(unboxing)功能 二.八 ...

  6. JAVA中方法的类型转换_Java中几种常用数据类型之间转换的方法

    Java中几种常用的数据类型之间转换方法: 1. short-->int 转换 exp: short shortvar=0; int intvar=0; shortvar= (short) in ...

  7. java乘法表_Java中四种9*9乘法表的实现方式(附代码)

    前言: 初学java,实现99乘法表是必学必会的内容. 需求 : 分别写出上下左右,对应四个角的乘法表. 思路: 可以先打印出*星星,形成一个直角三角形,然后再替换成乘法公式. 代码如下: publi ...

  8. java B锁_Java中15种锁的介绍

    原标题:Java中15种锁的介绍 在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类.介绍的内容如下: 1.公平锁 / 非公平锁 2.可重入锁 / 不可重入锁 3.独享 ...

  9. java+map申明_Java中两种HashMap申明方式区别?

    Map是HashMap的父类,第一种声明方式是:父类的引用指向子类的对象,是多态的一种表现形式:第二种是:使用本身引用.举个例子: 第一种声明方式是实现了多态,多态后就可以写出一段所有子类都通用的代码 ...

最新文章

  1. 微信公众号开发本地环境开发_如何在5分钟内使HTTPS在本地开发环境上工作
  2. Linux控制删除深度!除find ./ -maxdepth 1 -name *.c | xargs rm -rf
  3. arc下内存泄漏的解决小技巧
  4. 微服务网关Gateway-PrefixPath讲解
  5. 前端学习(2565):watch监听
  6. 常用数据结构的一部分类
  7. 处理Excel,填充空白区域
  8. 计算机网络 --- 网络层IP数据报
  9. MySQL引擎详解(二)——MyISAM引擎特性
  10. 超市收银系统-Java Swing版
  11. 浅析贴片电感的作用及使用原理
  12. 滴滴校招 餐馆最大收益问题
  13. 【Python脚本】得王者金币,王者大佬快来带我飞
  14. OSAL初始化流程分析
  15. 极简 ssh之 scp
  16. 半导体中的电子状态与能带
  17. 持续集成(第二版)(转)
  18. 勾股定理(计算)C++
  19. Python爬虫之Scrapy框架爬虫实战
  20. FLIR E95红外热像仪,带你走进建筑诊断解决方案

热门文章

  1. centos nfs java_CentOS下安装配置NFS并通过Java进行文件上传下载
  2. mysql 函数多个连接_MySQL数据库中如何连接两个或多个字符串呢?
  3. 操作系统角度谈测试管理和自动化测试
  4. android p版本 字符串常量池,Android OOM 问题
  5. php函数文件,PHP文件函数大全
  6. java forname 原理_Java Class.forName()用法和newInstance()方法原理解析
  7. CentOS 安装宋体字体
  8. 批量关闭公众号推送_啥?微信又出新功能了?或将提醒用户关闭长期未读公众号推送...
  9. python算闰年和平年的天数_Python自定义函数计算给定日期是该年第几天的方法示例...
  10. 系统通知并发问题_玩转Java高并发?请先说明下并发下的惊群效应