注释
单行注释,每行以 // 开头
多行注释,被/* */包围的一段注释
文档注释,与javadoc相关
public class 注释hello {
public static void main(String[] args) {
//输出一个Hello,World
System.out.println("Hello,World");
}
//单行注释
//1000
//1001
//1002
//1003
//多行注释 可注释一段文字 /* */
/*
* 1000
* 1001
* 1002
* 1003*/
//JavaDoc 文档注释 /** */
/**
* @Descripstion Hello
* @Author zhaoguan*/
}
标识符与关键字
Java的所有组成部分都需要名字。类名,变量名以及方法名都被称为标识符。
标志符只能以字母,美元符号($),下划线(_)开头。
Java中有很多的关键字,这些关键字不能用作变量名或方法名。
Java对大小写很敏感,字母相同,大小写存在不同的标识符不同。
可以使用中文名或拼音做标识符,但这种方法使代码变得极不规范,避免使用。
数据类型
Java是一种强类型语言,所有变量必须先定义后使用。
基本数据类型
对于long,一般在数字后加"L"用于区分。
long number=30L;
注意,String不是关键字,是一个类。
float类型,要在数字后加”F“;
float number=0.1F;
引用数据类型
包括类,接口,数组。
一些拓展
进制
二进制0b开头 八进制0开头 十六进制0x开头
浮点数比较问题
Java中浮点数存在舍入误差
如
float num1=o.1f;
double num2=1.0/10;
System.out.println(num1==num2);
输出结果为false
最好完全避免浮点数进行比较
因此在银行系统开发中要避免使用浮点数,此时使用数学方法类BigDecimal。
字符拓展
字符有Unicode编码表,有其对应数字和Unicode编码
如‘a’强制类型转换的结果为97
其Unicode编码为\u0061
char s1='a';
int s2=(int)'a';
char s3='\u0061';
类型转换
public class Demo01 {
//定义一个类变量
static int salary=2500;
//定义一
// 定义两个实例变量
String name;
int age;
public static void main(String[] args) {
//定义一个局部变量
int i=10;
//局部变量
System.out.println(i);
//实例变量
Demo01 demo=new Demo01();
System.out.println(demo.name);
System.out.println(demo.age);
//类变量
System.out.println(salary);
}
}
强制类型转换
取值范围大的向小的转换
自动类型转换
在做运算时取值范围小的向范围大的自动转换
int num1=10_0000_0000;
int years=20;
int num2=num1*years;
System.out.println(num2);//num2太大超出范围,发生溢出
System.out.println((long)num2);//num2已经不是所希望得到的值,此时进行强制类型转换,无济于事
System.out.println(num1*(long)years);//先将years强制类型转换
变量作用域(简单介绍)
public class Demo01 {
//定义一个类变量
static int salary=2500;
//定义一
// 定义两个实例变量
String name;
int age;
public static void main(String[] args) {
//定义一个局部变量
int i=10;
//局部变量
System.out.println(i);
//实例变量
Demo01 demo=new Demo01();
System.out.println(demo.name);
System.out.println(demo.age);
//类变量
System.out.println(salary);
}
}
类变量
- 前加static关键字的变量
- 在方法外,类内进行声明
- 作用域与生存期为整个类
- 使用方法与实例变量不同,可在类内直接使用
实例变量
- 在方法外,类内进行声明
- 作用域与生存期为整个类
- 从属于对象
- 如果不对实例变量进行初始化,所有数值类型默认为0或0.0;字符型默认u0000;布尔型默认flase;出基础类型外,其余默认值为null。
- 使用方法与C语言中结构体变量内定义的变量类似,如上。
局部变量
生存期与生存期在定义该变量的方法内
常量
常量是一种特殊的变量,常量一旦被定义之后不能再改变
定义常量使用 final 关键字
一些命名规范
驼峰原则 命名规范,组合词命名第一个词小写,后面的词大写,如月薪monthSalary
常量全部字母大写,以下划线分隔组合词
类名首字母大写,驼峰原则
数学类的使用
在Java中“^”运算符并不表示幂运算,表示异或,因此,我们不能通过使用该运算符求幂
我们需要通过使用Math类中的pow方法进行实现
不同于C语言中引入头文件的方式,在Java中我们通过Math.pow(x,y)方式使用,如计算3的2次幂
int number=Math.pow(3,2);
System.out.println(number);
逻辑运算符中的短路运算
对x&&y进行运行时,若x结果为false,则y不再被运行
int x = 1;
int y = 2;
System.out.println(x == 3 && y++ < 1);
//x == 3的值为flase,则y++不被运行,y值仍为2
System.out.println(y);
位运算符
对二进制数进行操作
& | ^ ~
A | 0011 1100 |
---|---|
B | 0000 1101 |
A&B | 0000 1100 |
A|B | 0011 1101 |
A^B | 0011 0001 |
~B | 1111 0010 |
左移<< 右移>>
某数变为二进制后,对所有1进行移动
左移 该数*2
右移 该数/2
字符串连接符
“+”可作为字符串连接符将前后字符串连接
使用字符串连接时,若加号左右存在基本数据类型,则可能被转换为字符串进行拼接
int a=10;
int b=30;
System.out.println(" "+a+b);
System.out.println(" "+b+a);
此时,第一次输出结果为1030,第二次为3010
若“ ”位置改变,情况不同
System.out.println(a+b+" ");
//a与b先算数相加,再转换为字符串
此时,输出结果为40
三元运算符
形式如 x?y:z
如果x==true,结果为y,否则结果为z。
int score = 50;
String type = score > 60 ? "及格" : "不及格";
包机制
.*通配符
在使用import导入包时,结合.*可导入该包中所有的类
JavaDoc
JavaDoc用于生成API文档
JavaDoc基于文档注释
/**
*@author 作者名
*@version 版本号
*@since 指明需要最早使用的JDK版本
*@param 参数名
*@return 返回值情况
*@throws 异常抛出情况
*/
利用控制台生成API文档
在代码文件夹打开控制台,输入指令
javadoc -encoding UTF-8 -charset UTF-8 文件名.java
文件夹中生成文档,打开index.html文件查看
利用IDEA生成API文档
在IDEA中点击Tools,点击Generate javadoc,点击Generate