码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-01-28 19:14:15      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

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中二进制整数和数字分隔符新特性

标签:

原文地址:http://www.cnblogs.com/pengchi/p/4256410.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!