Java基础语法
注释
// 单行注释
/*
多行注释
多行注释
多行注释
*/
/**
* 文档注释
* 文档注释
* 文档注释
*/
标识符
标识符规则:
- 所有的标识符都应该以字母(A-Z或者a-z)、美元符号($)、下划线(_)开始
- 首字符后可以是字母(A-Z或者a-z)、美元符号($)、下划线(_)、数字组合
- 不能使用关键字作为变量名或方法名
- 标识符是大小写敏感的
- 可以使用中文命名,但是不建议这样去使用,也不建议使用拼音
合法标识符举例:age、$salary、_value、_123
非法标识符举例:123abc、-salary、#abc
关键字:
1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|
abstract | assert | boolean | break | byte |
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | goto | if | implements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | strictfp | short | static | super |
switch | synchronized | this | throw | throws |
transient | try | void | volatile | while |
数据类型
Java是强类型语言,所有变量都必须先定义后才能使用,编译慢但是安全。
Java两大数据类型:
-
基本类型(数值类型&boolean类型,共8个)
数值类型- 整数类型
- byte占1个字节:-128-127
- short占2个字节:-32768-32767
- int占4个字节:-2147483648-2147483647
- long占8个字节:-9223372036854775808L-9223372036854775807L
- 浮点类型
- float占4个字节
- double占8个字节
- 字符类型
- char占2个字节(String不是基本类型,是类类型)
boolean类型:占1位,值只有true和false
// byte System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE); System.out.println("包装类:java.lang.Byte"); System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE); System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE); System.out.println(); // short System.out.println("基本类型:short 二进制位数:" + Short.SIZE); System.out.println("包装类:java.lang.Short"); System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE); System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE); System.out.println(); // int System.out.println("基本类型:int 二进制位数:" + Integer.SIZE); System.out.println("包装类:java.lang.Integer"); System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE); System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE); System.out.println(); // long System.out.println("基本类型:long 二进制位数:" + Long.SIZE); System.out.println("包装类:java.lang.Long"); System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE); System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE); System.out.println(); // float System.out.println("基本类型:float 二进制位数:" + Float.SIZE); System.out.println("包装类:java.lang.Float"); System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE); System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE); System.out.println(); // double System.out.println("基本类型:double 二进制位数:" + Double.SIZE); System.out.println("包装类:java.lang.Double"); System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE); System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE); System.out.println(); // char System.out.println("基本类型:char 二进制位数:" + Character.SIZE); System.out.println("包装类:java.lang.Character"); // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台 System.out.println("最小值:Character.MIN_VALUE=" + (int) Character.MIN_VALUE); // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台 System.out.println("最大值:Character.MAX_VALUE=" + (int) Character.MAX_VALUE);
- 整数类型
-
引用类型
- 类、接口、数组
数据类型扩展
-
整数扩展
二进制:0b(0b3) 八进制:0(010) 十进制:(10) 十六进制:0x(0x10)
-
浮点数扩展
//银行业务表示钱?BigDecimal 大数据类型(数据工具类中的) //float double 有限 离散 舍入误差 大约 接近但不等于 //最好不要用浮点数进行比较 float f = 0.1f; //0.1 double d = 0.1; //0.1 System.out.println(f == d);//false float f1 = 21221221563525425f;//随便输入一个很大的数 float f2 = f1 + 1; System.out.println(f1 == f2);//true
类型转换
- 强制转换
- 自动转换
注意点:
- 不能对布尔值进行转换
- 不能将对象类型转换为不相干的类型
- 在把高容量的类型转换为低容量类型时,强制转换
- 转换时可能存在内存溢出,或者精度问题
System.out.println((int)22.6) //22
System.out.println((int)-22.45f) //-22
System.out.println((int)'a') //97
System.out.println((char)97) //a
//数字之间可以用下划线分割
System.out.println(10_0000)//100000
//数据操作后较大,溢出
int money = 10_0000_0000;
int years = 20;
int total = money * years; //-1474836480 计算溢出
long total2 = money * years; //-1474836480 计算溢出,转换前就出现问题
long total3 = money * ((long)years) //先把一个数转换为long
//表示long类型的数时,尽量用大写L,程序规范
变量&常量
- 类变量
- 局部变量
- 实例变量
实列变量:从属于对象,如果不自行初始化,整型字符型、浮点型的默认值0、0.0,布尔值默认false,除了基本类型,其余默认都是null
static int allClick = 0; //类变量 static(静态)
static final int max = MAX_VALUE; //静态常量 final(常量)
String str = "hello world"; //实例变量
public void method(){
int i = 0; //局部变量
}
变量命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
运算符
- 算术运算符:+,-,*,/,%,++,--
- 赋值运算符:=,+=, -=, *=, /=
- 关系运算符:>,<,>= ,<=,== ,!= ,instanceof
- 逻辑运算符:&&(与),||(或), !(非)
- 位运算符:&,|,^,~, >>,<<
- 条件运算符 :? :
- () > 算数运算符 > 关系运算符 > 逻辑运算符 > 条件运算符 > 赋值运算符
// ++ -- 自增,自减
int a = 3;
int b = a++;//b=3 先给b赋值,进行自增
int c = ++a;//c=5 先自增,后赋值
//Math工具类实现幂运算
double pow = Math.pow(3, 2);//pow=9
//短路运算例子--逻辑运算
int c = 5;
boolean d = (c<4)&&(c++<4) //如果执行了后面的 那么之后输出的c就为6了
//位运算
/*
a = 0011
b = 1010
a & b = 0010 //全1为1 位与运算
a | b = 1011 //全0为0 位或运算
a ^ b = 1001 //异为1,同为0 异或运算
~b = 0101 //取反
<< 左移 相当于 *2
>> 右移 相当于 /2
*/
//实际运用 2*8怎么算的最快
System.out.println(2<<3)
//字符串连接符 + ,String
System.out.println(""+10+20); //1020 字符串在前,后面数字不能计算,当作字符串连接上
System.out.println(10+20+""); //30 字符串在后,前面数字该怎么算就怎么算
包机制
- 用于区别类名的命名空间
- 一般用公司域名倒置作为包名
- 包名空间必须放在最上面
JavaDoc--文档注释
用来生成自己的API文档,加在类上面或者方法上面
/**
* 参数信息
*
* @author:作者
* @version:版本号
* @since:指明需要最早使用的jdk的版本
* @param:参数ming
* @return: 返回值情况
* @throws:异常抛出情况
*/
//利用cmd 生成javadoc文档的方法:
/*
javadoc -encoding UTF-8 -charset UTF-8 文件类名
*/
可参考阅读
编码规范——《Java开发手册》——阿里巴巴