我是靠谱客的博主 迷路康乃馨,最近开发中收集的这篇文章主要介绍金现代面试题—— i++,++i, &&,&|自动装箱和自动拆箱(int,byte,float等)|取int等基本类型的最大值,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

      • 本文目录
      • 1.看程序运行,算运行结果
      • 2.问答——解释一下自动装箱和自动拆箱
      • 3.对byte,short,float.double 进行自动装箱和自动拆箱
      • 4.通过封装类获取其基本类型的最大值

本文目录

1.看程序运行,算运行结果

public static void main(String[] args){
int i=1,j=1;
if(i++==2&&++j==2){
i=7;
}
System.out.println(“i=”+i+”,j=”+j);
}
请给出 输出结果:
正解:i=2,j=1

这个题出的很巧妙,知识点如下

①i++和++i 的区别

  i++,先赋值,后自增
  ++i ,先自增,后赋值(或比较)

②&&和&的区别

&&前面结果 如果是 false,后面的语句将不再执行
&则无论前面结果怎样,都会执行后面的语句

③如果这道题改成

public static void main(String[] args){
int i=1,j=1;
int a=i++;
//此时 i++已经执行完
if( i==2&&++j==2){
i=7;
}
System.out.println(“i=”+i+”,j=”+j);
}

结果又会是怎样?

答案: i=7,j=2

这里写图片描述

总结: 透过现象看本质

int i=1;
if( i++==2) false
先比较:执行完 1==2 (1等于2)结果为false 之后
再自增: i++,i的值此时为 2


int i=1;
a=i++;
if(i==2) true
先赋值:a=i ,值为1
再自增:i=2 ,结果为true

2.问答——解释一下自动装箱和自动拆箱

1,int和integer有什么区别
即基本类型和其封装类的关系

答:java所有的基本类型(8种)
都有对应的封装类类型

类型名称关键字封装类大小取值范围
字节型byteByte8位-27 ~27 -1
短整型shortShort16位-215~215-1
整形intInteger32位-231~231-1
长整型longLong64位-263~263-1
浮点型floatFloat32位3.4e-38~3.4e+38
双精度doubleDouble64位1.7e-38~1.7e+38
字符型charCharacter16位‘u0000’~’uFFFF’
布尔型booleanBoolean1位true/false

装箱和拆箱

装箱:把基本类型转换为封装类类型,即将栈中的数据封装成对象存放到堆中的过程。
这里写图片描述
自动装箱:不需要构造方法,直接用 = 自动把基本类型转换为封装类类型

//基本类型转换成封装类型
int i=2;
//装箱

Integer it=new Integer(i)

//自动装箱
Integer it2=i;

拆箱:把封装类类型转换为基本类型,即将堆中的数据值存放到栈中的过程。
这里写图片描述
自动拆箱:不需要调用Integer的intValue方法,直接用 = 自动把封装类类型转换为基本类型

Integer it = new Integer(5);

        //拆箱
        int i2 = it.intValue();

        //自动拆箱
        int i3 = it;

总结:自动装、拆箱就是简化了基本类型和其封装类类型的转换。

3.对byte,short,float.double 进行自动装箱和自动拆箱

 public static void main(String[] args) {
        // 1. 对byte,short,float,double进行自动拆箱和自动装箱
        byte b = 1;
        short s = 2;
        float f = 3.14f;
        double d = 6.18;

        // 自动装箱
        Byte b1 = b;
        Short s1 = s;
        Float f1 = f;
        Double d1 = d;
        // 自动拆箱
        b = b1;
        s = s1;
        f = f1;
        d = d1;     
    }

4.通过封装类获取其基本类型的最大值

//   整型
        System.out.println("byte的最大值是:"+Byte.MAX_VALUE);
        System.out.println("short的最大值是:"+Short.MAX_VALUE);
        System.out.println("int的最大值是:"+Integer.MAX_VALUE);
        System.out.println("long的最大值是:"+Long.MAX_VALUE);
//浮点型
        System.out.println("float的最大值是:"+Float.MAX_VALUE);
        System.out.println("double的最大值是:"+Double.MAX_VALUE);
//字符型        
        System.out.println("char的最大值是:"+Character.MAX_VALUE);
//注,boolean 布尔类型没有最大值。

>运行结果
byte的最大值是:127
short的最大值是:32767
int的最大值是:2147483647
long的最大值是:9223372036854775807
float的最大值是:3.4028235E38
double的最大值是:1.7976931348623157E308
char的最大值是:

char源码
char 源码部分

double源码

这里写图片描述

吃一堑长一智
end

最后

以上就是迷路康乃馨为你收集整理的金现代面试题—— i++,++i, &&,&|自动装箱和自动拆箱(int,byte,float等)|取int等基本类型的最大值的全部内容,希望文章能够帮你解决金现代面试题—— i++,++i, &&,&|自动装箱和自动拆箱(int,byte,float等)|取int等基本类型的最大值所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部