一、基本数据类型:
- 整型
占用字节数 | 比特/位 | 取值范围 | |
---|---|---|---|
byte(字节型) | 1 | 8 | 【-128~127】 |
short(短整型) | 2 | 16 | 【-32768~32767】 |
int(整形) | 4 | 32 | 【-2147483648~2147483647】 |
long(长整形) | 8 | 64 | 【-9223372036854775808~9223372036854775807】 |
注意:整数数值默认为int类型,如果需要定义一个long类型的变量,当超出int范围时,需要在该值后面加上L或l
int a = 34;
long b = 40L;
long c = 40l;
- 浮点型
占用字节数 | 比特/位 | 取值范围 | |
---|---|---|---|
float(单精度) | 4 | 32 | 【-3.402 E+38F~+3.402 E+38F】 |
double(双精度) | 8 | 64 | 【-1.79 E+308~+1.79 E+308】 |
注意:float有效位是6~7位,double有效位是15位。浮点数默认为double类型,如果需要定义一个float类型的变量,则数值后需要加f或者F
double a = 4.13;
float b = 4.13f;
float c = 4.13F;
- 字符型
占用字节数 | 比特/位 | 取值范围 | |
---|---|---|---|
char(字符型) | 2 | 16 | 【\u0000\uffff】即为065535 |
//1、字符参与运算(是查找ASCII里面的值)
char a = 'a';
int b = 1;
System.out.println(a + b);//结果为98
//2、字符串参与运算(就是字符串的拼接,字符串在前面就做拼接,数值在前就做相加)
System.out.println("hello" + 'a' + 1);//helloa1
System.out.println('a' + 1 + "hello");//98hello
System.out.println(5 + 5 + "=5+5");//10=5+5
System.out.println("5+5=" + 5 + 5);//5+5=55
- 布尔类型
占用字节数 | 比特/位 | 取值范围 | |
---|---|---|---|
Boolean(布尔类型) | 1 | 1 | true和false |
二、转义字符
-
常见的转义字符:
转义序列 名称 Unicode值 \b 退格 \u0008 \t 制表 \u0009 \n 换行 \u000a \r 回车 \u000d \ " 双引号 \u0022 \ ’ 单引号 \u0027 \ \ 反斜杠 \u005c
三、标识符
-
定义:就是给类、接口、方法、变量等起名字的字符序列。用来查找、定位、标明、唯一确认内容。
-
组成规则:英文大小写字母(字符统称—>中英文皆可,强烈不推荐使用中文); 数字; $和_
-
注意事项:不能以数字开头;不能是java中的关键字;区分大小写
-
标识符需要遵循的规范:1、所有标识符必须要见名知意;2、变量、函数、语句块的名称满足小驼峰(首字母小写,其后每个单词首字母大写);3、类名满足大驼峰 (每个单词首字母大写),常量所有字母大写,单词之间用_隔开
//标识符的注意事项 int $_abc123 = 1; int 123$_adad = 2; ----->这是错的!!! int _abc$123 = 3; int abc$_123 = 4; //标识符遵循小驼峰命名 int helloWord = 4; //常量的书写格式 final int HELLO_WORD = 5;
四、变量
- 定义:在程序的执行过程中,其值在某个范围内可以发生改变的量
- 变量的定义格式:
A:数据类型 变量名 = 初始值
B:数据类型 变量名;
变量名 = 变量值;
-
变量的三种操作:
1、存值;
2、取值;
3、改值
-
变量的关注点:
1、数据类型;
2、变量名称;
3、变量的值;
4、变量的作用域,根据{}来定。同一个作用域当中,变量不能重名
-
变量的使用注意事项:1、变量本身存在;2、变量的值要存在;3、使用时一定要存在于作用域之内,其作用域:从定义开始,到离它最近的左大括号相对的右大括号结束。
变量一旦使用,那么必须保证它的值已经存在(形式参数除外)
//变量的声明
int a ;
//变量的初始化
a = 1;
//同一作用域中变量重名,错误
int a = 2; ----->变量重名!!!
//变量只声明,没有初始化,会报错
int a;
System.out.println(a); ---->会报错
//不同作用域里面,变量可以重名
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
五、数据类型转换
-
定义:数据在不同类型之间进行转换,boolean类型不参与转换
-
默认转换:A、从小到大;B、byte,short,char----->int,long,float,double;
C、byte,short,char之间是平级的,不相互转换,直接转成int类型参与运算
-
强制转换:可能会有精度的损失,一般不建议这样使用。
格式:**目标数据类型 变量名 = (目标数据类型)被转换的数据**
byte a =(byte)123; long b = (long)45555555;
注意:当byte、short、char在运算时,会自动向上转型为int类型,所以返回的结果是int类型,如果接收的类型不是int类型,则会报错。
public static void main(String[] args) { byte a = 1; byte b = 2; byte c = a+b;---->这里报错!!! }
-
图中有6个实心箭头,表示无信息丢失的转换;有三个虚箭头,表示可能有精度损失的转换
**小精度转大精度可以自动转换,int值类型的值会自动地转换成double类型 **
有时候需要将double 转换成int,这就需要进行强制类型转换,但是会丢失一些信息
double a = 4.0; int b = a; ----->这里会丢失精度!!!