学习目标:1. 字面常量2. 数据类型3. 变量
一· 字面常量
何谓常量,常量即程序运行期间,固定不变的量称为常量 ,那什么是字面常量呢,就是程序直接输出的常量就是字面常量,直接看几个代码就可以理解了。
public static void main(String[] args) {
System.out.println(100);//整形常量
System.out.println('A');//字符常量
System.out.println(3.14);//浮点数常量
System.out.println("hello");//字符串常量
System.out.println(true);//布尔常量
}
通过编译结果可知,类似于100,A,3.14,hello,true这些常量均属于字面常量
二·数据类型
注意:在Java中数据类型分为基本数据类型和引用数据类型,这节我们主要讲解基本数据类型,引用数据类型后期会详细讲解,其中Java的基本数据类型同C语言大相径庭。
基本数据类型:
类型 | 关键字 | 字节 |
字节型 | byte | 1 |
短整型 | short | 2 |
整形 | int | 4 |
长整型 | long | 8 |
单精度浮点型 | float | 4 |
双精度浮点型 | double | 8 |
字符型 | char | 2 |
布尔型 | boolean | 未知 |
注意:
1.Java中每个字符所占的字节大小是固定不变,不论是在32位机器还是64位机器
2.整形和浮点型都是带有符号,故也有负数(这点不同于C语言)
3.对于字面常量来说,整形默认为int类型,浮点型默认为double类型
示例如下:
这里的100默认int类型,3.5默认为double类型,假如我输入的字面常量超过范围,编译器就会报错,比如说int类型,最大表示的整数是2^31-1(因为在Java中int类型4个字节,占32个比特位,第一位表示符号位,故最大表示的整数是2^31-1),当我们输入一个字面常量超过这个范围,系统就会报错:
求一个类型所表示的最大值和最小值,方法都和图中所示一样,用该类型的包装类.MAX_VALUE/MIN_VALUE.
各个类型的包装类如下:
类型 | 包装类 |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
三·变量
Java中定义变量的方式同C语言一样,故这里不再赘述,我们只需了解几个与C语言中不一样的知识就可以了,其中C语言中变量的知识可以参考我的这博客:
CSDNhttps://mp.csdn.net/mp_blog/creation/editor/123935676
语法格式:
变量类型 变量名称 = 初始值(其中变量名称要符合标识符定义的合法性)
各种类型定义变量的方法如下:
不同之处:
1.上面我们说过了,一个浮点型常量编译器会默认位double类型的,所以我们在定义float类型的变量时为了和double类型进行区分,会在数值后面加上f
2.长整型变量我们在定义变量时一般加上L/l(也可以不加) ,通常我们都是加上L,而不是l(为了和1区分)
3.Java中char类型与C语言中char类型所占字节不同,C语言中char类型为一个字节,而Java中是两个字节,故我们在Java中可以用char类型定义一个汉字(汉字占两个字节),C语言却不可以
4.Java比C语言多了一中判断真假的类型:boolean类型,boolean类型定义的变量只能位true或者false,Java中真位true,假位false(C语言中规定:0为假,非0为真)
四·类型转换
Java中类型转换分为两种:自动类型转换(隐式) 和 强制类型转换(显式)
4.1自动类型转换
4.2 强制类型转换
注意:
五·类型提升
1.int与long之间:int会被提升为long
2.byte与byte的运算
有的同学会问这里a+b=30并没有超过byte类型的最大范围,为什么会报错呢?
原因是:
总结:对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算
六·字符串类型
在C语言中并没有字符串类型,而在Java中我们却要去学习字符串类型,而字符串类型并不属于基本数据类型,而是属于引用类型
6.1 + 的作用
+在Java中只要出现就是拼接的作用,比如我们把两个字符串拼接在一起
又比如输出时进行数据的整合
本节Java中数据类型和变量的学习到这里就全部结束了,学习过C之后学习这个会显得非常简单,我们只需多用就行,记住那些与C语言不一样的类型即可,感谢支持!!!