目录
基本数据类型
-
Java语言的数据类型分为:基本数据类型,引用数据类型
-
基本数据类型的四类八种
-
整数和小数取值范围大小关系:double float long int>short byte
-
long类型变量:需要加入L标识(大小写都可以) float类型变量:需要加入F标识(大小写都可以)
标识符
就是给类,方法,变量等起的名字
标识符命名规则
硬性要求:
-
由数字、字母、下划线(_)和美元符($)组成
-
不能以数字开头
-
不能是关键字
-
区分大小写
软性建议:
-
小驼峰命名法:方法、变量 规范1:标识符是一个单词的时候,全部小写 范例1:name 规范2:标识符由多个单词组成的时候,第一个单词首字母小写,其他单词首字母大写 范例2:firstName
-
大驼峰命名法
规范1:标识符是一个单词的时候,首字母大写
范例1:Student 规范2:标识符由多个单词组成的时候,每个单词 的首字母大写 范例2:GoodStudent
运算符
对字面量或者变量进行操作的符号
表达式
用运算符把字面量或者变量连接起来,符合java语法的式子就可以称为表达式。不同运算符连接的表达式体现的是不同类型的表达式。
-
算术运算符
-
加、减、乘、除、取余
-
整数参与运算,结果只能得到整数
-
小数参与运算,结果可能不精确
-
数字相加
-
隐式转换(自动类型提升) 把一个取值范围小的数值,转成取值范围大的数据
-
数据类型不一样,不能进行计算,需要转成一样的才可以进行计算。
-
取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算
-
byte short char三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算
-
取值范围排序: byte<short<int<long<float<double
-
强制转换 如果把一个取值范围大的数值,赋值给取值范围小的变量。 是不允许直接赋值的。如果一定要这么做就需要加入强制转换
格式:目标数据类型变量名=(目标数据类型)被强转的数据;
-
-
字符串相加
-
字符串的”"+”操作 当“+”操作中出现字符串时,这个”+”是字符串连接符,而不是算术运算符了。会将前后的数据进行拼接,并产生一个新的字符串。
-
连续进行”+"操作时,从左到右逐个执行。
-
-
字符相加
-
当字符+字符或者字符+数字时,会把字符通过ASCI码表查询到对应的数字再进行计算。
-
-
注意事项: /和%的区别:两个数据做除法,/取结果的商,%取结果的余数。 整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。
-
-
自增自减运算符
符号 作用 说明 ++ 加 变量的值加一 -- 减 变量的值减一 注意事项: ++和~既可以放在变量的前边,也可以放在变量的后边
-
赋值运算符
符号 | 作用 | 说明 |
---|---|---|
= | 赋值 | int a=10,将10赋值给变量a |
+= | 加后赋值 | a+=b,将a+b的值给a |
-= | 减后赋值 | a-=b,将a-b的值给a |
*= | 乘后赋值 | a*=b,将a×b的值给a |
/= | 除后赋值 | a/=b,将a/b的商给a |
%= | 取余后赋值 | a%=b,将a➗b的余数给a |
在运算中扩展的赋值运算符隐含了强制类型转换
-
关系运算符(比较运算符)
符号 | 说明 |
---|---|
== | a==b,判断a和b的值是否相等,成立为true,不成立为false |
!= | a=b,判断a和b的值是否不相等,成立为true,不成立为false |
> | a>b,判断a是否大于b,成立为true,不成立为false |
>= | a>=b,判断a是否大于等于b,成立为true,不成立为false |
< | a<b,判断a是否小于b,成立为true,不成立为false |
<= | a<=b,判断a是否小于等于b,成立为true,不成立为false |
注意事项:关系运算符的结果都是boolean类型,要么是true,要么是false。 千万不要把“==”误写成“=”。
-
逻辑运算符
符号 | 作用 | 说明 |
---|---|---|
& | 逻辑与(且) | 并且,两边都为真,结果才是真 |
&& | 短路与 | 具有短路效果,第一个条件不符合就不再判断第二个 |
| | 逻辑或 | 或者,两边都为假,结果才是假 |
|| | 短路或 | 具有短路效果,第一个条件符合就不再判断第二个 |
^ | 逻辑异或 | 相同为false,不同为true |
! | 逻辑非 | 取反 |
-
三元运算符
格式:关系表达式?表达式1:表达式2;
关系表达式为真,执行表达式1,否则执行表达式2
Boolean result = (x == 6 || y == 6 || z % 6 == 0) ? true: false; System.out.println(result);
-
运算符优先级
小括号优先所有
原码,反码,补码
-
原码
十进制数据的二进制表现形式,最左边是符号位,0为正,1为负
利用原码对正数进行计算是不会有问题的。 但是如果是负数计算,结果就出错,实际运算的结果,跟我们预期的结果是相反的。
-
反码(解决原码不能计算负数)
正数的补码反码是其本身,负数的反码是符号位保持不变,其余位取反
-
补码(解决跨0 问题)
正数的补码是其本身,负数的补码是在其反码的基础上+1
- 运算符在补码中的规则
运算符 | 含义 | 运算规则 |
---|---|---|
& | 逻辑与 | 0为false,1为true |
| | 逻辑或 | 0为false,1为true |
<< | 左移 | 向左移动两个bit,低位补两个0(相当于两次×2) |
>> | 右移 | 向右移动两个bit,高位补两个0(相当于两次÷2) |
>>> | 无符号右移 | 向右移动两个bit,高位补两个0(无视正负) |