[JAVA]《Java 核心技术》(一),
分享于 点击 47451 次 点评:9
[JAVA]《Java 核心技术》(一),
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方法
相关文章
- 暂无相关文章
用户点评