1.求两数的最大公约数
public static int gcd(int p, int q) {
if (q == 0) return p;
int r = p % q;
return gcd(q, r);
}
2.判断一个数是否为素数(prime number)
public static boolean isPrime(int N) {
if (N < 2)
return false;
for (int i = 2; i * i <= N; i++)
if (N % i == 0)
return false;
return true;
}
3.递归
①方法的第一条语句总是一个包含return的条件语句。
②递归调用总是去尝试解决一个规模更小的子问题。
③父问题和子问题之间不应该有交集。
4.Java字节码
它是程序的一种低级表示,可以运行于Java虚拟机。将程序抽象为字节码可保证Java程序员的代码能够运行在各种设备上。
5.
System.out.println('b' + 'c');输出结果197.'b'+'c'这种‘+’运算会自动将char或string型转为int型,而'b'的asc2码为98.
6.Java内存泄漏
内存泄漏:对象已经没有被应用程序使用,但是垃圾回收器没办法移除它们,因为还在被引用着。
如下,是Java的ArrayList的实现,其中使用数组方式进行实现,在list删除时需要将数组的对应引用对象置为null,这样被删除的对象才会被GC回收掉,这个是一个非常经典的容易造成内存泄漏的例子。
public E remove(int index) {
rangeCheck(index);
modCount++;
E oldValue = elementData(index);
int numMoved = size - index - 1;
if (numMoved > 0)
System.arraycopy(elementData, index+1, elementData, index, numMoved);
elementData[--size] = null; // clear to let GC do its work
return oldValue;
}
参考:http://www.importnew.com/12961.html
7.正整数的二进制表示方法
public static String toBinaryString(int n) {
String s = "";
for(int i=n;i>0;i/=2) {
s = (i%2) + s;
}
return s;
}8.
741



被折叠的 条评论
为什么被折叠?



