测试Demo-日常的一些测试
StringBuilder 初始化的重要性
public static void main(String[] args) { int length = 5000; Random random = new Random(); long startTime = 0; StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder1 = new StringBuilder(); StringBuilder stringBuilder2 = new StringBuilder(); String s1 = ""; String s2 = ""; String s3 = ""; for (int i = 0; i < length; i++) { stringBuilder.append(random.nextInt() * i); stringBuilder1.append(random.nextInt() * i - 1); stringBuilder2.append(random.nextInt() * i + 1); } s1 = stringBuilder.toString(); s2 = stringBuilder1.toString(); s3 = stringBuilder2.toString(); /**不指定初始值**/ stringBuilder1 = new StringBuilder(); startTime = System.currentTimeMillis(); for (int i = 0; i < length; i++) { stringBuilder1.append(s1).append(s2).append(s3); } System.out.println("stringBuilder不指定初始值:" + (System.currentTimeMillis() - startTime)); //释放掉容量 stringBuilder1 = null; /**指定初始值**/ stringBuilder2 = new StringBuilder(length * (s1.length() + s2.length() + s3.length())); startTime = System.currentTimeMillis(); for (int i = 0; i < length; i++) { stringBuilder2.append(s1).append(s2).append(s3); } System.out.println("stringBuilder指定初始值:" + (System.currentTimeMillis() - startTime)); }

截取一段字符串中,字符最长的
static String LongestWord(String sen) { int smallest = 0; String resulfString = ""; // 如果留数字: [^A-Za-z0-9 ] String[] parts = sen.replaceAll("[^a-zA-Z ]", "").split(" "); for (int i = 0; i < parts.length; i++) { if (parts[i].length() > smallest) { smallest = parts[i].length(); resulfString = parts[i]; } } return resulfString; }
不用加号实现两个数相加
static public int aplusb(int a, int b) { while (b != 0) { final int _a = a ^ b; final int _b = (a & b) << 1; a = _a; b = _b; } return a; }
递归调用
static int add(int i) {
if (i == 0) {
return i;
}
// 换成阶乘也是一样的
// 个人理解:实际就是一种循环的实现
// 实际最终会返回的是i+(i-1)+(i-1-1)+(i-1-1-1)....
return i + add(i - 1);
}
类加载顺序案例
public class SuperAndSub {
public static void main(String[] args) {
Sub s3 = new Sub();
}
}
class Super {
static int a = getA();
static {
System.out.println("加载Super的静态块");
}
int b = getB();
{
System.out.println("加载Super的普通块");
}
Super() {
System.out.println("加载Super的构造器");
}
static int getA() {
System.out.println("加载Super的静态变量");
return 1;
}
static int getB() {
System.out.println("加载Super的实例变量");
return 2;
}
}
class Sub extends Super {
static int c = getC();
static {
System.out.println("加载Sub的静态块");
}
int d = getD();
{
System.out.println("加载Sub的普通块");
}
Sub() {
System.out.println("加载Sub的构造器");
}
static int getC() {
System.out.println("加载Sub的静态变量");
return 1;
}
static int getD() {
System.out.println("加载Sub的实例变量");
return 2;
}
}

浙公网安备 33010602011771号