Java有八种基本数据类型,所谓基本类型就是说存储时仅存在栈中,那么与之相对就是引用类型,引用类型既存在栈里又存在堆里,栈内存放堆内地址。

八种基本类型分别为byte short int long float double bool char ,在《Head First Java》中有一句话,叫做:注意!熊不该抓毛毛狗,Be Careful!Bears Shouldn't  Ingest Large Furry Dogs。专门用于记忆这八种数据类型,每个单词首字母都对应一种类型。不过我觉得还是分类记忆比较好,一共可以分成四类:整型,浮点型,字符型,逻辑型。

整型按长度排序:byte(-128~127),short(-2^15~2^15-1),int(-2^31~2^31-1),long(-2^63~2^63-1)。

浮点型:float(3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方))

double(1.797693e+308~ 4.9000000e-324)

字符型:char

逻辑型:bool

通常像float数据如不声明的话都默认为double,因为double存储范围更大,精度更高,float数据一般要在数据后面接F,表示是float数据,二者转换为int时都是向下取整。

Java中的基本类型不是面向对象的,它们只是纯粹的数据,除了数值本身的信息之外,基本类型数据不带有其他信息或者可操作方法。这在实际使用中存在很多不足,为了解决这个不足,引入了包装器。分别是Boolean,Character,Double,Float,Long,Integer,Short,Byte八种,特别需要注意的是char的包装器为Character,int的包装器为Integer。

在现用版本中能够自动拆箱和装箱,就是说可以写Integer a=1;int b=a;都是成立的,在装箱过程中调用的为valueof(i)方法,当然还可以是用构造器,若是采用构造函数来初始化如Integer a=new Integer(1);此时会存入堆。如果不需要新的 Integer 实例,则通常应优先使用valueof方法,而不是构造方法 Integer(int),因为该方法有可能通过缓存经常请求的值而显著提高空间和时间性能。需要注意如下代码:

Double a=100.0;

Double b=100.0;if(a==b)

{

System.out.println("true");

}else{

System.out.println("false");

}

此时输出为false,这是因为Double类的valueOf方法会采用与Integer类的valueOf方法不同的实现。很简单:在某个范围内的整型数值的个数是有限的,而浮点数却不是。

java八种包装_Java的八种基本数据类型及其包装类相关推荐

  1. java random产生随机数_java的三种随机数生成方式,必掌握

    随机数的产生在一些代码中很常用,也是我们必须要掌握的.而java中产生随机数的方法主要有三种: 第一种:new Random() 第二种:Math.random() 第三种:currentTimeMi ...

  2. java源代码实例倒计时_Java倒计时三种实现方式代码实例

    写完js倒计时,突然想用java实现倒计时,写了三种实现方式 一:设置时长的倒计时: 二:设置时间戳的倒计时: 三:使用java.util.Timer类实现的时间戳倒计时 代码如下: package ...

  3. java开发怎么包装_Java开发知识之Java的包装类

    Java开发知识之Java的包装类 一丶什么是包装类 包装类的意思就是对基本数据类型封装成一个类.这些类都是Number的子类.区别就是封装数据类型不同.包含的方法基本相同. 具体可以查询JAVA A ...

  4. java八种语言_Java语言八种基本类型

    Java语言八种基本类型 (2009-12-21 13:37:45) 标签: 杂谈 Java语言是一种严格的"类型化"语言.这意味着每个变量都必须有一个声明好的类型.Java语言提 ...

  5. java单精度实型_Java的八种基本类型及其各种数据类型的相互转换

    一.八种基本类型 1.六种数字类型(四个整数型,两个浮点型) 字节型byte 8位-2^7到2^7短整型short 16位 整型int 32位 长整型long   64位 单精度float 32位   ...

  6. java排序算法代码_Java实现八种排序算法(代码详细解释)

    package八大排序算法;importjava.util.Arrays;importorg.junit.Test;/*** 1.插入排序 直接插入排序.希尔排序 折半插入排序 * 2.交换排序 冒泡 ...

  7. java 遍历list 性能_java list三种遍历方法性能比較

    从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便測试各种遍历方法的性能,測试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象 ...

  8. java 强弱软虚_Java的四种引用,强弱软虚,用到的场景

    众所周知,java中是JVM负责内存的分配和回收,这是它的优点(使用方便,程序不用再像使用c那样操心内存),但同时也是它的缺点(不够灵活).为了解决内存操作不灵活这个问题,可以采用软引用等方法. 在J ...

  9. java regex match 替换_java正则表达式四种常用的处理方式(匹配、分割、替代、获取)...

    java 正则表达式高级篇,介绍四种常用的处理方式:匹配.分割.替代.获取,具体内容如下 package test; import java.util.regex.Matcher; import ja ...

最新文章

  1. Spacebuilder在Mono上运行修改备忘
  2. Python遥感数据主成分分析
  3. Android 破解之道 (二)
  4. k8s operator开发脚手架kubebuilder 3.2.0安装脚本整理
  5. select_arg_from_python相关的测试程序
  6. Maven项目,项目上出现红叉,项目内没有报错,可以运行
  7. 使用MyEclipse简单调用WebServices
  8. 导出配置_Lua配置表导出优化
  9. python异常(高级) Exception
  10. 图像处理论坛_【活动】CSIG菁英青云论坛第三期活动预告!!
  11. Spring之代理模式实例
  12. 利用bwm-ng 实时监控系统
  13. linux下安装rabbitmq以及在spring中进行集成
  14. matlab基于瑞利信道,基于matlab的瑞利信道仿真.docx
  15. foobar2000的使用
  16. 个人免签支付系统源码插件资源汇总
  17. PLC 工程师必备知识 — IO模块选型和使用(下篇)
  18. 完全卸载oracle|oracle卸载|彻底卸载oracle
  19. windows服务器日志文件定期清理,运维编排场景系列-----定时清理Windows服务器日志...
  20. 电容,电阻,二极管,三极管

热门文章

  1. 使用计算机正确开机方法,电脑开关机的正确步骤
  2. 数据合并设计_Excel数据管理中的那些“坑”,你踩了几个?
  3. java数值加法null得到什么,fastjson 处理null值,对象为null时返回{},数字为null返回[]...
  4. vue 跨域:使用vue-cli 配置 proxyTable 实现跨域问题
  5. C和C++里面的lvalue 和 rvalue的释义
  6. 一个初级的前端工程师需要知道些什么?
  7. 1.1机器学习基础-python深度机器学习
  8. 如何把电压这个浮点值转字符串输出到串口
  9. wpf绑定之格式化日期
  10. ubuntu下安装优化调节软件——ubuntu tweakailurus