前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JAVA 第二天 基本数据类型

JAVA 第二天 基本数据类型

作者头像
拾点阳光
发布2018-05-11 11:37:42
6150
发布2018-05-11 11:37:42
举报
文章被收录于专栏:码云1024码云1024

在栈中可以直接分配内存的数据是基本数据类型。引用数据类型:数据的引用在栈中,但他的对象在堆中。

基本数据类型,小可转大,大转小会失去精度

第一类:逻辑型boolean

第二类:文本型char

第三类:整数型(byte、short、int、long) 第四类:浮点型(float、double)

整型有byte short int long char,分别用8、16、32、64、16bits表示。有些地方可能不会把char列入整型范畴,但本质上char类型是int的一个子集。

byte short int long都是有符号的,用2的补码(two‘s-complement)表示。而char用16位表示,它是无符号的,表示的是UTF-16编码集。

byte由1个字节8位表示,是最小的整数类型。主要用于节省内存空间关键。当操作来自网络、文件或者其他IO的数据流时,byte类型特别有用。取值范围为:[-128, 127].

short用16位表示,取值范围为:[- 2^15, 2^15 - 1]。short可能是最不常用的类型了。short类型参与运算的时候,一样被提升为int或者更高的类型。

Int 32 bits, [- 2^31, 2^31 - 1].有符号的二进制补码表示的整数。

Long 64 bits, [- 2^63, 2^63 - 1,默认值为0L].当需要计算非常大的数时,如果int不足以容纳大小,可以使用long类型。如果long也不够,可以使用BigInteger类。

Char 16 bits, [0, 65535], [0, 2^16 -1],从'\u0000'到'\uffff'。无符号,默认值为'\u0000'。Java使用Unicode字符集表示字符,Unicode是完全国 际化的字符集,可以表示全部人类语言中的字符。Unicode需要16位宽,所以Java中的char类型也使用16 bit表示。当char进行加减乘除运算的时候,也被转换成int类型,必须显式转化回来。

float使用32 bit表示,对应单精度浮点数,运行速度相比double更快,占内存更小,但是当数值非常大或者非常小的时候会变得不精确。精度要求不高的时候可以使用float类型

double64为表示,将浮点子面子赋给某个变量时,如果不显示在字面值后面加f或者F,则默认为double类型。java.lang.Math中的函数都采用double类型。如果double和float都无法达到想要的精度,可以使用BigDecimal类。

boolean类型只有两个值true和false,默认为false。boolean与是否为0没有任何关系,但是可以根据想要的逻辑进行转换。

自动转换 较大的类型(如int)要保存较小的类型(如byte),内存总是足够的,不需要强制转换。

强制类型转换 如果要把大的转成小的,或者在short与char之间进行转换,就必须强制转换,也被称作缩小转换(narrowing conversion),因为必须显式地使数值更小以适应目标类型。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-08-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • short用16位表示,取值范围为:[- 2^15, 2^15 - 1]。short可能是最不常用的类型了。short类型参与运算的时候,一样被提升为int或者更高的类型。
  • Int 32 bits, [- 2^31, 2^31 - 1].有符号的二进制补码表示的整数。
  • Long 64 bits, [- 2^63, 2^63 - 1,默认值为0L].当需要计算非常大的数时,如果int不足以容纳大小,可以使用long类型。如果long也不够,可以使用BigInteger类。
  • Char 16 bits, [0, 65535], [0, 2^16 -1],从'\u0000'到'\uffff'。无符号,默认值为'\u0000'。Java使用Unicode字符集表示字符,Unicode是完全国 际化的字符集,可以表示全部人类语言中的字符。Unicode需要16位宽,所以Java中的char类型也使用16 bit表示。当char进行加减乘除运算的时候,也被转换成int类型,必须显式转化回来。
  • float使用32 bit表示,对应单精度浮点数,运行速度相比double更快,占内存更小,但是当数值非常大或者非常小的时候会变得不精确。精度要求不高的时候可以使用float类型
  • double64为表示,将浮点子面子赋给某个变量时,如果不显示在字面值后面加f或者F,则默认为double类型。java.lang.Math中的函数都采用double类型。如果double和float都无法达到想要的精度,可以使用BigDecimal类。
  • boolean类型只有两个值true和false,默认为false。boolean与是否为0没有任何关系,但是可以根据想要的逻辑进行转换。
  • 自动转换 较大的类型(如int)要保存较小的类型(如byte),内存总是足够的,不需要强制转换。
  • 强制类型转换 如果要把大的转成小的,或者在short与char之间进行转换,就必须强制转换,也被称作缩小转换(narrowing conversion),因为必须显式地使数值更小以适应目标类型。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档