Java 基础复习

Posted joimages

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 基础复习相关的知识,希望对你有一定的参考价值。

Java 基础

基础数据类型

java 中包含哪些基础数据类型,默认值分别是多少?

基础数据类型 byte short int long double float char boolean
默认值 0 0 0 0l 0.0 0.0f null false

基础数据在 JVM 中的存储模型

Java 中的基础模型因为其长度可知、生命周期(存活时间)可知,为了追求速度,基础数据都是存放在栈中的。另外栈有一个特点,就是栈中的数据可以共享。

例如:

int a = 3;
int b = 3;

基础数据类型的自动转换

基础类型的自动转换规则包括自动、强制、提升三种

自动类型转换是指:数字范围小的数据类型可以自动转换成数据范围大的类型

int a = 100;
long b = a;

具体可以残照下面这张图:

技术图片

实线表示自动转换时不会造成数据丢失,虚线则可能会出现数据丢失问题。

在自动转换的过程中也需要考虑溢出问题,例如:

int a = Integer.MAX_VALUE;
int b = 2;
long c = a + b;
System.out.println(c);

// out -2147483647

在这种情况下编译器不会报错,但是打印出来的结果是负数(溢出)。因为jvm 中对其进行计算的时候,是先计算两个 int 的和,再将其自动转换为 long,但是在计算过程中,a和 b的和已经大于 int 的最大值,也就是说在自动转换之前结果已经是负数了,所以转换成 long 之后依然是负数。

另外,向下转换的时候可以直接将 int 的常量直接赋予给char、short、byte,只要常量的数字小于这些基础类型的最大上限,所以可以自动转换

short d = 3;
char e = 4;
byte f = 1;

下图中的 g 报错了,是因为int 的常量超过了 byte 的最大限度。

short d = 3;
char e = 4;
byte f = 1;
byte g = 128;

以上是关于Java 基础复习的主要内容,如果未能解决你的问题,请参考以下文章

Java基础复习-流程结构篇

Java__反射基础复习

Java__反射基础复习

JAVA基础部分复习(JAVA反射)

Java基础复习

java基础复习