基础
//单行注释
/*
多行注释
*/
/**
*JavaDoc:文档注释
*@Description helloworld
*/
标识符
- 以字母,
$,或_开始 - 首字母以后可以是字母,
$,_,数字组合 - 不能使用关键字作为变量名(自个查)
- 大小敏感
可以用中文(笑)
数据类型
- 强类型语言(安全性好,速度低)
- 要求变量的使用要严格符合规定,变量都必须先定义后才能使用
- 数据类型分为两大类
- 基本类型(primitive type)
- 整数(byte 1, short 2, int 4, long 8)
- 浮点(float 4, double 8)
- 字符(char 2)
- boolean 1bit
- 引用类型(reference type)
- 类
- 接口
- 数组
- 基本类型(primitive type)
初始化 long 类型时可以在其数值后加 L 以区分, float 加 F
int 中 二进制使用0b 开头,八进制使用0开头,十六进制使用0x开头
最好避免使用浮点数进行比较
类型转换
- 由于java是强类型语言,所以要进行有些运算的时候需要用到类型转换
- 低到高顺序
graph LR;
A[byte,short,char]-->B[int]-->C[long]-->D[float]-->E[double]
- 运算中,不同类型的数据先转化为同一类型,然后进行运算
强制类型转换 高到低
int i = 128;
byte b = (byte)i;
自动类型转换 低到高
无需操作,直接赋值,自动进行
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 把大容量转换到小内存,要强制转换
- 转换有可能出现内存溢出或精度问题
- 若计算溢出,转换成更大的类型时,因为在转换之前已经出现问题了,需要强制转换
int 可以使用
_分割较大数字(jdk7特性)int money = 10_000_000;
变量
- 变量类型
- 变量名
- 作用域
变量作用域
当一个变量被声明在类下面 变量就叫做字段 或者属性、成员变量、Field
所以其作用域就是从其声明的位置开始的整个类
类变量
- 使用static 修饰的在类下声明的变量
实例变量
- 实例化后对象的属性
局部变量
- 声明在方法内的变量
public class Variable{
static int allClicks=0; //类变量:从属于类,和类一起产生一起消失
static double salary =2500;
String name; //属性:实例变量:从属于对象;如果不进行初始化,会自动赋予这个类型的默认值
int age;
public void method(){ //其他方法
int i = 0; //局部变量
}
public static void main(String[] args){
int i = 10; //局部变量必须声明和初始化
Variable wtf = new Variable();
System.out.println(i);
System.out.println(wtf.age);
System.out.println(salary);
}
}
访问变量的原则仍然是就近访问,且方法内会优先传入的参数
常量
- 初始化后不能再改变的值
- 常量名一般使用大写字符
- 使用 final 声明
final PI = 3.14;
修饰符不区分先后顺序
static final double PI = 3.14; final static double PI = 3.14;
运算符
自个查吧
很多运算,使用工具类来操作,如Math
!=
instanceof字符串连接符
System.out.println(""+a+b);""写在前会优先转换为字符串再连接,若写在后则先相加再转换为字符串
包机制
- 为了更好地组织类,java提供了包机制,用于区别类名的命名空间
- 常使用公司域名倒置作为包名
com.baidu.xxx - 包语句的语法格式
package pkg1[.pkg2[.pkg3]] - 使用
imort导入包的内容,才能使用某一个包的成员(必须放在package 下面)- *为通配符可以导入包内所有的类
将相同类型的类放在同一个包下,方便管理
- 使用同一个包下的其他类,直接使用即可
- 但是要使用其他包下的类,必须import
javaDoc
javadoc命令是用来生成自己API文档的- 参数信息
- @author
- @version
- @since 需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
/**
* @author mosquito
* @version 1.0
* @since 1.8
*/