java数据类型
java 数据类型主要包括:
-
引用数据类型:
-
类类型(class):String 字符串类:保存所有的文本信息;
-
数组(array [] )
-
接口(interface)
-
-
八大基本数据类型
类型分类 | 类型 | 占用存储空间 | 表示范围 |
---|---|---|---|
布尔型 | boolean(布尔型) | 1/8个字节 | true 或者 false |
整型 | byte(字节型) | 1个字节 | -27~27-1(-128 ~ 127) |
字符型 | char(字符型) | 2个字节 | 可以存储任意的单一字符,并且被单引号引起来 |
整型 | shrt(短整型) | 2个字节 | -2^15 ~ 2^15-1 |
整型 | int(整型) | 4个字节 | -2^31 ~ 2^31-1 |
整型 | long(长整型) | 8个字节 | -2^63 ~ 2^63-1 |
浮点型 | float(单精度浮点型) | 4个字节 | -2^128 ~ +2^128(-3.40E+38 ~ +3.40E+38) |
浮点型 | double(双精度浮点型) | 8个字节 | -2^1024 ~ +2^1024(-1.79E+308 ~ +1.79E+308) |
- 数据类型部份注意事项说明:
- 单精度浮点型(float):数据定义时后面必须加 ‘f’ 或 ‘F’ ;
- 长整型变量(long):数据定义时后面需要加 ‘L’ 或者 ‘l’,建议使用大写字符;
- 计算机中最小单位是bit(位),1 byte = 8 bit ; 1 M = 1024 byte;
- 计算机语言数据类型表现形式通常包括:二进制、八进制、十进制、十六进制;java语言中整型常量包含三种后面三种;
- 八进制数据定义以 0 开头;十六进制数据定义以 0x 开头;二进制数据定义以 0b 开头;
- 在Unicode 编码中,字符 ‘A’ 的编码是65;字符 ‘a’ 的编码是97;数字 0 的编码是 48;
//数据类型定义
boolean tf = true; //true or false
byte b = 127; //不能赋值128,超出范围;
char ch = 's';
short s = 123;
int s1 = 123; //默认十进制
int s2 = 0234; //八进制数据0-7
int s3 = 0x12D; //十六进制数据0-9,A,B,C,D,E,F
int s4 = 0b1010; //二进制数据
long l = 123L;
float f = 2.3F;
double d = 2.3;
ch = 65; //输出字符 A;
ch = 48; //输出数字 0;
//ch = ch +1 //字符型变量与数据相加时,需要进行强制类型转换
变量定义要求
- java 变量的定义三要素包括变量类型、变量名、变量值;变量名也属于标识符的一种,它的命名规范准从标识符的命名规则;
- 企业级开发规范中要求
- 变量名的第一位要小写,后面单词准从驼峰命名法,比如:bianLiang1
- 变量命名最好做到见名知其意;
- 目前程序中java变量定义的方式主要如下:
//=====定义方式1:=======
//数据类型 变量名;
//变量名 = 数值; //数值赋值
int i1 ;
int i2;
i1 = 10 ;
i2 = 11;
//=====定义方式2=======
//数据类型 变量名 = 数值;
int i3 = 10;
int i4 = 11;
//=====定义方式3=======
//数据类型 变量名1 = 数值 , .. , 变量名n = 数值;
int i5=1,i6=3,i7=4; //后面可以定义n个变量,中间使用','隔开;
数据类型转换
- 数据类型范围比较:byte<short<char<int<long<float<double;
- 隐式转换:小范围类型向高范围类型转换时,可以自动转换;
- 强制转换:大范围数据向小范围数据转换时,需要在前面加转换后的类型进行强制转换;
- 浮点型向整型数据转换时,只取整数,存在精度丢失;
- 不能对boolean数据类型进行转换;
- 不能将对象类型数据转换成不相关类的对象类型;
//=======自动转换======
byte b1 =12;
int i1 = b1;
int i3 = 'b';
char c1 = 78;
//=======强制转换======
int i2 = 12 ;
byte b2 = (byte)i2 ; // 需要进行强制转换
char c2 = (char)(i2+'c');
//=======浮点数类型向整数类型转换时,只取整数=======
double d = 4.34 ;
short s = (short)d ; // s=4;
java 运算符
java中的运算符主要包括:
- 算术运算符:和数学算术运算规则一致
算术运算符 | 作用描述 | 示例 |
---|---|---|
+ | 加法,运算符两侧的值相加 | A + B |
- | 减法,运算符左侧值减去右侧值 | A - B |
* | 乘法,运算符两侧数据相乘 | A * B |
/ | 除法,左侧数据除以右侧数据 | A / B |
% | 求余,左侧数据除以右侧数据的余数 | A % B |
++ | 自增运算,对操作的变量进行加1 | A++ | ++A |
– | 自减运算,对操作的变量进行减1 | A-- | --B |
- 注意:
int a1 = 1 + 1;
int a2 = 1 - 1;
int a3 = 1 * 1;
int a4 = 1 / 1;
int a5 = a1++; //表示先将 a1 赋值给 a5 ,然后 a1 进行自增1;
int a6 = ++a1; //表示先将 a1 进行自增1,然后将加1的结果赋值给 a6
// -- 运算符与 ++ 运算符类似
// a++ a-- 自增运算符是在遇到下一个a是才发生自增,自减运算,因此,注意使用时在括号内的优先级问题
int a7 = (a2++) + (a2++) + (++a2) + (a2++);//a7=7;a2=4(注意最后一个a2自增会在打印输出a2时遇见产生自增1)
String ss = a7 + "字符串"; //注意 + 在与字符串连接使用时,表示拼接
- 赋值运算:
赋值运算符 | 作用描述 | 示例 |
---|---|---|
= | 将右侧的值赋值给左侧数据 | a = b |
+= | 将左侧与右侧数据的和赋值给左侧数据 | a += b |
-= | 将左侧数据减去右侧数据后的值赋值给左侧数据 | a -=b |
/= | 将左侧数据除以右侧数据后的值赋值给左侧数据 | a /= b |
*= | 将左侧数据乘以右侧数据后的值赋值给左侧数据 | a *=b |
%= | 将左侧数据除以右侧数据后的余数值赋值给左侧数据 | a %= b |
- 比较运算符:比较左右两侧数据,返回true 或者 false
比较运算符 | 作用描述 | 示例 |
---|---|---|
> | 左侧数据大于右侧数据为真,否则为假 | a > b |
< | 左侧数据小于右侧数据为真,否则为假 | a < b |
== | 左侧数据等于右侧数据为真,否则为假 | a == b |
!= | 左侧数据不等于右侧数据为真,否则为假 | a != b |
>= | 左侧数据大于等于右侧数据为真,否则为假 | a >= b |
<= | 左侧数据小于等于右侧数据为真,否则为假 | a <= b |
=== | 恒等于,要求数据类型和数值都相等,才为真,java未使用 |
- 逻辑运算符
逻辑运算符 | 作用描述 | 示例 |
---|---|---|
& | 与,两边均为真时才为真 | a & b |
| | 或,两边有一个为真,就为真 | a | b |
&& | 逻辑与,两边均为真时才为真 | a && b |
|| | 逻辑或,两边有一个为真,就为真 | a || b |
! | 非,反转操作数的逻辑状态 | !a |
^ | 异或运算符,两边相同则为false,不同则为true | ^a |
- 备注:
- 逻辑与(&&)和(&)操作,逻辑与只要有判定了一个表达式时false,后面表达式就不再判断,而与(&)操作依然会先判断完所有表达式;
- 逻辑或(||)和(|)操作,逻辑或只要有判定了一个表达式是true,后面表达式就不再判断,而或(|)操作依然会先判断完所有表达式;
- 从执行效率上来看,逻辑与优于与,逻辑或优于或;
- 位运算符
位运算符 | 作用描述 | 示例 |
---|---|---|
& | 与运算符,两数的位都为1,则该位结果位1 | a & b |
| | 或运算符,两个位只要有一个为1,那么结果就是1,否则就为0 | a | b |
~ | 每个位都取反 | ~a |
^ | 异或运算符,两个数的位相同则为0,不同则为1 | a ^ b |
-
备注:
- 位运算符操作时需要将运算符两边的数转换成二进制数据,再逐位进行比较!
- 关于位运算符,本文学习自一个本科生的孤独的博客-Java的位运算符详解实例,感谢作者共享的资料;
-
三元运算符(条件运算符)
-
条件表达式?表达式1:表达式2;
-
条件为true时,返回表达式1,否则返回表达式2;
-
-
运算符优先级介绍:
- 分隔符、括号等优先级最高;
- 其次逻辑非 !运算优先级
- 其次算术运算符;
- 然后关系运算符;
- 再次逻辑运算&& || ;
- 条件运算符;
- 赋值运算符;