首页 > 代码库 > Java零基础系列002——命名、变量类型、类型转换、JDK中二进制整数和数字分隔符新特性

Java零基础系列002——命名、变量类型、类型转换、JDK中二进制整数和数字分隔符新特性

public class BasicDataType {        public static void main(String[] args) {        /*         * 标示符:用于给变量、方法、类命名,必须以字母、下划线、$符号开头。以字母、下划线、数字、$符号组合,且不能为关键字         *          *          * */        System.out.println("--------------标示符------------");        int $,_,a;//正确的命名        int 彭驰=12;//由于Java内部采用Unicode编码方式,所以可以用汉字命名        System.out.println("以彭驰命名的变量的值"+彭驰);                /*         * java的数据类型,Java是强类型语言,所以变量必须声明类型。         *                 *数值型(byte、short、int、long--------------float、double)         *         *        *         *         *基本数据类型         * 数据类型*        *字符型(char)         *         *        *         *         *        *数组         *         *引用数据类型         *         *        *类         *         *        *接口         *          *         *          */        System.out.println("-------------数值类型------------------");        //数值型,java内部常量整型数值的默认类型是int型        byte by = 100;//byte占1字节,表数范围是-128~127(-2^8~2^8-1)        short sh = 30000;//short占2个字节,表数范围是-2^16~2^16-1(大约3万)        int in = 300000;//int占4个字节,表数范围是-2^32~2^32-1(大约21亿)        long lo = 30000000L;////long占8个字节,表数范围是-2^64~2^64-1(大约很多很多),数字后面加L(l)说明该数值是long型        System.out.println("by:"+by+" "+"sh:"+sh+"in:"+in+" "+"lo:"+lo);        //浮点数,java内部小数常量的默认类型是double型        float fl = 3.14f;//float占4字节,表数范围是-3403e38~3403e38(e38=10^38),float型常量后面加f,不然系统会认为它是double型,而报语法错误        double dou = 3.14;//double占8个字节,表示范围在-1798e308-1798e308        System.out.println("fl:"+fl+" "+"dou:"+dou);        //浮点数都会有误差,所以少用它们当比较判断,如下面        System.out.println("3.14*100==314%100的输出:"+(3.14*100==314%100));//输出结果为false,因为浮点型数值存在误差,比如1.0的真实值只有0.999999999999999.                //char字符型,占两字节,用‘’号。        char ch = ‘a‘;        //常见转义符:\b-退格,\n-换行、\r-回车、\t-tab、\"-双引号、\‘-单引号、\\-反斜杠,                //boolean类型        boolean bool = true; //boolean占1位。是1位不是1字节,其值不是true就是false                /*         * 自动转换         *         一般容量小的类型可以自动转换成容量大的类型         *          *          */        sh=by;//byte转换成short,无需强转        in=sh;in=by;in=ch;//byte、short、char转换成int,无需强转        lo=in;lo=sh;lo=by;//int、short、byte转换成long,无需强转        fl=in;fl=lo;//int、long转换成float,无需强转,但会有精度损失        dou=fl;dou=in;dou=lo;//float、int、long转换成double,int、long转时会有精度缺失                /*         * 强制类型转换         */        ch=(char)in;//强制类型转换在前面加括号和强转类型                /*         * 类型提升         */        float lo1 = 4.0f+in;//4.0f+in后类型会自动提升为float                        /*         * JDK7新特性----二进制和数值分隔符         *          */        System.out.println("JDK7新特性----二进制和数值分隔符");        int in1 = 0b00000000000000000000000000000010;//JDK7以0b开头后面可以直接写二进制的编码        int in2 = 1_000_000;//JDK7下可以用下划线对数值进行分割,方面查看        System.out.println("二进制00000000000000000000000000000010的值:"+in1);        System.out.println("1_000_000的值:"+in2);                            }}

运行结果:

技术分享

Java零基础系列002——命名、变量类型、类型转换、JDK中二进制整数和数字分隔符新特性