基础

//单行注释

/*
多行注释
*/

/**
*JavaDoc:文档注释
*@Description helloworld
*/

标识符

  • 以字母,$,或_开始
  • 首字母以后可以是字母,$_,数字组合
  • 不能使用关键字作为变量名(自个查)
  • 大小敏感
  • 可以用中文(笑)

数据类型

  • 强类型语言(安全性好,速度低)
    • 要求变量的使用要严格符合规定,变量都必须先定义后才能使用
  • 数据类型分为两大类
    • 基本类型(primitive type)
      • 整数(byte 1, short 2, int 4, long 8)
      • 浮点(float 4, double 8)
      • 字符(char 2)
      • boolean 1bit
    • 引用类型(reference 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;

自动类型转换 低到高

无需操作,直接赋值,自动进行

  1. 不能对布尔值进行转换
  2. 不能把对象类型转换为不相干的类型
  3. 把大容量转换到小内存,要强制转换
  4. 转换有可能出现内存溢出或精度问题
  5. 若计算溢出,转换成更大的类型时,因为在转换之前已经出现问题了,需要强制转换

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 下面)
    • *为通配符可以导入包内所有的类

将相同类型的类放在同一个包下,方便管理

  1. 使用同一个包下的其他类,直接使用即可
  2. 但是要使用其他包下的类,必须import

javaDoc

  • javadoc命令是用来生成自己API文档的
  • 参数信息
    • @author
    • @version
    • @since 需要最早使用的jdk版本
    • @param 参数名
    • @return 返回值情况
    • @throws 异常抛出情况
/**
* @author mosquito
* @version 1.0
* @since 1.8
*/