回顾(一)

     发现,“粗看”外国的大块头著作不是件容易的事。虽然知道这一方面的内容,但看到作者用这么多文字对它进行描述,可能存在我不知道的知识点,所以这是一件很费时间的事。进过一个星期的奋斗,看完了150页(当中肯定有偷懒的时候,而且为数不少)

2011-09-16
1、变量,就是一个命名的内存块(这个描述有点特别)。
2、用int型所能表示的最小负数(-2147483648)去除-1所得的答案仍然是该数,因为int型不能表示+2147483648。
3再次强调,++a(前缀形式)和a++(后缀形式)放于表达式中的区别是:前者是先计算++a后计算表达式;后者是先计算表达式后计算a++
4、浮点型亦可使用自加自减运算(自加或自减1.0)。浮点型也可进行取模运算:设r=a%b,则r=a-b*n,其中n是整数且与a*b同号。在Math类中,也有一个取模函数:Math.IEEEremainder(double a,double b),与%不同的是,这里的n(b的整数倍)是指与a/b精确结果最接近的整数值。比如,9.0%5.0=4,Math.IEEEremainder(9.0,5.0)=-1。
5、异或运算符“^”有个特别性质:某数被另一数进行两次异或后还原。如a=100,b=101,则(a^b)^b=001^101=100=a。这个性质在CSDN论坛上看到过,有点印象,在解决某些涉及偶数、奇数问题上有奇效。这里还有个小应用:在不借助第三个变量的情况下,交换两整数的值。具体代码如下:
a=a^b;
b=b^a;
a=a^b;
上面代码当然可以简写成a^=b等。经过这三行代码后,原来a、b的值就会交换。
6、数组重新声明。比如,声明了如下数组:
int []a=new int[10];
如果想用容量更大的数组,可以重新声明:
a=new int[50];
但是这样做的后果是,原来的数组会别丢弃,数组里面储存的数据也一同失去。
7、如下代码是允许的:
int []a={1,2,3,4,5,6};
int []b=a;
但这不是复制,而是同一组的变量用了两个数组来储存,说得更实质一点就是,a[0]和b[0]都指向了整型数1。当a[0]被重新赋值为其他数,b[0]也会随着变化。这个用法的一个用处是交换两组数所引用的数组。比如数组even储存了{2,4,6,8}这么一组数,而数组odd储存了{1,3,5,7},如果我想交换even和odd所储存的数据(即用even储存{1,3,5,7},用odd储存{2,4,6,8}),可以再定义一个中间数组辅助:
int[] even={2,4,6,8};
int[] odd={1,3,5,7};
int[] temp;
temp=even;even=odd;odd=temp;
8、两字符串:s1="abcd";s2=null;则s1+s2="abcdnull"。
9、方法public String intern()。API对它的解释是:如果池已经包含一个等于此 String 对象的字符串(用 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并返回此 String 对象的引用。也就是说,如果字符串str调用了这个方法,最终的结果总是:在字符串常量池中总会有内容为str的字符串,并且str是指向这个字符串的。系统对所有的字符串常量都会自动的调用这个方法。
10、字符串的比较。比较倆字符串对应位置的字符的Unicode码,任一方在任一次比较中,Unicode码小的是小字符串。如果倆字符串一长一短且短的一方比较完毕后仍不分大小,则长的一方是大字符串:
"abcd".compareTo("abcd")=0
"abcd".compareTo("abcdef")<0
"abcd".compareTo("abcaef")>0;
11、StringBuffer中的setLength()方法。这方法针对的是StringBufffer对象str的长度,另一个要考虑的值是容量capacity,它随长度length而被动改变。设声明了一StringBuffer对象:StringBuffer str=new StringBuffer("abc");此时,length=3,capacity=19(原因:3+16),分如下情况讨论:
①str.setLength(2),则str.toString()="ab";(容量不变)
②str.setLength(4),则str.toString()="abc ";(容量不变)
③str.setLength(19),则capacity=19;
④str.setLength(20),则capacity=19*2+2=40(capacity<20<capacity*2+2);
⑤str.setLength(41),则capacity=41(41>capacity*2+2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值