1. Java白皮书的关键术语:
简单性, 面向对象,网络技能,健壮性,安全性,体系结构中立,可移植性,解释型,高性能,多线程,动态性。
3.1 一个简单的java程序
public class FirstSample{
public static void main(String[] args){ System.out.println("");}
}
java对大小写敏感。
访问修饰符:控制程序的其他部分对这段代码的访问级别。
class表明java程序中的全部内容都包含在类中。
FirstSample类名,规范:驼峰。源代码的文件名必须与公有类的名字相同,用.java作扩展名。
一对花括号表示方法体的开始与结束。
object.method(parameters),"."点号表示函数调用。括号里为参数,没有参数也需要圆括号。
3.2 注释
单行注释//~~~,多行注释/* ~~~ */,文档注释/** ~~~ */,
/**/多行注释不能嵌套。
3.3 数据类型
java是强类型语言,必须为每一个变量声明一个类型。
8种基本类型:byte(1字节),char,short(2字节),int(4字节),long(8字节),float,double,boolean。
java有一个能够表示任意精度的算数包,称为big number。
原码:符号位加真值的绝对值,8位的原码范围[1111 1111,0111 1111],即[-127,+127]
反码:正数的反码是其本身,负数的反码是符号位不变,其余位取反,[1000 0000,0111 1111]
补码:反码+1,正数的补码是其本身,负数的补码是其符号位不变,其余位取反再+1,[1000 0001,0111 1111]
8位二进制数,使用原码的表示范围是[1111 1111,0111 1111],即[-127,+127],使用补码的表示范围是[1000 0000,0111 1111],即[-128,127],补码多表示一个最低数。
3.4 变量
不要使用未被初始化的变量。使用final声明常量。使用static final声明一个类常量,可以在一个类中的多个方法中使用。
3.5 运算符
+,-,*,/。当参与/运算的两个操作数都是整数时,表示整数除法,否则表示浮点数除法。
自增自减运算符:++,--。关系运算符:==,!=,>,<,>=,<=。逻辑运算符:&&,||,!。三元表达式:?:。
位运算:&,|,^,-,>>,<<
数值转换:无信息丢失的转换:byte->short->int->long,char->int,int->double。可能有精度损失的转换:int->float,long->float,long->double。
当使用两个数值进行二元计算时,需要先转换成同一类型,再进行计算:1。如果有一个是double,则另一个转成double。2.否则,有一个是float,另一个转成float。3.否则,有一个是long,另一个转成long。4.否则,都转成int。
强制类型转换。
3.6 字符串
subString(beginIndex, endIndex)提取子串,子串长度=endIndex-beginIndex。
+拼接字符串。
不能修改java字符串中的字符,但是可以修改字符串变量,让它引用另一个字符串。
使用s.equals(t)检测两个字符串是否相等。
代码点与代码单元。
构建字符串:StringBuilder。StringBuffer线程安全,但效率低。
3.7 输入输出
读取输入。
格式化输出。
文件输入与输出:文件读入:Scanner in= new Scanner(new File("abc"));。文件输出:PrintWriter out = new PrintWriter("abc.txt");
3.8 控制流程
块作用域:{}。不能在嵌套的两个块中声明同名的变量。
条件语句:if else
循环语句:while(){},do{}while()
确定循环:for(){}
多重选择:switch case
中断控制流程:break,continue
3.9 大数值,big number
BigInteger实现了任意精度的整数运算。BigDecimal实现了任意精度的浮点数运算。
3.10 数组
通过下标直接访问。一旦创建了数组,就不能再改变它的大小。
for each循环,不必指定下标。打印数组:Arrays.toString(a)。
数组初始化:int[] a = {1,2,3};,匿名数组:a = new int[] {1,2,3,4};。允许数组长度为0。
数组拷贝:1.两个数组变量引用同一个数组:int[] a = b;。2.只拷贝值:int[] a = Arrays.copyOf(b, length);
数组排序:Arrays.sort(),使用了优化的快速排序算法。