数据类型、运算符、数组、Arrays类

寵の児 提交于 2020-02-02 00:55:21

数据类型:

  • 数据类型分为基本数据类型和引用数据类型
  • 基本数据类型:

         ①逻辑类型:boolean(1个字节)

         ②整数类型:byte(1个字节,- 2^7 ~ 2^7 - 1)、short(2个字节,- 2^15 ~ 2^15 - 1)、int(4个字节,- 2^31 ~ 2^31 - 1)、long(8个字节,- 2^63 ~ 2^63 - 1)

         ③字符类型:char(2个字节,0 ~ 2^16 - 1)
         【char不一定是2个字节,和我们选用的字符编码有关】
            (1)"ISO-8859-1"编码:一个中文字符或英文字符都只有1个字节。
            (2)"UTF-8"、"GB2312"、"GBK"编码:一个英文字符都是只有1个字节。一个中文字符,"UTF-8"是3个字节,而"GBK"和"GB2312"是2个字节。
            (3)"unicode"编码:一个中文字符或英文字符都是2个字节。

         ④浮点类型:float(4个字节,8位有效数字)、double(8个字节,16位有效数字)

  • long型变量要后缀l或L,float型变量要后缀f或F,double型变量后缀d或D可省略。
  • 不可定义无符号的整数类型(unsigned int m)。
  • 基本数据类型的包装类:
java.lang.*
包装类 创建对象 对象调用返回类型数据
Byte类 Byte(byte num) byteValue()
Short类 Short(short num) shortValue()
Integer类 Integer(int num) intValue()
Long类 Long(long num) longValue()
Float类 Float(float num) floatValue()
Double类 Double(double num) doubleValue()
Character类 Character(char num) charValue()

 

  • 字符常量单引号、双引号、反斜线前要加转义字符常量"\"。
  • 数据类型之间的转换:【这里以int和Integer对象为例,其他整数类型和浮点类型一样】

            (1)int→Integer对象:
               ①Integer.valueOf(int);

            (2)Integer对象→基本数据类型(整数型和浮点型):
               ①Integer对象.byteValue();
               ②Integer对象.shortValue();
               ③Integer对象.intValue();
               ④Integer对象.longValue();
               ⑤Integer对象.floatValue();
               ⑥Integer对象.doubleValue();

            (3)int、Integer对象→String
               ①Integer.toString(int或Integer对象);
               ②String.valueOf(int或Integer对象);
               ③int或Integer对象 + " " 做并置转换
               ④Integer对象.toString();

            (4)String→int
               ①Integer.parseInt(String s);
               ②new Integer(String s).intValue();

  • 基本数据类型转换的精度排列(由低到高):byte short char int long float double。【隐式转换和强制转换】
  • 数据类型转换题目:
    第一题:
        byte b1 = 3, b2 = 4, b;
        b = b1 + b2;  //错误  因为他们最终是要转向int类型,而int类型的值不能赋值给byte
        b = 3 + 4;  //正确  因为他们都是常量,具有常量类型优化机制,可以直接识别为byte
        哪句是编译失败的呢?为什么呢?
    第二题:
        byte by = 130;  //有问题  因为这个数超出了byte的取值范围,要用byte类型进行强制转换,结果是-126
        有没有问题?有问题如何解决?结果是多少呢?
    第三题:
        byte b = 10;
        b++;  //正确  
        b = b + 1;  //失败  因为在和一个int类型的常量进行相加的时候b自动转换成int类型,而一个int类型的数据是没办法直接赋值给byte类型的变量的
        哪句是编译失败的呢?为什么呢?
    第四题:
           short s = 1; s = s + 1;  //有问题  因为short类型的字节数比int小,但是1是int类型,在表达式进行运算的时候就把其值提升为int类型了,而int类型不能直接赋值给short类型的变量,可以通过强制数据类型转换来解决
           有没有问题?如果有怎么解决?
    第五题:
           short s = 1; s += 1;  //没有问题  因为使用的是扩展赋值运算符,这样的话就会实现自动强制数据类型转换
           有没有问题?如果有怎么解决?
    第六题:
           int x = 4;
           int y = (--x)+(x--)+(x*10);
           System.out.println("x = " + x + ",y = " + y);  //x = 2,y = 26
           看程序说结果?
  • 引用数据类型:类、接口、数组、枚举。

 

  • 标识符由数字、字母、下划线(_)和美元符号($)组成,且第一个字符不能是数字。
  • true、false和null不能作为标识符,也不是关键字。
  • switch(byte、short、char、int)语句:关键字break和continue使用。
  • length、length()、size()的区别:

                  length属性:用于获取数组长度。

                  length()方法:用于获取字符串长度。

                  size()方法:用于获取泛型集合有多少个元素。

 

运算符:

  • && 和 & 、|| 和 | 的区别:

               (1)&& 和 &

                 && 和 & 都是表示与的逻辑运算符,但 && 具有短路功能:当第一个表达式的值为false时,第二个表达式不再执行。而 & 两个表达式都执行。
                【当 & 两边的表达式不是boolean类型时,& 是表示按位与的位运算符】   

                      (2)|| 和 |

                 || 和 | 都是表示或的逻辑运算符,但 || 具有短路功能:当第一个表达式的值为true时,第二个表达式不再执行。而 | 两个表达式都执行。
                【当 | 两边的表达式不是boolean类型时,| 是表示按位或的位运算符】

  • 位运算符:

       ①按位与&:1&1=1,否则为0。

       ②按位或|:0|0=0,否则为1。

       ③按位非~:相反。

       ④按位异或^:相同为0,不同为1。

 

数组:

  • 数组引用相同就具有相同元素。
  • System.out.println(数组名)输出数组的引用。若为char型数组则输出全部元素,若要输出char型数组的引用则需要与字符串做并置处理,如:""+数组名。
  • 对象数组创建后,要将数组元素进行对象的创建。

 

Arrays类:【数组工具类】

  • 常用方法:

       1.static void sort(Object[] a)
        对指定数组中的元素进行排序(从小到大)

       2.static int binarySearch(Object[] a, Object key)
        使用二分查找法来查找指定的数组,返回元素值出现位置,没有返回-1

       3.static String toString(Object[] a)
        返回指定数组元素内容的字符串形式,如:[1, 3, 5, 7, 9]

       4.static <T> List<T> asList(T... a)
        将数组转换成list集合【转换后的list是java.util.Arrays.ArrayList类型的,不能增加和删除元素】

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!