1、标识符
字母、数字、下划线、美元符号的任意组合
注:
- 不能以数字开始
- 不能是java的关键字
- java区分大小写
作用: 赋给类、方法或变量等取名字
书写规范:
- 类名首字母大写以及遵循驼峰原则
- 常量大写字母和下划线
- 其余都要首字母小写和驼峰原则(变量、方法)
2、关键字
编译器有提示
例: for、if、publice、static等
3、变量和常量
3.1 变量
在进行计算时,用来存放数据、接收数据
实际上就是一个带名字的存储空间
3.1.1 变量的语法规则:
数据类型 + 变量名 = 变量值 {作用域}
3.1.2 数据类型:
java是一种强数据类型的语言,所以每个变量必须有明确的数据类型
3.1.3 作用域:
分为全局变量 和 局部变量
全局变量: 直接定义在类体中,在当前类中的任意位置都可以直接使用
局部变量: 定义在局部代码中(方法中、流程控制语句中)——只能在当前代码段中生效
局部变量使用的注意事项:
(1)局部变量如果没有初始化赋值,不能用于计算
(2)在同一作用域中,不能出现重复的同名变量
3.2 常量
不可改变的量,一般我们使用常量来定义一些状态值
需要在变量前加final关键字,来声明一个常量
final int STATE_NORMAL = 0;
4、java中的八大基本数据类型
4.1 复合数据类型
数组、枚举、自定义类型
4.2 基本数据类型
整数、小数、布尔值、字符
4.2.1 整型
int(常用)、byte、short、long(L)
注: 用long的时候,建议在数值数据后加L
4.2.2 小数(浮点数)
float、double(常用)
区别: 在于精度不同——保留的小数位不同
注: (1)float在使用时,数值后面要加f
(2) 浮点数不能用于需要精确计算的场合(比如:涉及金钱计算)
4.2.3 布尔值
true/flase
4.2.4 字符类型
char 指单个字符,如’A’ ‘B’ ‘1’ ‘您’
注: 实际开发过程中使用最多的是字符串
String的底层是由char编写的
String str = "xialu123";
char str1 = "A";
char str2 = 97; // a
注: 单个字符用单引号,字符串用双引号 char c = ‘A’ ; String str1 = “abcd”;
5、运算符
5.1 常见运算符及其使用
注:
(1)java中,计算表达式的结果需要变量来接收,否则编译报错
(2)两个整数相除,不管结果如何,得到的还是一个整数(结果不会四舍五入)
5.1.1 一元运算符:
++ –
前++: 先自加,后将值赋给变量
后++: 先将值赋给变量,后自加
前 - -: 先自减,后将值赋给变量
后 - -: 先将值赋给变量,后自减
5.1.2 赋值运算符
int x,y;
x = y = 10;
5.1.3 复合赋值运算符
+= -= /= *= %=
5.1.4 关系运算符
> < = >= <= ==
结果为boolean类型(true/flase)
注: 字符比较要用equals()方法
public static void main(String[] args) {
String password_db = "123456";
Scanner scanner = new Scanner(System.in);
String password = scanner.nextLine();
if (password.equals(password_db)) {
System.out.println("密码正确");
} else {
System.out.println("密码错误");
}
scanner.close();
}
拓展: scanner工具类 nextXXX() 从键盘获取各种类型数据
例:nextInt() 获取整型
nextLine() 获取字符串
5.1.5 逻辑运算符
& | && || !
&:与
|:或 ——这&和|,两边都要运算
&&:逻辑与
||:逻辑或 ——这&&,左边不成立,右边就不用算了;这||,左边为true,右边就不用算了
这& |与&& ||区别是运算效率问题
5.1.6 三目运算符
格式:布尔运算 ?值1 :值2
//例
int result = a > b ? a : b;
int result = a % b == 0 ? a/b : a*b;
5.2 运算符的优先级问题
注: &&(与) 比 ||(或) 优先级高
5.3数据类型转换
5.3.1 自动转换(小—>大)
又称隐式转换
注:
-
不用书写代码,有系统自动完成的类型转换 —— 但是byte,short,char这三者,不管怎么组合运算得到的都是int类型
-
String类型可与任何数据类型进行+运算,只不过此时其他类型都先转成字符串,然后进行拼接操作
String str=“28”; int x=28 ; String s=str+x; // s=2828,其中x会先被转成字符28
-
布尔类型和其他类型不能相互转换
-
复合赋值运算符也会进行自动转换
//例1 short s=10; s=s+1; // 此处会报编译错误,因为 s+1是int类型 //例2 short s1=10; //编译通过, 此时 s1+1是得到了一个int,但是此时为复合赋值运算,java //编译器会多做一步,将得到的int转成 short s1+=1;
5.3.2 强制转换(大—>小)
又称显示转换
格式: int x=10; short y = (short) x
注:也不是什么时候都可以实现任意转换的(使用不当,可能会出现一些问题)
1、转换前的数据类型与转换后的数据类型兼容
String str = "1";
int x = (int)str; //编译报错
2、浮点数强转整型会造成精度丢失
double d = 12.4;
int i = (int)d; //i = 12
3、大—>小,可能会造成数据溢出
int x = 130;
byte b = (byte)x; //b = -126
6、工作空间
eclipse: 统一将多个项目存放在同一个文件夹,进行项目的统一管理
idea : idea中时提倡一个项目就是一个工作空间,然后一个项目下面有多个模块
7、注释
7.1 文档注释 /***/
注释再类、方法上,解释该类或方法是做什么的
可以通过java Doc命令生成对应的api文档手册
注:
- 类上的文档注释: 要有作者、创建时间、类是做什么的
- 方法上的文档注释: 要解释方法是做什么的、参数的含义、会发挥哪些数据类型
7.2 文本注释
/ * 多行 * /
//单行
写给自己或看源码的人,放在代码块上