`
namezhou
  • 浏览: 158657 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java 拾遗 2010-06-06 小知识点

阅读更多

Java 拾遗 2010-06-06

1.jdk5.0 以后,可以使用16进制表示浮点数,0.125 可以表示为 0x1.0p-3 在16进制表示法中,使用p表示指数
  而不是e,尾数使用16进制,但是指数采用10进制,指数的基数是2而不是10.
2.Double.POSITIVE_INFINITY,Double.NEGATIVE_INFINITY,Double.NaN (或者Float.*)表示正无穷大,负无穷大
  和NaN(不是数字)
  判断if(x == Double.NaN)永远不会返回True
  可以使用Double.isNaN(x)检测x是否是一个数字
3.整数被0除 会产生一个异常 ,浮点数被0除会得到无穷大或者NaN,但不会产生异常
4.java 虚拟机默认的浮点计算都是基于不同处理器的处理精度的,因此在不同平台上的计算结果可能会有精度的不同
  如果希望在所有的平台上获得相同精度的计算结果,可以在方法前面加strictfp 关键字,如果在类的声明上添加该       关键字,则类中所有的方法都会采用严格的浮点运算精度,而与平台无关.
5.基本类型的转换
6.Scanner.next() 读取输入的下一个单词,以空格作为分隔符
7.Console 类 可以实现密码输入的*号回显 (>=JDK6)
 Console cons = System.console();
      String username = cons.readline("User name:");
 char[] password = cons.readPassword("password:");
默认是无回显的
8.java 的break 标签,可以用于任何语句中
9.大数据类型 大整数 BigInteger 和 大浮点 BigDecimal
  创建 对象 BigInteger bi = BigInteger.valueOf(12);
 基本运算 (必须都转换成大类型才可以参与运算)
 add(bi) +
       substract(bi) -
       mutiply(bi) *
       divide(bi,[RoundingMode]) / RoundingMode 常量可以设置舍入方式,四舍五入为RoundingMode.HALF_UP
      mod(bi)  %
      compareTo() ==
10.数组拷贝的两个函数 System.arrayCopy(from,fromindex,to,toIndex,count)
                     array Arrays.copyOf(fro,length)
11.检查数组中是否存在某个值,Arrays.binarySearch(arr,value) 采用二分查找法,如果找到则返回下标,找不到返回一个负数
  还有一个重载的方法 Arrays.binarySearch(arr,[int start],[int end],value)
12.快速的预览二维数组,常用在调试中,Arrays.deepToString(arr) 输出格式 [[],[],[]]
13.类设计中 如果类的一个属性是引用类型的,就不应该为其设置 getter ,这样会保护暴露保护域,因为如果一个类外的变量使用getter得到了对象中的属性的引用
 就可以跳过setter直接改变引用对象的值
 demo: class Employ{
  private Date birthday;
  public Date getBirthday(){
   return this.birthday
  }
 }
 Employ tom = new Employ();
 Date d = tom.getBirthday();
 d.setTime()....//同时改变了tom的birthday
14.重要:一个类的方法可以访问任一此类的对象的私有域
 demo class Employ{
   private String name;
   boolean equals(Employ e){
    return this.name.equals.(e.name) //this is ok
   }
  }
15.使用import * 导入包时,*只能指代一层
16.System.runFinalizersOnExit(true) 可以保证finalizer方法在程序退出前被执行,但是无法保证在什么时候执行
17. java不会对局部变量进行初始化,但是会对对象的属性进行初始化
18.如果把一个类声明为finall的,则其中的方法自动成为finall的,但是属性不会自动的成为finall的
17.ArrayList trimtoSize() 删掉Arraylist 内置数组中空白的数组元素,
18.参数数量可变的函数 jdk5
public static max(double... values){
 values 是一个double型的数组,遍历之...
}
19.普通内部类 可以直接访问外部类的 私有属性
20.外部类的方法内部的内部类,不仅可以访问 外部类的私有属性,还可以访问方法中的局部变量,但是局部变量必须是finall的
21.匿名内部类 直接 new 一个接口,然后在{}中实现接口的 方法 ActionListener listener = new ActionListener(){
 public void actionPerformed(){
  //实现
 }
}
22.静态内部类 外部的类是不能声明为static的,只有内部类可以
  特点:不能访问外部类的非静态属性 ,方法和属性必须全是静态的
  可以直接从外部类调用而不需要实例化外部类 String xx = Outer.Style.someMethod();

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics