数字与静态
-
Math方法,最接近全局的方法,在Math这个类中的所有方法都不需要实例变量值
-
静态(static)的方法没有实例变量,以类的名称调用静态的方法
-
非静态的方法有实例变量,以引用变量的名称调用非静态的方法
-
静态的方法不知道堆上有哪些实例,不能调用非静态的变量,也不能调用非静态的方法
-
静态方法无法看到实例变量的状态
-
静态变量的值对所有的实例来说都相同,它是共享的,同一类所有的实例共享一份静态变量
-
静态变量会在该类的任何静态方法执行之前就初始化
-
静态的final变量是常数
-
常数变量的名称应该要都是大写字母
-
静态final变量的初始化
-
声明的时候
-
public class Foo{ public static final int FOO_X=25; }
-
在静态初始化程序中
-
public class Bar{ public static final double BAR_SIGN; static { BAR_SIGN =(double)Math.random(); } }
-
没有初始化会报错
-
-
final的变量代表你不能改变它的值,final的method代表你不能覆盖掉该method,final的类代表你不能继承该类(也就是创建它的子类)
-
非静态的方法可以读取静态的变量,不可以调用该类静态的方法或静态的变量
-
当你需要以对象方式来处理primitive主数据类型时,就把它包装起来。Java5.0之前必须要这么做
-
int i=288; Integer iWrap =new Integer(i);//包装值 ------------------------------ int unWrapped = iWrap.intValue(); //解包装
-
Java5.0以后有了autoboxing,能自动地将primitive主数据类型转换成包装过的对象
-
public void doNum(){ ArrayList<Integer>listOfNum = new ArrayList<Integer>(); listOfNum.add(3); int num=listOfNum.get(0); }
-
将String转换成primitive主数据类型值
-
String s="2"; int x = Integer.parseInt(s); double d = Double.parseDouble("420.24");
-
将primitive主数据类型值转换成String
-
double d=42.5; String doubleString =""+d; ---------------------------- double d=42.5; String doubleSting=Double.toString(d);
数字格式化
- format("%,d",100000000); 将数字以带逗号的形式格式化
- 基本上说,格式化由两个主要部分组成:格式命令和要格式化的值
- 类似于printf()只是格式稍有改变
% | 必有 |
---|---|
[argument number] | 如果要格式化的参数超过一个以上,可以在这里指定是哪一个 |
[flags] | 特定类型的选项,如数字要加逗号或正负号 |
[width] | 最小的字符数,不足自动补零 |
[.precision] | 精确度 |
type | 必有,类型标识 |
- 在格式化指令中一定要给类型,如果还要指定其他项目的话,要把类型摆在最后
- 当超过一项以上参数时
int one =20000000;
double two=100000.25;
String s=String.format("The rank is %,d out of %,.2f",one,two);
- 日期:
- 完整的日期与时间:%tc
- 只有时间:%tr
- 周,月,日:%tA %tB %tC
- 使用java.util.Calendar来操作日期 Calendar cal = Calendar.getInstance();