Java基础第三讲:Java基本语法(二)
如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!
Java基础第三讲:Java基本语法(二)
a、当把一个取值范围小的基本数据类型赋值给一个取值范围大的基本数据类型时,Java编译器会帮你完成类型转换。
b、还有一个秘密:“字面值的整数永远隐含着的意思是它是个int”,当把一个在byte允许的取值范围的int字面值赋予一个byte类型的变量时,编译器会自动帮你完成。
01 |
public class Lesson03_1{ |
02 |
public static void main(String[] args){ |
03 |
byte byte1=100; |
04 |
short short1=10000; |
05 |
char char1= 23002; |
06 |
int int1= 1000000; |
07 |
long long1= 9876543210L; |
08 |
float float1= 9876543210.12345f; |
09 |
double double1= 9876543210.123456789; |
10 |
11 |
short short2=byte1; |
12 |
// byte byte2=short1; |
13 |
14 |
} |
15 |
} |
看到没,编译器说了,把short转成byte可能会损失精度!那么把10000存入byte会的确会损失精度,那么把值是100的short类型数字存入byte肯定不会损失精度,那么编译器会怎么看待这件事情?我们问去采访一下它,改程序成这样:
1 |
public class Lesson03_2{ |
2 |
public static void main(String[] args){ |
3 |
short short1=100; |
4 |
byte byte1=short1; |
5 |
} |
6 |
} |
我们看到编译器并不买账,我们看到编译器只对整数字面值的大小有感知,对这种从大到小的类型转换是坚决不允许的,那么如何解决这个问题,就要用到后面讲的强制类型转换。
2、强制类型转换
我们把上面的程序再改一下:
1 |
public class Lesson03_2{ |
2 |
public static void main(String[] args){ |
3 |
short short1=100; |
4 |
byte byte1=(byte)short1; |
5 |
System.out.print(byte1); |
6 |
} |
7 |
} |
1 |
public class Lesson03_2{ |
2 |
public static void main(String[] args){ |
3 |
short short1=250; |
4 |
byte byte1=(byte)short1; |
5 |
System.out.print(byte1); |
6 |
} |
7 |
} |
01 |
import java.util.List; |
02 |
public class Lesson03_3{ |
03 |
04 |
//对象 |
05 |
static Object object; |
06 |
//接口 |
07 |
static List list =null; |
08 |
//数组 |
09 |
static int[] months; |
10 |
11 |
public static void main(String[] args){ |
12 |
System.out.println("object="+object); |
13 |
System.out.println("list="+list); |
14 |
System.out.println("months="+months); |
15 |
} |
16 |
} |
我们看到引用数据类型中接口和对象的类型名都是首字母大写的,数组是带有方括号的。他们和基本数据类型有着明显的不同。
用一句话来说就是基本数据类型变量里存储的是数据本身,而引用数据类型变量里存储的是指向数据本身的地址。
三、字符串初识
字符串是程序开发中最常用的一种对象。关于对象我们有过一点点的了解,关于字符串我们也先啊和他见见面,以后会慢慢熟悉起来的。下面我们用一个字符串来举例理解引用数据类型在内存中的存储情况:
1 |
public class Lesson03_4{ |
2 |
public static void main(String[] args){ |
3 |
String name1="nebulayao"; |
4 |
String name2=null; |
5 |
name2=name1; |
6 |
System.out.println("name2="+name2); |
7 |
} |
8 |
} |
好了,本讲就到这里,take your time and enjoy it 。
哦,回来说一句,除了整数字面值的默认类型int以外,你是不是也自己发现了一个小秘密?那就是浮点数字面值的默认类型是double 。如果你不知道的话,做题会吃亏的^_^,出题人太坏了。
分享至上:分享源头- 分类:
- Java
更新时间:
上一篇:下一篇:
