- 一、JAVA概述
- 1. 基础
- 2. 转义字符:
- 3. 注释
- 4. 常见错误
- 二、变量
- 1. +号的使用
- 2. 数据类型
- 浮点数使用陷阱:
- 字符型
- 3. 数据类型转换
- a. 自动数据类型转换
- b. 强制类型转换
- 三、运算符
- 1. 算术运算符
- 2. 关系运算符
- 3. 逻辑运算符
- 4. 赋值运算符
- 5. 三元运算符
- 6. 运算符优先级
- 7. 标识符命名规则和规范
- 8. 进制(很重要的基本功)
- 9. 反码补码原码
- 四、控制结构
- 1. Switch语句
- 2. for循环
- for循环的执行顺序
javac = java compiler(java编译器)
JVM(java virtual machine虚拟机)< JRE(java Runtime Environment运行环境) java Hello.class会报错,因为会认为运行的是java.class这个类,直接java class即可 一个源文件只能有一个public类,且这个类名要和文件名一致。其他类的数量不限,编译的时候每个类都会生成一个class文件,其他类里也可以写main函数,只要运行指定类即可 多行注释里面不能嵌套多行注释 文档注释: @的名词必须是指定的那几个,利用 其中,D:temp是要生成的index网页存放的地址, -author -version是所@的字段,编辑的文件是源文件,而非字节码文件,打开temp下面的index.html文件,可以看到如图: char 可以直接放数字,但是表示的是数字的ASCII码 打印出来是a,而不是97 输出是97 字符加法: JAVA的布尔类型只能用true和false,不能用数字,这点不同于C PS:JAVA中字符串不能用==比较是否相等,==比较的是地址,应该用a.equals(b)来判断ab字符串是否相等。 大---->小,有数据损失 其他类型强制转字符串,只需要直接+“”即可 除法 面试题 instanceof 是否是某个类的对象 和关系运算符一样,结果都是Boolean值 a^b:ab异或 复合赋值运算符会自动进行类型转换 都不会报错 条件?表达式1:表达式2; 规则: 8进制是0开头;16进制是0x开头 十进制转二进制: 七八条尤为重要:进行位运算的时候,先都转化为补码进行运算,然后将结果变为原码进行输出! 如果没有break,会直接继续到下一个case的语句,而不判断下一个case的表达式是否满足,直至遇到break或者运行完switch语句,这种现象称为穿透
原始文件.java被称为源文件;javac编译后的文件.class被称为字节码文件public class ChangeChar{
public static void main(String[] args){
// t是制表符 对齐
System.out.println("上海t北京t成都t深圳");
// n是换行,光标到下一行
System.out.println("红楼梦n三国演义n西游记");
// "'实现双单引号
System.out.println("我说"这绝不可能",你说:'不一定'");
// \是单斜杠 \\是双斜杠 一个转移后面一个斜杠
System.out.println("C:\D:\\E");
// r是回车,光标回到该行最前面 开始覆盖
System.out.println("回车是替换掉该行前面的字rHuiC");
}
}
3. 注释
javadoc -d D:\temp -author -version ChangeChar.java
二、变量
1. +号的使用
2. 数据类型
整型默认int(空间节省4字节),声明long,数字后面必须加L(或l)
因为浮点型尾数部分可能丢失,造成精度损失,所以小数都是近似值
浮点型默认是double型(因为精度更高),声明float型号要加f或Fint a = 10L // 错误,因为大数10L不能放进小int里
double b = 1.1F // 正确,因为小数1.1F可以放进大double里
浮点数使用陷阱:
所以含有运算的浮点数进行判断时应该让两个数的差值的绝对值小于某个精度。
如果是查询到的小数或者是直接赋值,则可以判断相等。char c = 97;
字符类型都需要用单引号引起来,使用了双引号表示的是字符串
char字符本质存的就是字符所对应的Unicode数字,默认输出是字符,也可以进行数据类型转换输出数字char c = 'a';
System.out.println((int)c);
因为字符存的是数字,所以相加是存放的数字相加
如果相加后的数字还是存为char类型,那就默认输出ASCII码,否则就是单纯的数字相加。
双引号的字符串相加才是拼接!
相互计算,大包容小
不同类型变量在计算的时候会先变成最大的类型,再计算,所以n1+1.1(1.1默认类型是double)的和的数据类型是double,所以定义float类型会出错。只能用大数据类型接收小的
byte直接看数值大小
char,short,byte三个类型不能自动转换,但是可以计算,先统一转化为int类型
即使是byte+byte,结果也是int类型!!!
字符串类型转其他,需要调用包装类,不能直接(int)转
JAVA没有整除这个专门的语法,除法结果是小数还是整数完全取决于参与运算的数据类型。
double b = 10 / 4 //结果是2.0 10和4产生结果2 2是double类型 所以结果2.0
b = ++a // 先++再赋值
b = a++ // 先赋值再++
区别在于先赋值还是先++,先赋值会先调用一个临时变量tmp存放原始值,先++则是先+1再调用临时变量
&&短路与:如果第一个条件为 false,则第二个条件不会判断,效率高
& 逻辑与:不管第一个条件是否为 false,第二个条件都要判断,效率低int x = 5;
if(x++ == 6) // 先比较再++,所以是False
4. 赋值运算符
byte b = 2;
b += 3;// 相当于 b = (byte)(b + 3)
b++; // 相当于 b = (byte)(b + 1)
条件为真,返回表达式1(一真大师)
只能由英文字母,数字,_ 和$这俩特殊字符组成
规范:
1)包名:多单词组成时所有字母都小写:aaa.bbb.ccc //比如 com.hsp.crm
2) 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz [大驼峰]
比如: TankShotGame
3) 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz [小
驼峰, 简称 驼峰法]
比如: tankShotGame
4) 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
比如 :定义一个所得税率 TAX_RAT
八进制和十六进制转二进制同理
二进制转八进制/十六进制:
从低位开始,将二进制数每三/四位一组,转成对应的八进制/十六进制数即可
八进制和十六进制转二进制反过来即可。
for循环的执行顺序
先初始化,再判断条件,再执行语句,最后再进行变量迭代(自增等)



