2020/03/11
注释
注释只存在于源码中,不会出现在字节码中,因为编译器在编译的时候会跳过注释语句。
- 单行注释:“//”开头,“//”后面的所有内容均为注释内容。
- 多行注释:“/**/”左右平分,左面开始,右面结尾。两者之间的内容为注释内容。注:多行注释不能嵌套使用。
- 文档注释:“/**”开头,“*/”结尾,会自动生成API。
//单行注释
/*多行注释!
多行注释!
多行注释!
*/
/**文档注释*/
标识符
标识符是用来给变量、类、方法以及包进行命名的。
- 标识符必须以字母、下划线、美元符号$开头。
- 标识符其他部分可以是字母、下划线“_”、美元符号“$”和数字在的任意组合。
- java标识符大小写敏感且长度无限制。
- 标识符不可以是java的关键字。
标识符的使用规范
表示类名的标识符:每个单词的首字母大写,如GoodBoy。
表示方法和变量的标识符:第一个单词小写,从第二个单词开始首字母大写–“驼峰原则”。
注:java采用的是Unicode标准的国际字符集,所以,字母不仅仅包括英文,还有汉字等等,但不建议用汉字来定义标识符。
public class TestIdentifer{
public static void main(String[] ags){
int a123 = 0;
int 123abc = 2;//数字不能开头
int $a = 9;
int _a = 9;
int #a = 9;int -a = 9;//开头只能由“字母”、“_”、"$"开头
int 年龄 = 18;//可以使用汉字,但一般不建议
int int = 2;//int为java关键字,不能设为关键字
}
}
2020/03/12
java中的关键字/保留字
变量
- 所有的变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线——MAX_VALUE
- 类名:首字母大写和驼峰原则
- 方法名:首字母小写和驼峰原则
变量的本质
变量本质代表一个“可操作的存储空间”,空间的位置是一定的,但是里面的值不确定。通过变量名来访问“对应的存储空间”,从而操作里面存储的值。
变量的声明
格式:数据类型 变量名 [=初始值] [,变量名[=初始值]…];
[]中的内容可有可无
double salary;
long earth;
int ages;
ages = 18;//变量只有在进行初始化之后,才可以使用
int i,j;//两个变量的类型都是int(一行中声明两个变量,逐一声明可以提高程序的可读性)
int age = 18;
double e = 2.434;//变量的声明和初始化放到同一行中
//double 8个字节
//long 8个字节
//int 4个字节
每个变量都有类型,类型是基本类型或者引用类型。
变量名必须是合法的标识符。
变量声明是一条完整的语句,所以每一个声明必须以分号结束。
变量的分类
局部变量:方法或语句块内部定义的变量,生命周期是从声明位置开始到方法或语句块执行完毕为止。
成员变量(实例变量):方法外部、类的内部定义的变量,从属于对象,生命周期伴随对象始终。
数据类型 | 实际值 |
---|---|
int | 0 |
double | 0.0 |
char | ‘\u0000’ |
boolean | false |
静态变量(类变量):使用static定义,从属于类,生命周期伴随类始终,从类加载到类卸载。
public class Test{
int a;//成员变量,如果没有赋值,会自动进行初始化,如上表格所示。此时a=0.
static int size;//静态变量,从属于类,生命周期最长。
public static void main(String[] args){//这是一个方法,方法里定义的变量是局部变量的一种
int age;
int a;
int b=a+1;//局部变量必须先声明后赋值,当a没有初始化时,程序运行时会报错
int i,n=5;
for(i=0;i<n;i++){//这是一个语句块,语句块里定义的变量是局部变量的一种
int temp;//temp只在for循环里面有效
}
}
}
常量
常量指的是一个固定的值。eg:1、2、‘a’、true等。
在java语言中,常用关键字final来定义一个常量,常量一旦被初始化后不能再更改其值。
//声明格式:
final type varName = value;
public class Test{
public static void main(String[] args){
int age = 18;
String name = "lang";
name = "狼";//可以重新赋值
final String MAX = "ball";//符号常量
MAX = "qiu";//程序会报错,因为name0是常量
}
}
数据类型
基本数据类型
数值型:
整数类型——byte、short、int、long(1、2、4、8字节)
浮点类型——float、double(4、8字节)
字符型——char(2字节)
布尔型——boolean(1位)
引用数据类型(4字节)
类——class
接口——interface
数组
整型变量/常量
类型 | 占用存储空间 | 表数范围 |
---|---|---|
byte | 1字节 | -2^7~ 2^7 |
short | 2字节 | -2^15~ 2^15 |
int | 4字节 | -2^31~ 2^31 |
long | 8字节 | -2^63~ 2^63 |
整型常量的四种表示形式
十进制整数,eg:99
八进制整数,要求以0开头,eg:015
十六进制数,要求以0x或0X开头,eg:0x15
二进制数,要求以0b或者0B开头,eg:0b01101010
public class Test{
public static void main(String[] args){
//测试整型变量
int a = 15;
int b = 015;//以0开头是八进制
int c = 0x15;//以0x开头是16进制
int d = 0b1101;//以0b开头是二进制
//a = 15;b = 13;c = 21;d = 13;
byte age = 300;//byte范围是-128——+127,300超范围会报错
long h = 88888888;//在int表示范围内,
long j = 88888888888L;//不加L编译错误,已经超过int表示的范围
}}
浮点型变量/常量
类型 | 占用存储空间 | 表数范围 |
---|---|---|
float | 4字节 | -3.403E38~3.403E38 |
double | 8字节 | -1.798E308~1.798E308 |
常见的两种表现形式:
十进制数形式,eg:3.14
科学计数法形式,eg:314e2(x100)、314E2、314E-2(➗100)
float类型是单精度类型,尾数可以精确到7位有效数字,有时很难满足要求。而double类型的数值精确度约是float类型的两倍,又被称作双精度类型。
浮点型常量默认类型也是double。
import java.math.*;
public class Test{
public static void main(String[] ags){
//float a = 3.14;//3.14是浮点类型,默认类型是double,所以此时程序会报错,因此在后面增加f
float a = 3.14f;
double c = 628;
double d =6.28e2;//c和d的数值是相等的
//浮点数是不精确的,一定不能用于比较。如果非要比较,就使用java.math包下面的两个类:BigInteger和BigDecimal,这两个类可以处理任意精度的整数运算和浮点运算。
float f = 0.1f;
double g = 1.0/10;
System.out.println(f==g);//结果是false
//浮点运算
BigDecimal bd = BigDecimal.valueOf(1.0);
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
bd = bd.subtract(BigDecimal.valueOf(0.1));
System.out.println(bd);//0.5
System.out.println(1.0-0.1-0.1-0.1-0.1-0.1)//0.5000000000000001
BigDecimal bd2 = BigDecimal.valueOf(0.1);
BigDecimal bd3 = BigDecimal.valueOf(1.0/10.0);
System.out.println(bd2.equals(bd3));//true
}
}