1. unicode编码表
utf-8和unicode的互换问题
2.
subString(a,b)
获得 [a,b-1]的子串
3.
易犯错误,java没有引用传递
4.
== 比较是否放在同一个位置
equals 比较值是否相等
5.
字符串常量是共享的。+,substring等操作产生的结果不是共享的。
6.
String api
endsWith
equals
equalsIgnoreCase
indexOf
lastIndexOf
length()
replace
startsWith
substring(int begin, int end)
toLowerCase
toUpperCase
trim()
7.
StringBuilder---线程不安全的,速度快些
append
toString
StringBuffer---线程安全的,同步,速度慢
8.
String result = String.format("%d",i);
9
while(){}
do{}while()
for
10
大数值
BigInteger
BigDecimal
BigInteger a = BigInteger.valueOf(100);
BigInteger c = a.add(b);
BigInteger d = c.multiply(b.add(BigInteger.valueOf(2)));
divide
CompareTo
11
数组的拷贝
int []luckyNumbers = smallPrimes
int []copiedLuckNumbers = Arrays.copyTo(luckNumbers, luckyNumbers.length)
数组排序
Arrays.sort(a);
int r = (int)( Math.random() * n);
binarySearch
fill
equals
arraycopy
12
多维数组
type [][]a = { {},{} }
13
不规则数组
每一行可以有不同的长度
C4
14
NumberFormat类
getPercentInstance()
main()方法为静态方法
15
java值传递
方法参数:
基本
对象引用
注意:
对于对象引用,传递后实参是引用的一个拷贝。但可以改变引用所指向的对象
一个方法不能修改一个基本类型数据的参数
一个方法可以改变一个对象参数的状态
一个方法不能实现让对象参数引用一个新的对象
16 每个实例域给一个有意义的初值
17 this(),super()
18 静态初始化
类第一次加载的时候,会进行静态域的初始化
19
Random()
int nextInt(int n):0~n-1
eg:
Random ge = new Random();
int id = ge.nextInt(n);
注意:Math.random() 与Random()区别
20
静态导入
import static java.lang.System
21
如果没有指定public/private,这个部分可以被同一个包中的所有方法访问。
public class Window extends Container{
String warnString;
}
C5 继承
22
extends
super
子类覆盖父类的方法时,不能低于父类的访问特性
23阻止继承/覆盖 final
24
将超类转换成子类之前,要用instanceof进行检查
25
抽象类
基类的作用在于抽象共同属性,便于扩展;不用重复工作
但有些属性放到积累中暂时无法确定其行为,用抽象类。
abstract class Person{
}
包含一个或多个抽象方法的类本身必须声明为 抽象类。
abstract class Person{
public abstract String getDescription();
public String getName(){
return name;
}
private String name;
}
抽象方法占位角色,具体实现在子类中。
子类如果没定义这个方法,则也要声明为抽象类。
全部实现则不是抽象类了。
一个类即使不含抽象方法,也可以将类声明为抽象类。
抽象类不能被实例化,不能创建对象。
26 受保护访问:、
超类中某些方法希望被子类访问,或允许子类的方法访问父类的某个域。
谨慎地使用protected.
Java中受保护部分对所有子类及同一个包中的所有其他类都可见。
默认情况下,没有任何修饰符的情况下,是对本包可见的。
27. Object
equals覆写
注意要用Object otherObject作为参数。
容易犯的错误是用类对象作为参数
hashCode方法
各个域取hash code
toString方法
clone方法
Class getClass()
28
ArrayList<T> ()
ArrayList<T>( int size )
add()
size()
set()-----对数组中已存在的域进行设置
get
29
ArrayList
的T不允许是基本类型
自动装箱
自动拆箱
-128~127 之间的Integer,Byte等都相等。 ==
int parsetInt
Integer.valueOf()
intValue()
30参数变量可变的方法
fun(Object ... args){
for (Object x:args){
doSth()
}
}
31 枚举类
ordinal()
name()
values()
valueOf()
32
反射
1.Class类
(1)
Employee e
Class x = e.getClass()
x.getName()
if(e.getClass() == Employee.class)
e.getClass(). newInstance()
(2)
String className = "java.util.Date";
Class c1 = Class.forName(className);
(3)
getFields()
getMethods()
getConstructors()
getDeclaredConstuctors()
getModifiers()
Method
Modifier
Field
(4)
私有
f.setAccessible(true)
(5)
Method中
invoke方法