Java语法学习1

//Type.java 学习类型系统:基本,引用
class Type {
    //主方法【函数】
    public static void main(String[] args) {
        //Java变量命名和C有区别的一点就是首字母可以为美元符号
        byte b,b1;
        b = 100;
        b1 = (byte)128;
        System.out.println(b);
        System.out.print(b1);
    }
}


一:

byte存储的取值范围是-128-127,注意整数是从0开始的,1个字节8位,所以2^8-1是最大存储极限。

但是如果超出了这个范围,在b1中存储的会是什么呢,在命令框用javac Type.java 编译很定会出错,但是b1 = (byte)128,加上括号说明类型后编译(用tuf8编码方式)后显示打印的是-127,这里说明一下超出的就按照走循环路线显示比如byte类型就是0,1,2,3......126,127,-128,-127.....-2,-1,0,1,2,3.............。

javac -encoding utf8 Type.java

编译后生成Type.class

再输入java Type (默认Type后缀有class)

二:

100 十进制

010 八进制

0xffff 十六进制

0b1111 二进制

123L long长整形

3.1234567F 单精度float型,显示小数点最多7位,不加F是默认双精度double类型

double最多显示小数点9位,对于金融行业的开发一般用double和float一般精度问题都很糟糕(涛哥说的..)


三:

在类型运算上,好像和C/C++差不多,不同类型之间的运算遵循类型自动提升规则,即自动转向存储字节大的类型。

System.out.println(2.0-1.9),结果打印是0.100000009,因为10进制的小数点转计算机存储2进制比如1/10,不断乘2,进位取进位数,继续乘,直到结果为0.但是1/10转成计算机存储的二进制会一直循环下去,就得到不确定的数值,所以一般金融行业不用Java的浮点数,用Java的大整数类。


原文地址:https://www.cnblogs.com/mingrigongchang/p/6246189.html