数据类型

变量:在内存中开辟的存储空间,用来存储数据。(重点)
    通过变量名称来操作存储空间。


        变量的命名个规则:
        1、名称由字母、数字,_和$任意组成,数字不能开头
        2、大小写敏感(区分大小写)
        3、可以使用汉字,但是不建议使用
        4、驼峰命名法(见名知意)
            myDogName ="旺财";
        5、不能使用关键字(Java保留字)
        变量的使用规则:
        1、必须先定义(声明,创建)和赋值(初始化)
        2、变量可以重复使用,即可以进行多次存取操作
            不需要强调类型,但是存储数据时,一定
            要与第一次声明时的类型匹配
        3、变量的作用域:变量有自己的使用范围,除了范围,变量失效
            即,从定义开始,到所在的大括号的结束符号为止
            出了作用域,想使用,需要重新定义和初始化
----------------------------------------------------------------------
Java语言数据的类型:共有两大类型:


    1:基本数据类型 8种:byte,short,int,long,float,double,char,boolean
    2:引用数据类型 无数种:除了8种基本数据类型外,其余的都是引用类型,可以自定义。
    基本数据类型:非常常用的几个类型:(原始数据类型)
        byte,short,int,long,float,double,char,boolean
        再次分类:
        整数类型 4种:byte,short,int,long
        浮点数类型 2种:float,double
        字符类型 一种:char
        布尔类型 一种:boolean 
    1、整数类型:byte,short,int,long
                                     二进制位数             范围                   幂            字节
        byte(字节类型):    8 位            -128~127           -2^7~2^7-1      1
        short(短整数类型):   16位        -32738~32737     -2^15~2^15-1    2
        int(整数类型):           32位             正负21亿        -2^31~2^31-1     4
        long(长整形):            64位          正负922亿亿     -2^63~2^63-1     8
byte:
    bit:位
    byte字节 = 8bit
    单位:
        byte--kb--mb--gb--tb--pb--eb

        一秒---128M  1TB需要两个多小时 1PB需要传输83天 

    8进制(用来计数):0~7
    16进制:字符0~9 a~f ,字母不区分大小写。
    127 的二进制:0111 1111
    2进制0b开头 ,8进制0开头 一个8对应二进制的三位:0177
    16进制0x开头,一个16对应二进制的4位。
   查看二进制: Integer.toBinaryString(-900) 输入十进制,查看二进制;

int类型加int类型时会出现封闭式运算

int类型的所有数值计算结果一定都是32位的
         011111111 111111111 111111111 111111111
    +   00000000 00000000 00000000 00000001
    ------------------------------------------
        10000000 00000000 00000000 00000000  --最小值

        封闭式运算:
        max+1=min
        min-1=max   

   

 浮点数类型:(小数类型)
    float:  32位
    double:  64位

     0 11101110 00011110000111100001111--float
  float(又叫单精度类型):最高位是符号位,紧接着8位是指数   2^127  有正负之分  
      后续的23位表示精度

   double(又叫双精度类型):最高位是符号位,紧接着11位是指数 
       后续52位表示精度。 
      指数位:为某一个小数的整数部分。
      float整数部分的最大值 2^127 = 3.403E38
             最小值 -3.403E38
      double整数部分的最大值 2^(2^10-1) =2^(1023)  =1.7E308
            最小值: -1.7E308
      练习:byte,short,int,long,float ,double
      按照范围大小排序:从小到大
      byte<short<int<long<float<double

     

    

        

    浮点数类型可以表示整数但是并不是很精确,只有个别的精确:

加入我们在二进制中给一个小数点      

     0000 .1-----0.5

+   0000.1----0.5

-----------------

      0001.0----1

