当前位置: 主页 > JAVA语言

java中负数默认类型为-Java基本数据类型和Java的使用方法有哪些呢?

发布时间:2023-06-13 16:15   浏览次数:次   作者:佚名

Java基本数据类型和注释Java是一种强类型语言,必须为每一个变量声明一种类型。在Java 中一共有8种基本数据类型,其中有4 种整型,2种浮点型,1种字符类型(用于表示Unicode编码的代码单元),1种用于表示真值的boolean 类型。强类型语言:要求变量的使用严格符合定义,必须先定义后使用。一个变量如果被指定为某个数据类型,如果没有进行强制类型转换,他就永远是该类型了。 整型整型用于表示没有小数部分的数值,允许是负数。Java 提供了四种整型:类型存储需求取值范围int (默认)4字节-2 147 483 648~2 147 483 647short2字节-32 768~32 767long8字节-9 223 372 036 854 775 808~9 223 372 036 854 775 807byte1-128~127 取值范围可以这样理解(以int举例):一个字节表示8位,因此4个字节有32位,一位可以表示2个字 符,32位可以表示个数字,正数,负数,0平均,然后正数是负数的绝对值减1即可。 在通常情况下,int类型最为常用,但是表示某些很大的数比如首富的钱数就要用长整型long。

byte, short适合于特定场合,比如底层文件的处理或者存储空间很宝贵的大数组。如果有的数特别大甚至超过 long的取值范围,我们也可以用科学计数法表示,但变量要声明为double ,如下表示 1 double num 2E+10 长整型数值后缀有一个l 或者L,定义时应该按照如下格式定义: 1 long num 1000L;//后边的L不能省略 但是在实际使用时,我们会发现有时候即便不加L或者l,编译时依然会通过,输出也正常,如下: 1 long num 1000;//对num打印输出的结果是1000; 上边已经指出,不声明时默认整型是int型,这里之所以没有报错是因为存在了自动类型转换,使int自动 转换为long型,但是出现以下这种情况使,编译器就会报错: 这是因为100 000 000 000 000 000已经超出了int类型的取值范围,因此就不会自动进行类型转换,从 下图可以看出,当在数值后边加上L表明这是长整型时,编译通过。 十六进制有一个前缀0X或者0x ,如(0xCAFE)表示的就是一个十六进制数。 八进制有一个前缀0 ,例如010对应8进制的8 ,但是这种表示很容易混淆,因此最好不要使用8进制常 数。

从Java 7.0 开始,加上前缀0B或者0b ,就可以写二进制数,例如0b1001就表示十进制数9。同样这个版本,可以位数字字面加下划线,如用1_000_000(或0B1111_0100_0010_0100_0000)表示100万,这些下划线只是为了让人易读,建议时会自动去除这些下划线。 浮点类型浮点数用于表示有小数部分的数值,在Java 种有两种浮点型:类型存储需求取值范围float4字节大约(有效位数6~7位) double (默认)8字节大约(有效位数15位) double表示这种类型数值的精度时float的两倍,也成为双精度。float类型的数值后有一个F或者f ,定义 格式如下: 1 float num 2.1f;//后边的f不可以省略 如果没有f的浮点数值总是默认是double型,与long不同的是,如果缺少f ,不论数值是否在float型的范 围内,都会报错,因为double类型不能自动向float型转化。 下面是用于表示溢出和出错情况的三个特殊浮点值: 正无穷大:一个正数除以0的值java中负数默认类型为,用常数Double.POISITIVE_INFINITY 表示。 负无穷大:一个负数除以0的值,用常数Double.NEGATIVE_INFINITY 表示。

NaN :计算0/0或者负数的平方根的结果,用常数 Double.NaN 注意: Double.表示对于类的调用,后续会指出这种调用方式。所有的“非数值的值”比如NaN,虽然看 上去一样,但是都是不同的,可以用 Double.isNaN方法判断是否是非数值的值。此外java中负数默认类型为,直接运行0/0之 类的运算会抛出ArithmeticException ,表示算术异常。浮点值不适用于无法接受舍入误差的金融计算。例如:1 System.out.println(2.0-1.1)//结果:0.8999999999999999输出结果并非是我们认知的0.9 ,这种误差主要来源于浮点数值来源于二进制系统表示,而二进制系统无法准确表示分数,如果计算要求不允许有任何误差,就应该使用BigDecimal类。 字符类型char类型原本用来表示单个字符,不过现在有的Unicode字符需要两个char值。 char类型字面量值要用单引号括起来。例如'A'是编码值为65的常量。与'A'不同的是,"A"表示的是一个 字符A的值。我们目前可以这样理解,字符代表了一个常量,可以进行数值计算,并且结果可以根据类 型可以转换为字符型或者整型,如下: 1 int i 'A '-1; //对i打印输出的结果是64,输出的为字符型 2 3 char i 'A '-1; //对i打印输出的结果是@,输出的为整型 char类型的值可以表示十六进制的值,范围从\u0000~\uFFFF ,其中\u表示后边跟的数是十六进制数。

下边给出常见的转义序列:转义序列名称Unicode值\b退格\u0008\t制表\u0009\n换行\u000a\r回车\u000d\"双引号\u0022\'单引号\u0027\\反斜杠\u005c 这些转义序列都可以用于加引号的字符或者字符串中,例如 "Hello,World\n" ,\u也可以用在字符串或 者字符之外,例如 public static void main(String\u005B\u005D args)也是正确的。其中 \u005B和\u005D分别是[ 和 ]的编码。 需要注意的是,Unicode转义序列会在代码解析前就进行处理。例如 System .out,println("\u0022+\u0022") 打印的结果是一个空串,因为\u0022表示一个" ,那么运 行时可以理解 ""+"" ,两个空串进行连接,结果还是空串。 boolean类型boolean类型有两个值:false (默认值)和true ,用来判定逻辑条件,与C++不同的是,整型值和布尔 值不能相互转化,数值不能代替布尔值。 注释在Java 语言中有3种标记注释的方式,并且注释不会出现在可执行程序中。

因此如果必要可以添加无限多 的注释,而不需要担心代码膨胀。 1. 最常用的注释方法是使用// ,其注释内容从//开始到该行末尾; 2. 当需要更长的注释,既可以在每行的注释前标记// ,也可以用/* 和 */这一对注释界定符将需要注释的地方括起来,跨行进行注释。 3. 这种注释可以用来自动地生成文档,这种注释从/**开始,到*/结束。