初级Java必学的知识点
- Java的语言基本构成
- Java的类型转化
- 类型的强制转换
- 知识点讲解
- 数据类型不同的空间之间赋值的操作
Java的语言基本构成
- 你好! 我是魏铁锤,一个平庸却不平凡的少年,我喜欢学习与分享Java,在教会别人的同时,自己收获快乐和巩固自己的知识。
- 如果你准备学习Java或者刚开始学习Java以及对语言底层原理不清楚的,请一定要看一看这篇文章,专门为初级Java制定的讲解。
Java的类型转化
我们所学的Java基本数据类型,在同类型的数据下,可以自由转换,而不会产生报错,那么不是同类型的呢?他们又该是如何转换的呢?
类型的强制转换
- 首先我们先来看一个代码块:
public satic void main(String[] args){int a = 1;//创建了一个int类型的常量a,并把1赋值给了a;int b = a;//把这个a里面的数据赋值b;System.out.println(b);}
- 从此我们可以看出在同种数据类型之间是可以直接进行赋值操作。
- 我们再来看另一个:
public static void main(String[] agrs){int a = 1;byte b = a;//会报错}
- 当我们把大的数据类型,储存到小的数据类型时,会产生报错,因为数据类型的存储大小不一样,先以整数类型为例,整数类型总共有四个,按储存从小到大的顺序来排,依次是byte、short、int、long。具体储存信息见下表:
整数类型大小分布表
整数类型 | 储存大小 |
---|
byte | 8bit |
short | 16bit |
int | 32bit |
long | 64bit |
知识点讲解
- 这个数据的强制转换,就像时你吃大米饭似的,你一个用盆装,一个用碗装,如果你想把盆装的大面饭,换到小碗里,就会有多出的情况,而多出的,就直接不要了,因为装不下,那么你现在这小碗里的米饭,就不能说都是盆里的米饭了,因为有一部分倒掉了。
- 咱们的数据就像大米饭似的,我们在转换数据的时候,如果大的数据储存的小的里面,会产生报错,也可强制转换,但是数据会变,而小的储存到大的里面是没有问题的。
- 但是有些人就会问,同样是数字1,直接赋值给int、baty都可以,说明他们是都可以装下数字1的,但为什么转换就不可以?其实道理很简单,数字1占取位置多余的,都会用null(默认值)来填充,所以没存东西,不代表他这个存储空间不存在。
数据类型不同的空间之间赋值的操作
- 基本类型之间是可以直接转换的,有两种方式,一个是自动转换,小的储存空间赋值给大的,另一种是强制转换,大的储存空间赋值给小的。
- 引用类型之间也是可以直接转换的,他有自动、强制、上转型、下转型四种转换方式。
- 引用类型之间是不可以直接转换,但是可以间接转换,通过包装类/封装类来进行转换的。
示例
public static void main(String[] args){int a = 1;byte b = (byte)a;}
注意:同种大数据类型之间才能发生转换