文章目录
1.一个简单的Java应用程序
- Java对大小写敏感
- 访问修饰符:public用于控制程序的其他部分对这段代码的访问级别,main方法必须用public修饰。
- 类名:用驼峰命名法。
2.注释
- 单行://
- 多行:/* 内容 */
- 自动生成文档:/** 内容 */
注意:不要嵌套注释
3.数据类型
(1)整型
- 后缀与前缀:长整型数值要加后缀L,十六进制数值有前缀0x,八进制数值有前缀0,二进制数值有前缀0b。
- 可以为数字字面量添加下划线作为分割,不会对数值有任何影响。
- Java的int型变量的长度是确定的。
- Java没有任何无符号类型。
(2)浮点型
- 后缀:float型数值应有后缀F,没有则默认为double型,也可为double型数值添加后缀D。
- 所有浮点数的计算都遵循IEEE 754规范(见我的专栏:计算机组成原理 第二章)。
- 由于浮点计算会有一些舍入误差,因此浮点数值不适用于禁止出现舍入误差的金融计算中,这种情况应当使用BIgDecimal类。
- 有三个特殊浮点数值:正无穷大、负无穷大、NAN(非数字)。
(3)char类型
- 用‘A’表示一个字符,“A”表示一个字符串,需要区分。
- 转义字符:
- 代码点:指与一个编码表中的某个字符对应的代码值。
- 在 Java中,char类型用 UTF-16 编码描述一个代码单元。
- 不建议使用char类型,因为某些字符无法用一个代码单元表示,会导致不必要的错误。
(4)boolean类型
- 有两个值:true 和false 。
- 在C++中数值或指针可以代替 boolean 值,但在java中不行,因为java变量类型之间的定义非更严格。
4.变量
(1)变量名
- 由字母和数字组成,但不能是数字开头。
- 对大小写敏感。
- 不能用java保留字命名。
- 建议小写字母开头,驼峰命名。
(2)初始化
- 未经过初始化的变量不能引用。
- 最好第一次使用时初始化。
(3)常量
- 用final关键字修饰变量,则该变量为常量,只能赋值一次且不能再更改。
- 命名建议全大写。
5.运算符
(1)运算符
- 四则运算:+ - * /
- 求余:%
- 自增、自减:++a,a++,b- -,- -b。
- 是否相等:==
- 是否不等:!=
- 大于小于:> >= < <=
- 逻辑:&&与、||或、!非,短路方式求值。
- 位运算
&与:两位都为1,那么结果为1
|或:有一位为1,那么结果为1
^异或:两位不相同,结果为1
~非:取反
<<左移:各二进制位全部左移N位,高位丢弃,低位补0
>>右移(符号位填充高位):各二进制位全部右移N位,若值为正,则在高位插入 0,若值为负,则在高位插入 1
>>>右移(0填充高位):各二进制位全部右移N位,无论正负,都在高位插入0
对于移位操作,需要对移位操作符的右侧参数进行n位模运算,n为该变量长度。比如1 << 35和1 << 3是一样的。
(2)数学函数与常量
- 求平方根:Math.sqrt(x)
- 平方:Math.pow(a, b)
- 三角函数:Math.sin Math.cos Math,tan Math.atan Math.atan
- 指数函数:Math.exp
- 对数:Math.log Math.log10
- π和e的近似值:Math.PI Math.E
(3)类型转换
- 强制类型转换(截断):int x=(int) y;
- 强制类型转换(四舍五入):int x=(int) Math.round(y);
注意:不要把强制类型转换应用于boolean型。
6.字符串(属于引用类型而不是基本类型)
(1)一些常识
- 声明:String str= “XXXX”。
- 拼接:用+号。当将一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串(任何一个 Java 对象都可以转换成字符串)。
- String类的对象的字符串值是不可变的,也就是说字面量不可变,但可以改变对象的引用。
- String不等于字符数组。
- 要注意String和String Builder和String Buffer的区别。
(2)检测相等
- str1.equals(str2);
- str1.equalsIgnoreCase(str2);
- 不能用 ==,因为它比较的是两个对象的地址,而不是指向的字符串字面量。
(3)空串与Null串
- 检测:str1!=null &&str1 !="",先检测是否为Null串,再检测内容是否为空。
(4) API
7.输入输出
(1)输入
(2)输出
- 直接输出:System.out.print(x);
- 格式化输出:System.out.printf(“Hello!%s.Next year,you will be %d”,name,age);
更多格式化打印请参考《Java 核心技术 卷一》P57。
8.控制流程
- 条件语句: if ; if…else
- 循环:for ; while ; do…while; foreach循环
- 多重选择:switch,case标签可以是char、byte、short、int及其包装类型的常量表达式,或字符串字面量。
- 中断控制流程语句:break、continue、break 标签名(goto语句)、带标签的continue语句。
9.数组
创建一个数字数组时,所有元素都初始化为 0。boolean 数组的元素会初始化为 false。对象数组的元素则初始化为一个特殊值 null,这表示这些元素(还)未存放任何对象。