目录
一、走进Java语言
- Java分为三个体系:
- JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
- JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版),也叫JavaWeb
- JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)
二、环境变量配置
三、初识Java运行机制
- Java是面向对象编程语言。
- Java的运行机制
- 什么是解释型语言和编译型语言?
编译型语言 | 解释型语言 |
---|---|
编写源代码 | 编写源代码 |
编译为当前系统执行的二进制文件 | 解释 |
运行 | 运行 |
四、变量与关键字
变量:参数可变
常量:参数不可变,在前面加final
五、计算机中的二进制
二进制是以2为基数代表系统的二进制位制。由两个不同符号的0和1来表示。
- 十进制数转换为二进制数
- 方法:十进制数除2取余数,逆序排列 -
- 二进制数转换为十进制数
- 方法:从右到左为n-1位,使用二进制的每位数乘以2^n-1次方累加的和。
- 1负
- 0正
- 0为假,其他数值为真
- 原码
- 反码
- 补码
六、基本数据类型
1. 数据存储的单位
1. 位、字节、字 是计算机数据存储的单位。位是最小的存储单位,每一个位存储一个1位的二进制码,一个字节由8位组成。而字通常为16、32或64个位组成。
2. 位(bit):是计算机中最基本的单位,位是最基本的概念,在计算机中,由于只有逻辑0和逻辑1的存在,即每一个逻辑0或者1便是一个位。
3. 字节(byte):计算机中处理数据的基本单位,是由八个位组成的一个单元,8个bit组成1个Byte。
4. 字(word):代表计算机处理指令或数据的二进制数位数,是计算机进行数据存储和数据处理的运算的单位,在常见的计算机编码格式下,一个字等于两个字节(十六位)(1word = 2Byte = 16bit)。
一个位=1Bit | 8Bit=1个字节 | 16Bit=一个字 | 32Bit=两个字 | 64Bit=四个字 |
2. 整数类型
byte 字节型 8Bit,1个字节 范围:-128~+127
short 短整型 16Bit,2个字节 范围:-32768~+32767
int 整型 32Bit,4个字节
long 长整型 64Bit,8个字节 需要加后缀L
3. 字符类型
char 字符型 16Bit,2个字节 范围:0~65535 单引号
使用Unicode 表示:\u0000~\uffff
4. 浮点类型
float 单精度浮点类型 32Bit,4个字节
double 双精度浮点类型 64Bit,8个字节
5. 布尔类型
boolean 布尔类型 true/false
七、类型转换
1. 隐式类型转换
byte-->short-->int-->long-->float-->double
为什么long比float大,还能转换为float?
小数的存储规则让float的最大值比long还大,只是可能会丢失某些位上的精度。
2. 显示类型转换(强制类型转换)
违反隐式转换的规则,牺牲精度强行类型转换
精度丢失会影响输出结果
八、数据类型自动提升
在参与运算时(位于表达式中时,自增自减除外),所有byte型、short型和char型的值将提升到int型
此特性是由Java虚拟机规范定义的,也是为了提高运行效率。
其他特性还有:
如果一个操作数为long型,计算结果为long型
如果一个操作数为float型,计算结果为float型
如果一个操作数为double型,计算结果为double型
九、运算符
1. 赋值运算符
=
2. 算术运算符
+、-、*、/、%(取余)
+可用于字符串连接
在实际使用时(尤其在循环体内),+会使内存资源造成浪费,应使用StringBuilder的append方法
3. 运算符的优先级
自增、自减
a++ 先返回值,再自增 b=a,a=a+1 return b
++a 先自增,再返回值 a=a+1,b=a return b
+= -= /= *= %=
4. 关系运算符
< > == >= <= !=
5. 逻辑运算符
&& 与运算,两边同时为true才能返回true
|| 或运算,两边至少有一个true,就返回true
! 非运算,一般放在表达式前面,表达式用括号括起来,表示对表达式的结果进行反转
boolean x=!(a>b); //结果取反值
6. 位运算符
& 按位与,返回的是运算后的同类型值,不是boolean
|| 按位或
! 按位非
按位运算实际上是根据值的二进制编码来计算结果,只有同时为1对应位才得1
三目运算符
十、流程控制
1. 选择结构
1. if语句
if(判断条件){
成功执行内容
}else{
失败执行内容
}
if(判断条件){
成功执行内容
}else if(判断条件){
再次判断,成功执行内容
}else{
失败执行内容
}
2. switch语句
switch(判读条件){
case值1:
运行内容;
break;
...
case值n:
运行内容;
break;
}
switch采用二分思想进行查找,switch效率更高,能快速找到结果
2. 循环结构
1. for语句
for(初始条件;循环条件;更新){
循环执行内容;
}
for(;;){
内容无限循环;
}
2. while语句
while(循环条件){
循环执行内容;
} // 先判断后循环
do{
循环执行内容;
}while(循环条件); // 先循环后判断
`for(;;){}`和`while(true){}`二者相比谁的性能更高?
for的性能高
整数/整数 返回整数
3. break和continue
break 直接跳出该循环
continue 跳过当次该循环
如有不当之处请告知