数据类型

强类型语言

  • 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用

弱类型语言

Java的数据类型分为两大类

  • 基本类型(primitive type)

    1、四种整数类型(byte、short、int、long)

    byte:8 位,用于表示最小数据单位,如文件中数据,-128~127

    short:16 位,-32768 ~ 32767

    int:32 位,-231-1~231 (21 亿)

    long:64 位

    2、两种浮点数类型(float、double)

    float:32 位,后缀 F 或 f

    double:64 位,最常用,后缀 D 或 d

    3、一种字符类型(char)

    char:16 位,是整数类型,用单引号括起来的 1 个字符(可以是一个中文字符)

    注意事项: 不能为 0个字符。

    转义字符:\n 换行 \r 回车 \t Tab 字符 " 双引号 \ 表示一个\ 两字符 char 中间用“+”连接,内部先把字符转成 int 类型,再进行加法运算,char 本质就是个数!二进制的,显示的时候,经过“处理”显示为字符。

    4、一种布尔类型(boolean)

    true 真 和 false 假

    5、类型转换

    char--> 自动转换:byte-->short-->int-->long-->float-->double

    强制转换:

    ①会损失精度,产生误差,小数点以后的数字全部舍弃。

    ②容易超过取值范围

  • 引用类型(reference type)

    接口
    数组

    例子:

    public class Demo03 {
        public static void main(String[] args) {
            //整数扩展:
            // 进制:  二进制0b   十进制   八进制0  十六进制0x
            int i=10;
            int i2=010;     //八进制
            int i3=0x10;    //十六进制      0-9  A-F 16
    
            System.out.println(i);
            System.out.println(i2);
            System.out.println(i3);
            System.out.println("=========================================");
    
            //浮点数拓展:
            //银行业务怎么表示?钱    BigDecimal 数学工具类
            //float     有限  离散  舍入误差  大约  接近但不等于
            //double
            //最好完全避免使用浮点数进行比较
            //最好完全避免使用浮点数进行比较
            //最好完全避免使用浮点数进行比较
    
            float f=0.1f;       //0.1
            double d=1.0/10;    //0.1
            System.out.println(f);
            System.out.println(d);
    
            System.out.println(f==d);   //false
    
            float d1=3123112312313123131f;
            float d2=d1+1;
    
            System.out.println(d1==d2); //true
            System.out.println("=========================================");
    
            //字符拓展
    
            char c1='a';
            char c2='中';
    
            System.out.println(c1);
            System.out.println((int)c1);    //强制转换
    
            System.out.println(c2);
            System.out.println((int)c2);    //强制转换
    
            //所有的字符本质还是数字
            //编码 Unicode 表(97=a 65=A) 2字节    65536=2的16次方  Excel 65536
    
            //U0000 UFFFF  \ u代表转译
    
            char c3='\u0061';   //这里61是十六进制=65,用\是表示后面是转移字符,用u是unicode的缩写,表示后面是一个unicode字符。其实只是写法问题。
    
            System.out.println(c3);
    
            //转义字符
            //\t    制表符
            //\n    换行
            //\a    响铃
            //\b    退格
            //\f    换页
            //\r    回车
            //\v    垂直制表
            //\0    空字符
            //\ddd  1到3位八进制数所代表的任意字符
            //\xhh  1到2位十六进制所代表的任意字符
    
            System.out.println("=========================================");
            String sa=new String("123");
            String sb=new String("123");
            System.out.println(sa==sb);     //false
    
            String sc="123";
            String sd="123";
            System.out.println(sc==sd);     //true
            //对象 从内存分析
    
            //布尔值扩展
            boolean flag=true;
            if(flag){}
            if(flag==true){}
            //Less is More!代码要简单易读
        }
    }
    
    
posted on 2021-01-28 21:13  任风吹干流过的泪和汗  阅读(85)  评论(0)    收藏  举报