概述
-
-
- 本文目录
- 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种),
都有对应的封装类类型
类型名称 | 关键字 | 封装类 | 大小 | 取值范围 |
---|---|---|---|---|
字节型 | byte | Byte | 8位 | -27 ~27 -1 |
短整型 | short | Short | 16位 | -215~215-1 |
整形 | int | Integer | 32位 | -231~231-1 |
长整型 | long | Long | 64位 | -263~263-1 |
浮点型 | float | Float | 32位 | 3.4e-38~3.4e+38 |
双精度 | double | Double | 64位 | 1.7e-38~1.7e+38 |
字符型 | char | Character | 16位 | ‘u0000’~’uFFFF’ |
布尔型 | boolean | Boolean | 1位 | 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源码
double源码
吃一堑长一智
end
最后
以上就是迷路康乃馨为你收集整理的金现代面试题—— i++,++i, &&,&|自动装箱和自动拆箱(int,byte,float等)|取int等基本类型的最大值的全部内容,希望文章能够帮你解决金现代面试题—— i++,++i, &&,&|自动装箱和自动拆箱(int,byte,float等)|取int等基本类型的最大值所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复