*练习: 计算任意一段程序的运行时间的模板 计算时间的代码是确定的,任意一段程序是不确定的*/
思路:需要定义抽象类,在子类里面对继承的抽象方法重写后使用。
public class Test1 {
public static void main(String[] args) {
User1 user1 = new User1();
long time=user1.getTime();
System.out.println(time);
}
}
/*模板*/
abstract class Time{
public abstract void code();
public long getTime(){
long start=System.currentTimeMillis();
//任意一段代码
code();
long end= System.currentTimeMillis();
return end-start;
}
}
class User1 extends Time{
public void code(){
for (int i = 0; i < 10000; i++) {
String str = "abc";
str+="aaa"+i;
}
}
}
2.debug操作(非常重要)
让程序单步运行! ①打断点(你想让程序在哪个位置暂停) ②采用debug模式运行 F8 -> 单步运行(按一次,点一下运行一行代码) F9 ->找下一个断点(如果下面没有断点,一直到结束位置) F7 -> 进入方法(红色向下箭头) shift+F8 ->退出方法 随意剖析任意一段你不懂的代码!(需要耐心)
可以用下面这段冒泡排序代码自己去实验
public class TestDebug {
public static void main(String[] args) {
//写一个冒泡排序
int[] arrs={1,5,2,55,23,17,98,68};
method(arrs);
System.out.println(Arrays.toString(arrs));
}
public static void method(int[] arrs){
for (int i = 0; i < arrs.length-1; i++) {
for (int j = 0; j < arrs.length - i - 1; j++) {
if(arrs[j]>arrs[j+1]){
int temp =arrs[j];
arrs[j]=arrs[j+1];
arrs[j+1]=temp;
}
}
}
}
}