1. 注释
- 单行注释 //注释
- 多行注释 /* 注释 */
- 文档注释 /** 注释 */
2. 标识符命名规则 (与 js 规则一样)
-
标识符可以含有 字母, 数字, 下划线_, (*注意此处相较于 c 语言多出一个符)
-
不能以数字开头
-
不能是java中的保留字和关键字
-
java也采用了 unicode 编码方式,所以字母也可以是中文
-
建议采用驼峰法:
-
-首字母小写,每个单词开头字母大写,其余均小写
3.基本数据类型
3.1 整数型
类型 | 长度字节 | 位数 | 取值范围 | 备注 |
---|---|---|---|---|
byte类型 | 1个字节 | 8位 | -2^7 - 2^7-1 | -128 - 127 |
short类型 | 2个字节 | 16位 | -2^15 - 2^15-1 | -32768-32767 |
int 类型 | 4个字节 | 32位 | -2^31 - 1~2^31-1 | |
long 类型 | 8个字节 | 64位 | -2^63 - 1~2^63-1 | 末尾加L |
注解:
-
整型的范围与运行java代码的机器无关,这一点和C、C++不同,保证了代码在不同的平台之间的可移植型。
-
int最为常用,char和short主要用于特定场合,比如底层处理文件、处理需要占用大量存储空间的数组。要表示的数据超过int类型的范围时使用长整型int.
-
通常long类型后通常加字符“L”,例如 long a = 123L ; , 但是"L"理论上不区分大小写,但若写成小写的"l",容易与数字"1"混淆,不容易分辩,所以最好写成大写的“L”
3.2 浮点型
类型 | 长度字节 | 位数 | 取值范围 | 备注 |
---|---|---|---|---|
float 类型 | 4字节 | 32位 | 大约±3.402 823 47E+38F(有效位为6~7位) | 末尾加f |
double 类型 | 8字节 | 64位 | 大约±1.79769313486231570E+308(有效位为15位) |
注解:
-
默认浮点数使用类型为double, 其后可加字符“d”,"d"理论上不区分大小写
-
所以为了区分,通常浮点型末尾末尾加字符”f”, 例如 float a =3.1415926535f ;, "f"理论上不区分大小写
-
float 和 double 不能用来表示精确的值,如不能用来表示货币等。实际使用 BigDecimal 类
-
科学记数法: 结尾的"E+数字"表示E之前的数字要乘以10的多少次方。比如3.14E3就是3.14 × 103=3140,3.14E-3 就是 3.14 x 10-3 =0.00314
3.3 字符型
类型 | 长度字节 | 位数 | 取值范围 | 备注 |
---|---|---|---|---|
char 类型 | 2个字节 | 16位 | \u0000 - \uffff | 0 - 65535 |
注解:
-
Java的char类型可以表示标准的ASCII,
-
char类型还可以表示一个Unicode字符,代表一个单一的16位 Unicode 字符
-
想要打印 Unicode 字符 可以使用 “\u”+数字
-
字符和字符串是两种不同的数据类型。char类型使用单引号''表示,单引号里面只能有一个字符。字符串用双引号""表示,双引号中可以有很多字符。
3.4 布尔型
类型 | 长度字节 | 位数 | 取值范围 | 备注 |
---|---|---|---|---|
boolean 类型 | 0字节 | 1 位 | true or false | 默认值是 false |
注解:
-
JAVA规范中没有定义boolean类型的大小, 理论上组需要1bit 即可,但是编译时有定义:JVM规范第2版 3.3.4节:
- 单个的boolean 类型变量在编译的时候是使用的int 类型,4个字节(32bit)
- 但如果是boolean数组在编译的时候是作为byte array来编译的,每一个元件占1字节(8 bits)
3.5 对比总结
-
byte 作用类似于 c++中的char,但又无法直接存字符
-
char 大小与c++不同,多了一个字节,2字节可存 unicode, 所以可以是中文
-
java 无 unsigned 类型
-
java 常量的需要加修饰符 final,相当于c++中的 const
3.6 类型转换
类型 | byte => short =>int => long => float => double |
---|---|
优先级 | 低>>>>>>>>>>>>>>>>>>>>>>>>>>>>>高 |
低可以直接转高,但是高转低会出现溢出和丢精度的现象
4.变量
-
类变量
-
实例变量
-
局部变量
public class Person { //类变量: 需要关键词 static static int population = 1; //实例变量:从属于对象; 如果不初始化,会赋予默认值0, 0.0, false, null String name; int age; //mian方法 public static void main(String[] args) { //局部变量: 声明后必须初始化值,不然报错 /*int i; System.out.println(i);*/ int i; i=10; System.out.println(i); /* * 实例变量需要先创建一个对象 * 实例变量如果不复赋值则为默认值 */ /* * 创建对象 * 变量类型 变量名 = new 构造函数; */ Person person = new Person(); System.out.println(person.name); System.out.println(person.age); person = null; /* * 类变量的调用 * 类变量无需对象就可以调用 * 相当于c++中的静态成员,整个类共用一个 */ System.out.println(population); } }
4.1 变量命名规则
- 所有变量、方法、类名: 见名知意
- 类名 : 首字母 大写 和驼峰原则: Man, GoodMan
- 类成员变量、局部变量: 首字母 小写 和驼峰原则 : monthSalary
- 常量 : 大写字母和下划线 : MAX_VALUE
- 方法名 : 首字母小写和驼峰原则 : run(), runRun0