Java基础语法

1、注释、标识符、关键字

注释

​ //单行注释

​ /多行
​ 注释
/

​ /*文档注释/

关键字

KeyWord

标识符

  • 类名、变量名、方法名 都是标识符

    • 标识符由字母 、美元符$ 、下划线_ 、数字构成

    • 标识符只能以 字母美元符$或者下划线_ 开头

    • 标识符不能是关键字

    • 标识符大小写敏感

2、数据类型

强类型语言

  • 要求变量的试用严格符合规定,所有变量都必须先定义后才能使用 Java、C

弱类型语言

Java的两大类数据类型

基本类型 (Primitive Type)

  • 数值类型

​ 整数类型:byte(1字节)、short(2字节)、int(4字节)、long(8字节)
​ 浮点类型:float(4字节)、double(8字节)
​ 字符类型:char(2字节) (字符串,String不是关键字,是一个类)

  • Boolean 类型:true、false (只占1位)(常用变量名 flag)

引用类型 (Reference Type)

  • 类、接口、数组

拓展

  • int 类型 二进制前缀 0b 八进制前缀 0 十六进制前缀 0x
1
2
3
4
5
6
7
8
int i = 0b10;    //二进制数
int i1 = 010; //八进制数
int i2 = 10; //十进制数
int i3 = 0x10; //十六进制数
System.out.println(i); //2
System.out.println(i1); //8
System.out.println(i2); //10
System.out.println(i3); //16
  • float、double 存在存储误差 最好完全避免用浮点数进行比较
1
2
3
4
5
float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d); //false
System.out.println(f); //0.1
System.out.println(d); //0.1

3、类型转换

  • 不同类型的数据要转换为同一类型再进行计算
  • 转换时要避免内训溢出
1
2
表示范围 低 ——————————————————————————————————————> 高
byte1,short2,char1 -> int4 -> long8 -> float4 -> double8
  • 强制类型转换 范围高到低 如:short i = (short) int j 会造成精度丢失
  • 自动类型转换 范围低到高 如:int k = short l

操作大数的时候,注意溢出问题

JDK7新特性,数字之间可以用下划线分割

1
2
3
4
int money = 10_0000_0000;
int years = 20;
int total = money*years; //溢出
long total = ((long)money)*years; //先把一个数转换为long 这样右侧计算时不会溢出

4、变量、常量

变量作用域

  • 类变量 (static修饰)
  • 实例变量
  • 局部变量

常量

  • 一种特殊的变量,它的值初始化后在程序的运行过程中不允许被改变
1
2
final 常量名 - 值;
final double PI = 3.14;
  • 常量名一般用大写字母

命名规范(提高代码的可读性)

  • 变量、方法、类名:英文意义
  • 类成员变量:驼峰命名法
  • 局部变量:驼峰命名法
  • 常量:大写字母和下划线
  • 类名:首字母大写的驼峰命名法
  • 方法名:驼峰命名法

5、运算符

Java支持的运算符

  • 算数运算符:加+ 减- 乘* 除/ 取余% 自增++ 自减–
1
2
3
4
//字符串会将+连接的变量变为字符串
int a = 10, b = 20;
System.out.println(""+a+b); //1020 先变字符串后相加
System.out.println(a+b+""); //30 先相加后变字符串
  • 赋值运算符:=
  • 关系运算符:大于> 小于< 大于等于>= 小于等于<= 等于== 不等于!= instanceof
  • 逻辑运算符:与&& 或|| 非!
  • 位运算符:按位与& 按位或| 按位异或^ 按位取反~ 右移一位>> 左移一位<< >>>
1
2
//2*8怎么做最快?
System.out.println(8<<1); //8左移1位 或者2左移3位
  • 条件运算符:A|B ? A : B
1
2
3
4
//A&&B  若前者为false 则后者不会进行判断
int c = 5;
boolean d = (c<4)$$(c--<4);
System.out.println(d); //false
  • 扩展赋值运算符:+= -= *= /=

Math类

1
2
//幂运算 2^3  2*2*2 = 8  很多运算,会以工具类来操作。
double pow = Math.pow(2, 3); //2的3次方

6、包机制、JavaDoc

  • 包 —— 文件夹 用于区别类名的命名空间
1
package pkg1.pkg2.pkg2;
  • 一般用公司域名的倒置作为包名
  • “import” 导入包
1
2
import pkg1.pkg2.pkg3.classname;  //导入指定类
import pkg1.pkg2.pkg3.*; //导入这个包里所有的类

JavaDoc

  • javadoc命令是用来生成自己的API文档的
1
javadoc -encoding UTF-8 -charset UTF-8 name.java

​ 生成网页文档文件 indexs

  • 文档注释参数信息
    • @author 作者
    • @version 版本号
    • @since 指明需要最早使用的jdk版本
    • @param 参数名
    • @return 返回值情况
    • @throws 异常抛出情况