一、数据类型
Java语言中的数据类型分为两大类:
- 基本数据类型(primitive types)
- 引用数据类型(reference types),简称引用类型
1、基本数据类型
(1)定义
由程序设计语言系统所定义、不可再划分的数据类型。
(2)特点
- 所占内存的大小固定,与软硬件环境无关
- 内存中存放的是数据值本身
(3)分类
Java的基本数据类型共8种,分为4类:
- 整型:byte,short,int,long
- 浮点型:float,double
- 布尔型:boolean
- 字符型:char
2、引用数据类型
(1)特点
在内存中存放的是指向该数据的地址,不是数据值本身
二、基本数据类型
1、基本数据类型汇总
数据类型 | 关键字 | 占用字节数 | 默认值 |
---|---|---|---|
布尔型 | boolean | 1 | true |
字节型 | byte | 1 | 0 |
短整型 | short | 2 | 0 |
整型 | int | 4 | 0 |
长整型 | long | 8 | 0L |
单精度浮点数 | float | 4 | 0.0F |
双精度浮点数 | double | 8 | 0.0D |
字符型 | char | 2 | ‘\u0000’ |
2、数值型数据的最值
(1)整型
最大值:类全名.MAX_VALUE
最小值:类全名.MIN_VALUE
(2)浮点型
- 正数范围:
最大值:类全名.MAX_VALUE
最小值:类全名.MIN_VALUE - 负数范围
最大值:- 类全名.MAX_VALUE
最小值:- 类全名.MIN_VALUE
3、Java隐含数据类型
- 整数:隐含为整型(int)
- 浮点数:隐含为double型。注:double型占8个字节,有效数字最长为15位。浮点数并不是精确数
三、关键字与标识符
1、关键字
2、标识符
(1)规定
- 标识符可以由字母、数字、下划线和美元符号($)等组成,但不能以数字开头。
- Java严格区分字母大小写。例如,hello和Hello是不同的标识符
(2)Java编码习惯
<1>类名首字母大写,变量、方法以及对象的首字母小写;
<2>所有的标识符采用驼峰命名规则;
<3>定义常量,大写所有字母;
<4>Java包名,全部小写字母
四、常量
常量:在程序运行的整个过程中保持其值不改变的量
1、final关键字
声明常量的关键字
final int MAX = 10;
final float PI = 3.14;
五、变量
六、数据类型转换
1、自动类型转换
又称“隐含类型转换”,类型转换过程由编译系统自动完成
(1)需要满足的条件(同时成立)
- 转换前的数据类型和转换后的数据类型兼容
- 转换后的数据类型的表示范围比转换前数据类型的表示范围大(短–>长,扩大转换)
注:
1、byte–>short–>char–>int–>long–>float–>double
2、byte、short、char之间不会相互转换,他们三者在计算时首先转换为int类型
3、boolean类型不能与其它数据类型运算
4、当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类型的值将自动转化为字符串(String)类型
2、强制类型转换
方法:
在变量的前面加上想要转换的数据类型;强制转换符:()。在缩小转换时,可能会损失精度
注:
1、通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型
String a = "43";
int i = Integer.parseInt(a);
2、boolean类型不可以转换为其它的数据类型
3、字符串与数值型数据的相互转化
(1)字符串–>数值型
数字字符串数据转换成byte、short、int、long、float、double等数据类型,“true”、“false”字符串转换成对应的布尔类型,使用XXX.parseXXX(String s)方法
例如,
String myNumber = "123.456";
float myFloat = Float.parseFloat(myNumber);
(2)数值型–>字符串
字符串连接符"+",自动实现类型转换
七、获取键盘输入的数据
1、InputStreamReader + BufferedReader
java.io.* 库中提供
public static void main(String[] args) throws IOException{
BufferedReader buf;
buf = new BufferedReader(new InputStreamReader(System.in));
String str1,str2;
str1 = buf.readLine();
str2 = buf.readLine();
.......
}
注:
此种输入方式,从键盘输入的所有内容都被视为字符串
2、Scanner类
java.util.* 库中提供
public static void main(String[] args){
Scanner reader = new Scanner(System.in);
double num;
num = reader.nextDouble();
.......
(1)reader对象的可选方法:
- nextByte()
- nextShort()
- nextInt()
- nextLong()
- nextFloat()
- nextDouble()
- next()
- nextLine()
- hasNextXXX()
(2)next()和nextLine()区别
- next()方法:该方法一定要读取有效字符后才可以结束输入,对输入有效字符之前遇到的空格、Tab键或回车键等,该方法自动将其去掉,只有在输入有效字符后,该方法才会把空格、Tab键或回车键视为分隔符或结束符;
- nextLine()方法:结束符只是回车键,即返回的是回车键之前的所有字符。
八、运算符与表达式
二元运算符
一元运算符
关系运算符
逻辑运算符
位运算符
赋值运算符
条件运算符
注意点
- 1、不能在浮点数之间做“==”的比较
- 2、逻辑运算符&和&&,|和||的区别:&&被称为简洁与,||被称为简洁或,它们会发生短路现象