对基本数据类型的初始化有二:
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 旧特性为新特性所取代
*///:~(源代码清单结束)