关于Java(2)

关于Java(2)

陈述类

  1. Java包含哪两大类数据类型?其中基本类型的每种类型的取值范围和默认值分别是多少?
    分为基本数据类型和基本引用类型。
    基本数据类型见下图:
    Alt
    基本引用类型:数组、类、接口。默认值:null
  2. Java在什么情况会发生整型溢出?请举例说明,并给出解决方案。
    发生情况:当某一种类型的数值已经达到了此类型能够保存的最大值之后,再继续扩大,或者达到了最小值后再继续缩小,就会出现数据溢出问题。
public class MyDemo{
	public static void main(String args []){
		int a = 2147483647;
		//定义一个int型变量a的值为int型能够保存的最高值
		System.out.println(a + 1);
	}
}
//输出的结果为:-2147483648
  1. Java基本类型的包装类分别是哪些?其高频区间数据缓存范围分别是什么?请选择一种包装类型编程验证其数据缓存特性。
    Java中的8个包装类:Byte,Short,Integer,Long,Float,Double,Character,Boolean它们的使用方式都是一样的,可以实现原生数据类型与包装类型的双向转换。
    高频区间数据缓存范围:
    Byte:-128~127;
    Short:-128~127;
    Character(char):0~127;
    Long:-128~127;
    Integer:-128~127;
    Double和Float没有缓存;
    Boolean:使用静态final,就会返回静态值;
    注意:如果所使用的包装类的值在这个缓存区间内,就会直接复用已有对象,在缓存区间之外的数值会重新在堆上产生。所以在判断是否相等时不要用 “==”,用equals
  2. 什么是自动装箱,什么是自动拆箱,请举例说明。
    装箱:基本类型转变为包装器类型的过程。
    拆箱:包装器类型转变为基本类型的过程。
		Integer i1 = 100;
        Integer i2 = 100;
        Integer i3 = 200;
        Integer i4 = 200;
        System.out.println(i1 == i2); //true
        System.out.println(i3 == i4); //false
        
        Double d1 = 100.0;
        Double d2 = 100.0;
        Double d3 = 200.0;
        Double d4 = 200.0;
        System.out.println(d1 == d2); //false
        System.out.println(d3 == d4); //false
        
        Boolean b1 = false;
        Boolean b2 = false;
        Boolean b3 = true;
        Boolean b4 = true;
        System.out.println(b1 == b2); //true
        System.out.println(b3 == b4); //true
  1. int与Integer有什么区别,它们之间的相互转化是怎样的?(请通过JDK文档自主学习integer类,对主要方法进行测试。)
    区别:
    • Integer是int的包装类;int是基本数据类型;
    • Integer变量必须实例化后才能使用;int变量不需要;
    • Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值 ;
    • Integer的默认值是null;int的默认值是0。
  2. 逻辑运算符&和&&的区别是什么?逻辑运算符&与位运算符&的区别是什么?请分别举例说明。
  • &:(1)按位运算符; (2)逻辑运算符
    • 作为位运算符时&,如果相对应位都是1,则结果为1,否则为0。假设整数变量A的值为60和变量B的值为13。即A = 0011 1100 B = 0000 1101。则(A&B),得到12,即0000 1100。
    • 作为逻辑运算符时,&左右两端条件式有一个为假就会不成立,但是两端都会运行,比如(1+2)=4 &(1+2)=3;1+2=4即使为假也会去判断1+2=3是否成立。
  • &&——逻辑运算符
    &&也叫做短路运算符,因为只要左端条件式为假直接不成立,不会去判断右端条件式。
    相同点:只要有一端为假,则语句不成立
  1. Java语言中可以采用什么语句跳出多重循环?请举例说明。
  • continue:跳过一次循环,进入下一次循环
public void continueLabelTest(){
     outer:
      for(int i = 0; i<5; i++){
          for(int j = 0; j<6; j++){
              if(j == 4){
                  continue outer;
              }
              System.out.println(j);
          }
          System.out.println("test");
      }
      System.out.println("finish");
  }
  • break:结束整个循环,只会结束一层循环,比如说有两层for,那么break内层循环只会结束内层循环,继续执行外层循环
first: 
for (int i = 0; i <10 ; i++) {
    second:
    for (int j = 0; j <5 ; j++) {
        for (int k = 0; k < 3; k++) {
            if(k==2) break first;//跳出first循环
            if(k==3) break second;//跳出second循环
        }
    }
  • return结束多层循环:直接结束整个函数返回结果,后续代码自然不再执行
public class Main {
    public static void main(String[] args) {
        for(int i=0;i<10;++i) {
            for(int j=0;j<10;++j){
                System.out.println(j);
                if(j==5)
                    return;
        // 直接结束整个函数返回结果,后续代码自然不再执行
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值