目录
一、前言
Java是一种强类型语言,这就意味着必须为每一个变量声明一种数据类型。在Java中数据类型有基本数据类型和引用数据类型。本文只讲java的八种基本数据和一种String引用数据类型。最后还讲了类型的转换。
二、Java的基本数据类型
你有没有想过一个问题,就是java中为什么会有这么多数据类型呢?这是因为要在合适的场景下使用合适的数据类型。举个例子。int类型的取值范围约等于21亿,但是你有22亿的钱,这时候你去银行存钱,拿int类型存钱肯定就超出了int的范围,这时候就需要拿long类型存钱。
1. 整型
整型包含byte、short、int、long四种,这里分开来讲。
1.byte也叫字节。什么是字节?字节是计算机中表示空间大小的基本单位。byte类型占用1字节,也就是8bit位。
public class test {
public static void main(String[] args) {
/*每个基本类型都有对应的包装类。什么是包装类?在这里可理解成
包装类是每个基本类型对应的类类型*/
//byte的包装类--->首字母大写Byte,它是通过点号调用类中的方法。
System.out.println(Byte.MAX_VALUE);
System.out.println(Byte.MIN_VALUE);
}
}
运行结果:
!!!补充知识:bit byte kb mb gb tb pb之间的单位换算。
2.short也叫短整型,占用2个字节。
public class test {
public static void main(String[] args) {
//short的包装类--->首字母大写Short。
System.out.println(Short.MAX_VALUE);
System.out.println(Short.MIN_VALUE);
}
}
运行结果:
3.int也叫整型,占用4个字节
public class test {
public static void main(String[] args) {
//这里有一个注意的点,就是int的包装类是Integer不是首字母大写
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
}
}
4.long也叫长整型,占用8字节。
public class test {
public static void main(String[] args) {
//long的包装类-->首字母大写Long
System.out.println(Long.MAX_VALUE);
System.out.println(Long.MIN_VALUE);
}
}
运行结果:
2. 浮点型
浮点型包含float和double两种,都是储存小数的。float占用4字节,double占用8字节,区别是double的精度更高。float精确到6~7位有效位,double精确到15位有效位。这里不讨论浮点型的取值范围,因为没有意义。
3. 字符型
char在java中占用2个字节,并且char a=‘酷’;是可以输出汉字的,这也是不同于c/c++之处。
public class test {
public static void main(String[] args) {
//char的包装类为Character不是首字母大写
char a='酷';
System.out.println(a);
}
}
运行结果:
5. 布尔型
!!!在java中boolean(布尔)类型,只有两个值true和false,整型和布尔型之间不能转换。
public class test {
public static void main(String[] args) {
//boolean的包装类是Boolean
boolean a =true;
System.out.println(a);
System.out.println();
}
}
运行结果:
public class test {
public static void main(String[] args) {
//boolean a =1;//这样写是错的
System.out.println(a);
System.out.println();
}
}
运行结果:
public class test {
public static void main(String[] args) {
//强制类型转换也是会报错的
//boolean a =(boolean) 1;
System.out.println(a);
System.out.println();
}
}
!!!在java中类型的取值范围是固定的,这里能解决软件从一个平台移植到另一个平台或者在同一个平台中不同操作系统之间进行移植给程序员带来的诸多问题。并且在java中没有有符号和无符号的概念。
三、变量的概念
什么是变量?在java中出了始终不变的常量外,有些内容可能需要经常发生改变,对于这些经常发生改变的内容,称为变量。数据类型就是用来定义变量的,变量名必须是以字母开头并由字母或数字构成的序列。定义变量后必须要初始化。
定义变量的语法: 基本数据类型 变量 =初始化
四、类型转换
4.1. 自动类型转换(隐式)
什么是自动类型转换?即编译器帮我们进行转换,不需要我们自己进行转换。特点:数据范围小转范围大数据。比如,byte–>int 、short–>int 。
4.2 . 强制类型转换(显式)
什么是强制类型转换?即进行操作时,需要进行一定格式处理,不能自动完成。特点:数据范围大转数据范围小。在java中,允许进行强制类型转换,但是也会进行一些数据丢失。就比如double–>int可能会造成数据丢失。因为int是保存整数的,无法保存小数。
强制类型转换不一定能成功,不相干类型不能进行转换。如果将一个数据类型强制转换成另一个数据类型,而又超过了目标类型所要表示的范围,这时会截断成一个完全不同的值。
!!!经常要进行数值类型转换成另一种数值类型。蓝色箭头表明无精度缺失的转换,绿色箭头表明可能有精度缺失的转换。
五、String类型–引用数据类型
String类型只是引用数据类型的一种,引用类型包括基本数据类型的包装类、数组、接口。String类型也称字符串类型。在java中允许用+号拼接两个字符串,规则是字符串类型+任何数据类型=字符串类型。
int---->String
public class test {
public static void main(String[] args) {
int a=10;
String b=a+"hello word!";
String c=String.valueOf(b);
System.out.println(c);
}
}
运行结果:
String----int
public class test {
public static void main(String[] args) {
String a="100";
int b=Integer.parseInt(a);
System.out.println(b);
}
}
运行结果:
六、总结
刷题和练习是可以让人进步的