目录

1.Java包含哪些数据类型? 2.Java基本数据类型转换包含哪两类?
3.为什么需要包装类?
4.int与integer有什么区别,它们之间的相互转化是怎么样的?
5.逻辑运算符&和&&的区别是什么?逻辑运算符&与位运算符&的区别是什么?
6.Java语言中可以采用什么语句跳出多重循环?


1.Java包含哪些数据类型

  • Java中的数据类型基本可划分为基本类型复合类型。基本类型包括:
  • 整数类型:byte,short,int,long;
  • 浮点类型:float,double;
  • 字符类型:char;
  • 布尔类型:boolean。

复合数据类型包括:

  • class(类);
  • interface(接口);
  • 数组。

2.Java基本数据类型转换包含哪两类

1.自动类型转换规则

  • 整型、浮点、字符型数据可以混合运算。运算时,不同类型的数据先转化为同一类型(从低级到高级),然后再进行运算,如下表所示。

复合类型参数Java java复合数据类型_数据类型

  • 优先关系:
    byte,short,char -> int -> long -> float -> double
    例如
Type methodA(byte x,double y){
    return (short)x/y*2;
}
Type的类型将为double。

2.强制类型转换

  • 高级数据要转换成低级数据,需要用到强制类型转换,如:
int i;
byte b=(bytr)i;/*把int型变量i强制转换为byte型*/

3.为什么需要包装类

  • 1.基本数据类型不是对象,在一些场合不能直接使用(例如某些方法参数必须是对象类型),需要转化为对应的包装类对象才能继续使用。
  • 2.包装类的一些静态方法可实现不同数据类型的转化,如将字符串类型的数字 “123” 转为整数类型,可以通过 int a=Integer.parseInt(“123”)完成,而将整数转为字符串使用,则要通过 String c=String.valueOf(123)来完成。
  • 3.包装类的静态属性中含有相应数据类型的范围,如 Integer.MIN_VALUE(int 的最小值),Integer.MAX_VALUE(int 的最大值),Double.NaN(非数类型)、Double.NEGATIVE_INFINITY(负无穷)、Double.POSITIVE_INFINITY(正无穷)。

4.int与integer有什么区别,它们之间的相互转化是怎么样的

1、Integer是int的包装类,int则是java的一种基本数据类型
2、Integer变量必须实例化后才能使用,而int变量不需要
3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值
4、Integer的默认值是null,int的默认值是0
它们之间的转化方法如下:

  • 基本数据类型转化为包装类对象通过构造方法来完成。如 Integer vair = new Integer(5)。
  • 从包装类对象那里得到其代表的基本数据值需要调用该对象的相应方法,如上面的 vair 可以通过调用 intValue() 方法得到一个 int 类型的值。

5.逻辑运算符&和&&的区别是什么?逻辑运算符&与位运算符&的区别是什么?

“&”在执行操作时,运算符左右两边的表达式首先被执行,再对结果进行与、或运算。而利用“&&”执行操作时,如果从左边的表达式中得到的操作数能确定运算结果,则不再对右边的表达式进行运算。采用"&&"的目的是为了加快运算速度,但也要防止用法上出现的问题。

  • 逻辑运算
    先将逻辑运算符(&& ||)两边的表达式都换算成逻辑值(true、false),逻辑或(||)表示如果两个值至少有一个为ture,则结果为true,只有两个都为false,结果才为false。逻辑与(&&)表示两个都为true,结果才为true,否则为false。这里比较简单,就不做例子介绍了。
  • 位运算
    先将每个数转换成二进制,然后进行,位或(|)表示相对应的每位至少有一个为1,则结果为1,只有两个都为0,结果才为0.位与(&)表示相对应的两位必须都为1,结果才为1,否则为0。位异或(^)比较特殊,它比较的是如果两个不同则值为1(如:(1、0)(0、1)),相同(如:(1、1)(0、0))则为0。

6.Java语言中可以采用什么语句跳出多重循环?

break语句可帮助跳出循环。同时,break语句通常有不带标号(break)和带标号(break lab)两种形式。其中break是关键字,lab是用户自定义的符号。

lab:
            for(int i =0; i<2; i++) {
                 for(int j=0; j<10; j++) {
                      if (j >1)  { 
                         break lab; 
                      }
                     System.out.println(“break");
                 }
            }

由此例可见,借助标号,break语句可以跳出多重循环。