Java核心技术 卷I 手记(一)

时间:2022-12-25 14:56:02

一、相对JDK5.0比较

之前版本:

for(int i=0;i<g;i++){
   System.out.println(g[i]);
}
之后版本

for(string a:g){
   System.out.println(a);
}


JDK1.4及以后的版本中将强制main方法是public的。


长整形值有一个后缀L(如400000L)。十六进制数值有一个前缀0x(如0xCAFE),八进制有一个前缀0,例如010对应八进制中的8.

float类型有一个后缀F(例如,3.402F),没有后缀F的浮点型数值(如3.402)默认为double类型,当然也可以添加后缀D。


关键字final生命常量,表示这个变量只能被赋值一次,一旦赋值便不能更改。

例:final double EXF=2.54;


二、二元算术运算符

x+=4;等价于x=x+4;

在Math类中,要想计算一个数值的平方根,可以使用sqrt方法

例:double y=Math.sqrt(x);//x=4,print y=2
另Math中有pow方法,实现幂运算

double y=Math.pow(x,a); // x a的平方

强制类型转换

        相对浮点型进行舍入计算

例:double x=9.997;

        int i=(int)Math.round(x); //i=10


检测字符串是否相对,用equals和equalgnoreCase更为严谨,equalgnoreCase是不区分大小写。


大数值

Biglnteger c = a.add(b); // c=a+b
Biglnteger d = c.multiply(b.add(Binglnteger.valueof(2))); //d=c*(b+2)
//divide 是除

数值拷贝

System.arraycopy(from,fromlndex,to,toIndex,count);

例:
int[] s = {2.3.7.5.11.13};
int[] a = {1001,1002,1003,1004,1005,1006,1007};
System.arraycopy(s,2,a,3,4);
for(int i=0;i<a.length;i++){
   System.out.println(i+":"+a[i]);
}
输出结果:0:1001

                 1:1002

                  2:1003

                  3:7

                  4:5

                   5:11

                   6:13


解释:创建两个数组,然后第一个数组的后4个元素拷贝到第二个数组中,拷贝从源数组第二个位置开始,一个4个元素,目标数组的起始位置为3。


关于java.util包中得Math.rndom方法将返回一个0~1之间(含0,不含1)的随机浮点数,若用n乘以这个浮点数,就可以得到从0~n-1之间的一个随机数。

     例:int r = (int)(Math.rndom()*n);

快速排序法:

Arrays.sort(a);    //int [] a = new int[1000];