Thinking In Java 4th Chap2 一切都是对象

对基本数据类型的初始化有二:

  1.String s="asdf";

  2.String s=new String("asdf");

可能的存储区域:

  寄存器(不可如c/c++进行控制)

  堆栈(对象引用,对象本身不在此处)

  堆(对象存放地)

  常量存储(代码内部/只读存储器)

  非RAM存储(流对象/持久化对象)

基本类型:

  基本类型  大小    最小值    最大值      包装器类型  默认值

  boolean    --       --          --        Boolean     false

  char    16-bit        Unicode o    Unicode 2^16-1  Character   null

  byte     8 bits     -128        +127         Byte     (byte)0

  short      16 bits   -2^15       +2^15-1      Short       (short)0

  int        32 bits           -2^31                 +2^31-1                   Integer    0

  long     64 bits           -2^63       +2^63-1                   Long       0L

  float     32 bits           IEEE754       IEEE754                  Float      0.0f

  double    64 bits           IEEE754       IEEE754       Double     0.0d 

  void     --        --                        --                            Void

高精度数字BigInteger和BigDecimal:(任意大小,任意精度,速度较慢)

 1 //BigInteger:
 2 
 3   import java.math.BigInteger;
 4   //每一个数都是类中的一个对象:
 5 
 6   BigInteger add1=new BigInteger("10");
 7   //所有计算必须调用方法:
 8   add1.negate();//相反数
 9   add1.add(new BigInteger("20"));//加法
10   add1.subtract(new BigInteger("20"));//减法
11   add1.multiply(new BigInteger("20"));//乘法
12   add1.divide(new BigInteger("20"));//除法
13   add1.remainder(new BigInteger("20"));//取模
14   BigInteger mod = new BigInteger ("10");//快速幂取模
15   BigInteger pow = new BigInteger ("20");
16   System.out.println(pow.modPow(pow,mod));
17    add1.compareTo(new BigInteger("18"));//比较大小,小于-1,大于1,等于0
18    add1.pow(10);//幂运算
19   add1.min(new BigInterger("-10"));//较小数
20   add1.max(new BigInteger("100"));//较大数
21    add1.gcd(new BigInteger("6"));//最大公约数
22   add1.and(new BigInteger("10"));//按位与
23    add1.or(new BigInteger("10"));//按位或
24   add1.xor(new BigInteger("10"));//异或 
25   add1.toString(2));//进制转换,返回n进制字符串
26   add1.abs();//绝对值
27    add1.testBit(2);//检测某位上是否为1
28    add1.shiftLeft(1);//左移n位
29   add1.shiftRight(1);//右移n位
30    add1.not();// 非
31    int p=2;
32   BigInteger add1 =BigInteger.ValueOf(p);//int转化为BigInteger
33    int temp=add1.intValue();//BigInteger转化为int

Java自带的垃圾回收器能自动识别和销毁无用对象,故无需像c++一样手动delete,也没有内存泄漏的风险

类库名称原则:反转域名,如:net.mindview.utility.foibies

Java没有“向前引用”问题,即使调用的类在当前代码之后定义仍然可行

  如果需要明确调用的是哪个包中的类:import java.util.ArrayList;

  如果需要调用某个包中的一群类:import java.util.*;

static关键字

  凡被static标识的变量,无论有多少对象,都仅共同占有一份存储空间:

    static int i;

    /********/

    StaticTest st1.i=47;

    StaticTest st2.i++;

    //output: i=48

  静态方法可以通过它的类直接调用:Incrementable.increment();

Javadoc:(只能注释public和protected成员,最后输出HTML文件)

  /** 欲引入Javadoc的内容

  *@see classname或@see fully-qualified-classname#methodname

  *{@link package.class#member label}(与@see基本一致)

  *{@docRoot}产生到文档根目录的相对路径

  *{@inheritDoc}从当前类的直接基类继承相关文档

  *@version version-information

  *@author author-information

  *@since 最早版本

  *@param 方法中parameter-name discription

  *@return 返回值

  *@throws 异常类名

  *@Deprecated 旧特性为新特性所取代

  *///:~(源代码清单结束)

上一篇:认知模型:系统化思考的思维模型


下一篇:如何在python中定义C-Enumeration类型