首页 java 彻底理解 byte char short int float long double

java 彻底理解 byte char short int float long double

举报
开通vip

java 彻底理解 byte char short int float long doublejava 彻底理解byte char short int float long double char,short,int和long类型分别有多长 其长度分别为一字节,至少两字节,至少两字节和至少4字节。除此之外,不要再依赖任何约定。 char类型的长度被定义为一个8位字节,这很简单。 short类型的长度至少为两字节。在有些计算机上,对于有些编译程序,short类型的长度可能为4字节,或者更长。 int类型是一个整数的“自然”大小,其长度至少为两字节,并且至少要和short类型一样长。在16位计算机上...

java 彻底理解 byte char short int float long double
java 彻底理解byte char short int float long double char,short,int和long类型分别有多长 其长度分别为一字节,至少两字节,至少两字节和至少4字节。除此之外,不要再依赖任何约定。 char类型的长度被定义为一个8位字节,这很简单。 short类型的长度至少为两字节。在有些计算机上,对于有些编译程序,short类型的长度可能为4字节,或者更长。 int类型是一个整数的“自然”大小,其长度至少为两字节,并且至少要和short类型一样长。在16位计算机上,int类型的长度可能为两字节;在32位计算机上,可能为4字节;当64位计算机流行起来后,int类型的长度可能会达到8字节。这里说的都是“可能”,例如,早期的Motorala 68000是一种16/32位的混合型计算机,依赖于不同的命令行选项,一个68000编译程序能产生两字节长或4字节长的int类型。 long类型至少和int类型一样长(因此,它也至少和short类型一样长)。long类型的长度至少为4字节。32位计算机上的编译程序可能会使short,int和long类型的长度都为4字节—也可能不会。 如果你需要一个4字节长的整型变量,你不要想当然地以为int或long类型能满足要求,而要用typedef把一种固有的类型(一种确实存在的类型)定义为你所需要的类型,并在它的前后加上相应的#ifdef指令: #ifdef FOUR_BYTE_LONG typedef long int4; #endif Type Size char, unsigned char, signed char 1 byte short, unsigned short 2 bytes int, unsigned int 4 bytes long, unsigned long 4 bytes float 4 bytes double 8 bytes long double1 8 bytes 1.整型:byte 1个字节,short 2个字节,int 4个字节,long 8个字节 其中使用long类型的时候数值后面加个后缀l或L,默认下为int类型。 八进制有一个前缀0,十六进制有个前缀0x。 2.浮点型:float 4个字节,double 8个字节。 a. 使用float类型的时候有个后缀f或F,否则默认为double类型(也可以有后缀d或D)。 b.三个特殊的浮点数值:正无穷大,负无穷大,NaN,三者用于表示溢出和出错。 eg:一个正整数除以0结果我正无穷大,0/0或者负数的平方根结果为NaN。 c.检测一个特定值是否为Double.NaN: if(Double.isNaN(x)) d.浮点数的计算无法精确,我们可以使用大数字BigDecimal来进行浮点数运算 3.字符类型:char 2个字节 4.布尔类型:boolean 有两个值true false 不是关键字 5.数值类型之间的转换:byte—>short—>int—>long char—>int int—>double float—>double 一、从根本上认识java.lang.String类和String池 首先,我建议先看看String类的源码实现,这是从本质上认识String类的根本出发点。从中可以看到: 1、String类是final的,不可被继承。public final class String。 2、String类是的本质是字符数组char[], 并且其值不可改变。private final char value[]; 然后打开String类的API文档,可以发现: 3、String类对象有个特殊的创建的方式,就是直接指定比如String x = "abc", "abc"就表示一个字符串对象。而x是"abc"对象的地址,也叫做"abc"对象的引用。 4、String对象可以通过“+”串联。串联后会生成新的字符串。也可以通过concat()来串联,这个后面会讲述。 5、创建字符串的方式很多,归纳起来有三类: 其一,使用new关键字创建字符串,比如String s1 = new String("abc");其二,直接指定。比如String s2 = "abc"; 其三,使用串联生成新的字符串。比如String s3 = "ab" + "c"; 6、Java运行时会维护一个String Pool(String池),JavaDoc翻译很模糊“字符串缓冲区”。String池用来存放运行时中产生的各种字符串,并且池中的字符串的内容不重复。而一般对象不存在这个缓冲池,并且创建的对象仅仅存在于方法的堆栈区。下面是个系统内存示意图: 二、String对象的创建 String对象的创建也很讲究,关键是要明白其原理。 原理1:当使用任何方式来创建一个字符串对象s时,Java运行时(运行中JVM)会拿着这个X在String池中找是否存在内容相同的字符串对象,如果不存在,则在池中创建一个字符串s,否则,不在池中添加。 原理2:Java中,只要使用new关键字来创建对象,则一定会(在堆区或栈区)创建一个新的对象。 原理3:使用直接指定或者使用纯字符串串联来创建String对象,则仅仅会检查维护String池中的字符串,池中没有就在池中创建一个,有则罢了!但绝不会在堆栈区再去创建该String对象。 原理4:使用包含变量的表达式来创建String对象,则不仅会检查维护String 池,而且还会在堆栈区创建一个String对象。 另外,String的intern()方法是一个本地方法,定义为public native String intern(); intern()方法的价值在于让开发者能将注意力集中到String池上。当调用intern 方法时,如果池已经包含一个等于此String 对象的字符串(该对象由equals(Object) 方法确定),则返回池中的字符串。否则,将此String 对象添加到池中,并且返回此String 对象的引用。 最后,有几点问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 请大家注意:String a; 与String a=null在作为类变量时候是等价的,在局部变量则不同。null表示一个空引用,String a=null意思是在栈中声明了a,但是这个a没有指向任何地址。此时我们注意到String a 在栈中声明了a,但是也没有指向任何地址,但是java的语法检查如果在局部变量中, String a;是不能直接使用的,String a=null中的这个a可以直接使用。
本文档为【java 彻底理解 byte char short int float long double】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_633423
暂无简介~
格式:doc
大小:17KB
软件:Word
页数:0
分类:互联网
上传时间:2019-08-20
浏览量:21