所以二进制只能表示特定的精确值,1/2,1/4,1/8等

  需要注意的是,直接输入的类型有默认的类型,整数类型默认int类型,浮点数类型默认是double类型

       也叫字面量;如  int a =10;float b =10.0;//10与10.0都为字面量

       在给byte,和short类型的变量赋值时,直接写的整数值,只要没超出相应类型的范围,就不会出现编译错误(语法错误)

       如果想要输出的是long类型或者是float类型,那么,就需要在字面量后面加上l/L,f/F

       如:long a = 10L;或long a =10l;

              double b = 10.0f;或double b =10.0F;

字符类型:char(又叫无符号整数类型)
    在内存中占2字节大小,16位二进制
    赋值特点:
        1、值中,有且只有一个字符(空格可以,两个空格不行,代表两个字符)
        2、字符必须用单引号引起来
        另外特点:底层二进制是无符号的整数类型
        即 0~2^16-1---0~65535(汉字只有一部分,不是全部的汉字都包括)
        所以赋值时,可以赋值,也可以赋值整数。

        但是存入变量空间后 其实是其整数对应的字符。
  java语言默认使用的字符集为unicode。

            Unicode字符集:
            无论字母还是汉字,都占两个字节大小
            ‘A’--00000000 01000001
            ‘a’--00000000 01100001
            ‘0’--00000000 00110000
        什么是字符集:
            即二进制与字符的一一对应关系的表
            GBK ,GBK2312,UTF-8,
            ‘中’ ---00010110 01010101
            ‘中’ ---00010110 01010101 00010001
            写文件是采用Unicode输入’中‘
                00010110 01010101
            打开文件时:采用GBK
                00010110 01010101--好
            编码:将字符变成二进制
                       写
            解码:将二进制解析成字符
                       读
        Java语言常用的字符:
            A~Z---65-90
            a~z---97-122
            0~9---48~57
        java语言中的转义字符:
            '\':将特殊字符变成相应意义的字符。
        java语言的特殊字符:
            反斜线,单引号,       双引号,              制表符,换行符,回车符号
                '\\'            '\''       '\"'(也可以不加\)          '\t'         '\r'             '\n'
            换行符有翻页效果,看不到前一页的数

                          如:System.out.println("Hello \r World");

                                输出结果为"World",Hello相当于上一页,所以消失不见
        查看字符集中某一字符对应的整数
            将字符赋值给int类型的变量即可
            int num ='李';
            int num1 ='健';
            char c20 = 65;//也可以直接赋值整数,得到的是字符集中对应的字符
布尔类型:用来判断条件是否成立
    在内存中占一字节大小。
    只有两个值:true/false
    true:表示条件成立
    false:表示条件不成立
类型转换:(因为在赋值时,可能两个数的类型不同,所以需要类型转换)
    1、自动转换(隐式转换)
        占内存小的类型变量赋值给占内存大的类型变量
        会发生自动转换
        byte b = 5;
        short b1 =b;//8位的5赋值给16位的5,在前面自动添加8个0
        int c1= -1;
        long c2 = c1;//32位的-1赋值给了64位的c2里,自动填了32个1
        long c3 =-1;
        byte-->short-->int-->long-->double
               char(char与short强转)
    2、强制转换:
    占内存大的类型变量赋值给占内存小的类型变量,需要强制类型转换,
    语法如下:(占内存小的变量类型名)变量;
    注意:有可能出现精度损失,在编译过程中出现错误
    int a = 1;
    byte a1 = (byte)a;
    long b = -10;
    int b1 =(int)b;
    double-->float-->long-->int-->short-->byte
                      char
引用数据类型:无数种,除了现有的,我们还可以自定义类型
String:字符串类型

        1、值中,有0个或0个以上字符,(空格可以,两个空格也可以)
        2、字符必须用双引号引起来

        3.字符串可以做拼接操作,拼接后的数据仍是字符串类型。

        

String与char的赋值区别:

         1、值中,char必须有一个且只有一个字符,String可以没有,也可以有多个

         2、char类型用的是单引号,String用的是双引号

         3、char类型可以直接赋值给整数,对应字符集中相应的字符,               String不可以赋值整数,类型不匹配,String为引用数据类型,int为基本数据类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值