------- android培训、java培训、期待与您交流! ----------
Java语言基础组成
关键字的定义和特点
定义:被Java语言赋予了特殊含义的,用于专门用途的单词。
特点:关键字中所有字母都为小写
用于定义数据类型的关键字
class interface byte short int long float double char boolean void
用于定义数据类型值的关键字
true false null
用于定义流程控制的关键字
if else switch case default while do for break continue return
用于定义访问权限修饰符的关键字
private protected public
用于定义类,函数,变量修饰符的关键字
abstract final static synchronized
用于定义类与类之间关系的关键字
extends implements
用于定义建立实例及引用实例,判断实例的关键字
new this super instanceof
用于异常处理的关键字
try catch finally throw throws
用于包的关键字
package import
其他修饰符关键字
native strictfp transient volatile assert
常量和变量
常量不能改变的数值:
1.整数
2.小数
3.布尔型变量
4.字符常量 ' '
5.字符串常量 " " "a" ""
6.null
进制
十进制
由0到9的数字组成,逢十进一
我们最常用的一种进制
0 1 2 3 4 5 6 7 8 9 10 11 12
二进制
由0和1组成,逢二进一
计算机中存储任何数据都是以二进制的形式进行存储的
0 1 10 11 100 101 110 111 1000
八进制
由0到7的数字组成,逢八进一
八进制在程序中以0开头
十六进制
由0到9的数字和A-F的字母组成,逢十六进一
十六进制在程序中以0x开头
进制转换
十进制转二、八、十六进制
除法取余,将要转换的数除以进制数,记住余数,再除以进制数,记住余数,直到这个数等于0为止,将所有余数反转就是对应的二进制表现形式。
二、八、十六进制转十进制 乘法,将要转换的数编号,编号从低位开始,从0开始,将每一位上的数乘以进制数的编号次方,最后将所有乘得的结果相加就是十进制表现形式。
二进制和八进制互转 八进制的每一位对应二进制的三位。
二进制和十六进制互转 十六进制的每一位对应二进制的四位
二进制负数 一个负数的二进制表现形式就是这个负数忽略符号的正数对应的二进制取反再加一。 计算机中存储的二进制数最高位是0则是正数,是1则是负数。
变量的分类:
变量分为基本数据类型和引用数据类型;
基本数据类型分为:
整数——byte(-128~127);short ; int ;long
浮点数——float(单精度);double(双精度)
java语言的整型常量默认为int型,声明long型常量可以后加'l'或'L',
声明为float类型可以在后边加'f'或'F'
字符型——char(0~6535)
布尔型——boolean
引用数据类型分为:
类——class
数组——[ ]
接口——interface
类型的转换:
容量小的类型自动转换为容量大的数据类型;数据类型按容量大小排序为:
byte,short,char->int->long->float->double
强制类型转换
可以将一个占空间较大的值使用(类型)的形式强制放入一个较小的空间,有可能损失精度。
byte b = 3;
b = b +2;//报错
b = (byte)(b+4);//强制类型转换,强制将(b+4)的结果转换为byte类型,再赋值给b。
运算符一共分为
算术运算符、
赋值运算符、
比较运算符、
逻辑运算符、
位运算符、
三元运算符
加(+)、减(-)、乘(*)、除(/)、与数学思想一致
取模运算符(%)
面试题:
如果对负数取模,可以把模数负号忽略不记,如:-1%-5=1。 但被模数是负数就另当别论。取余的正负号取决于左边
当左边的绝对值小于右边: 结果是左边 当左边的绝对值等于右边或者是右边倍数的时候:结果是0
当左边的绝对值大于右边:结果是余数,符号取决与左边的符号
int类型的数默认返回类型为int 小数点后边不管多大都会被舍弃 不会四舍五入
自增(分++在前和++在后)、自减(——和++一样分前后的)
a++——>a = a+1
b = a++; 先赋值在自增
b = ++a; 先自增在赋值
字符串连接符(“+”,将字符串相加得到新的字符串)
转义字符
在字符常量中,斜杠(\)是一个特殊的字符,它的作用是用来转义后面一个字符,这些字符通常是不可见的或者有特殊意义的。
'\r' 回车
'\n' 换行
'\t' 制表符,键盘上的Tab
'\b' 类似退格,键盘上的Backspace
赋值运算符
= 等于用于赋值和初始化变量:int a = 1;
+= 加等于: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;
s=s+5;错误,丢失精度
s+=5;正确,自动转换,一次运算
比较运算符
< 小于
> 大于
== 相对于
!= 不等于
<= 小于等于
>= 大于等于
比较运算符运行结束之后返回的都是boolean值 返回值要么是true要么为false
逻辑运算符
& 与
| 或
! 非
^ 异或
&& 短路与
|| 短路或
逻辑运算符返回的值是boolean类型
& 两边都为true结果才为true,只要有一边是false,结果就是false
| 两边都为false结果才为false,只要有一边是true,结果就是true
^ 判断两边是否不同,不同则为true,相同则为false
! 取反,!true结果是false,!fasle结果是true
&& 和 & 结果相同,具有短路效果,如果前半是false,表达式结果一定为false,不运行后一半
|| 和 | 结果相同,具有短路效果,如果前半是true,表达式结果一定为true,不运行后一半
位运算符
任何信息在计算机中都是以二进制的形式保存的,在计算机上位运算比算术运算符运算速率快
我们可以对数据按二进制位进行移位操作,java的移位运算符有三种:
<< 左移 将二进制的每一位向左移,低位补0。左移几位就相当于乘以2的几次方。
>> 右移 将二进制的每一位向右移,原来高位是0就补0,原来高位是1就补1。右移几位就相当于除以2的几次方。
>>> 无符号右移 将二进制的每一位向右移,高位补0。正数移动没区别,负数移动后变为正数。
&、|、^除了可以作为逻辑运算符,还可以做为位算符。
它们对两个操作数中的每一个二进制位都进行运算,0当做false,1当做true。
&将两个二进制数每一位进行&运算,两边都为1结果才为1,只要有一边是0,结果就为0
|将两个二进制数每一位进行|运算,两边都为0结果才为0,只要有一边是1,结果就为1。
^将两个二进制数每一位进行^运算,只要两边不同结果就为1,相同则为0。
解密:一个数异或同一个数两次,结果还是那个数
反码: ~6=-7
三元运算符
(条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;