day02 类型 类型转换 运算符

System.currentTimeMillis();会返回一个long类型的数据。此数据为从1970年1月1日0时0分0秒到系统当前时间之间的所有毫秒数。

浮点数类型:2种--小数类型

float:

     在内存中占4字节大小,32位二进制。范围:-3.403E38~3.403E38

double:

     在内存中占8字节大小,64位二进制。范围:-1.79E308~1.79E308

浮点类型字面量:默认类型为double,即64位的浮点数类型,如果想直接写32位的浮点数,需要在数值后添加f/F。

     比如:double num = 3.14;

                float num1 =  3.14f;

范围从大到小排序:

      double>float>long>int>short>byte

精度从大到小排序:(int,long,float,double)

      long>int>double>float

发现:浮点数类型在存储数据时,会有舍入误差,即不够精确。但是,double要比float更精确一些(相比float,要精度多一倍)

double:双精度浮点数类型

float:单精度浮点数类型

char:字符类型:在内存中占2字节大小,16位二进制。 

      赋值特点:

     (1)值中,有且只有一个字符。

     (2)字符必须用单引号引起来。

       另外特点:底层二进制是无符号的整数类型,即0~2^16-1----->0~65535。所以赋值时,也可以赋值整数。但是存入空间后,其实是其整数对应的字符。

java语言默认使用的字符集为unicode。

       unicode字符集;

            无论字母,还是汉字,都占两个字节大小。

       字符集:即二进制与字符的一一对应关系的表。

       编码:将字符---->二进制(写)

       解码:将二进制---->字符(读)

java语言常用字符:

       'A'~'Z'-->65~90

       'a'~'z'-->97~122

       '0'~'9'-->48~57

java语言中的转义字符:

      '\':将特殊字符变成相应意义的字符。

java语言中的特殊字符:

      单引号,双引号,制表符,换行符,回车符号

      '\''    单引号

      '\"'   双引号

      '\\'   反斜线

      '\t'   制表符

      '\r'   换行符   (有翻页效果,看不到上一页的数据)

      '\n'  回车符

需求:查看字符集中,某一字符对应的整数,将字符赋值给int类型的变量即可。

        int num = '钟';

        int num1 = '慧';

        char c1 = 65;

布尔类型:用来判断条件是否成立的。

        在内存中占1字节大小。只有两个值true/false,true表示条件成立,false表示条件不成立。

类型转换:

       1、自动转换(隐式转换)

            占内存小的类型变量赋值给占内存大的类型变量,会发生自动转换。

           eg: byte b = 5;     short b1 = b;//8位的b赋值给了16位的b1,在前面自动添8个0。

                 int c1 = -1;     long c2 = c1;//32位的-1赋值给了64位的c2,自动填了32个1。

                 long c3 = -1;//也为隐式转换

            自动转换依次排序:short 与char一定是强制转换

               byte-->short-->int-->long-->float-->double

                           char

       2、强制转换(显示转换)

             占内存大的类型变量赋值给占内存小的类型变量,需要强制转换。语法如下:(占内存小的变量类型名)变量;

             注意:可能出现精度损失。

            eg: int a = 1;byte a1 = (byte)a;

                  long b = -10;int b1 = (int)b;

             强制转换依次排序:char与short一定是强制转换

                double-->float-->long-->int-->short-->byte

                                                               char

引用类型之一:String:字符串类型

              赋值特点:

              1、必须使用双引号。

              2、引号内有0或0个以上的字符都可以。

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

                    在做运算时,+前后只要有一个是字符串类型就会做拼接操作。结果是字符串类型。

                eg: String m = "中国";  String m1 = "666";    String m2 = m+m1;//进行拼接,打印结果为:中国666

                eg:String n1 = "";//可以为空字符。  String n2 = "  ";//空格字符串也可以,可以为多个空格。

运算符:两原一封:

          两个原则:

              1、不同类型的数据做运算时,一定会先转换成较大范围类型后再运算。

              2、byte,short,char这些类型运算时,一定会先转成int类型在运算,结果为int类型。

          封:一定要注意封闭式运算。

算数运算符:+   -   *   /   %   ++   --

          /:

            情况1:参与的类型都是整型时,做取整运算,即商n余m,结果为n。

            情况2:只要有一个浮点数参与,就会做类似精确运算。

         %:取余运算符号,也叫取模运算符号,做除法运算时,商n余m,结果为m。

             情况1:参与运算都是整数时,余数是精确值。

             情况2:有浮点数参与时,余数不一定是精确值。

              注意:取余运算一般被用来判断某一个数能否被另外一个数整除。

           ++/--:都是自增自减运算符

               符号与变量一起使用。表示变量自动+1,或自动-1。如:++a/a++/--a/a--。++a/a++:是a=a+1的简写。--a/a--:是a=a-1的简写。

               情况1:即与变量在一起,不与其他任何符号连用时(单独使用)eg:++a  a--

               情况2:自增/自减运算与其他符号连用时需要考虑表达式的值。++a/a++/--a/a--整体看成表达式。

               口诀:符号在前,先运算再赋值;符号在后,先赋值再运算。

                    解析:符号在前时,变量先自增/自减,新值赋值给表达式;

                               符号在后时,先把变量的值赋值给表达式,然后变量再自增/自减。

                如:int w = 10;   int p = 5;

   表达式值:         10      12      5       3    12

    变量值:            10      12      4       3      

                       w = w++ + ++w + p-- + --p - w; 

            

            

              

        

      

      

   

猜你喜欢

转载自blog.csdn.net/betty_betty_betty/article/details/81103576
今日推荐