第四周
算法部分:
1、同一个包下不能有同名的类!!!
当引用的不同包下有同名类时,见: java的包Package中同名类的冲突及其理解_java同包下相同的类名-CSDN博客
2、获得字符串中第一个匹配项的下标,可使用字符串.indexOf()函数。
3、满足使用二分查找算法的条件:数组元素按顺序排列,且没有相同元素,否则可能返回的下标不一致。
二分查找总的来说有两种方法,分别是左闭右闭和左闭右开。
左闭右闭:right=nums.length-1; 左闭右开:right=nums.length;
while(left<=right) while(left<right)
right=middle-1; left=middle+1; right=middle;left=middle+1;
Java学习部分:
1、分线程的声明和方法的调用在主线程中执行;如果直接用分线程的对象.run()表示直接调用了该方法,为单线程,没有使用分线程。
不可以让已经start()的线程再次执行start(),否则报IllegalThreadStateException异常。
再重新创建一个对象即可,线程名变为Thread-1
2、内部匿名类,并不是直接new 抽象类或者接口,而是相当于将子类继承抽象类或者是实现接口,再创建子类对象合成一步。
参考Java中抽象类有构造方法可以直接new对象_在方法中传new的抽象实现对象-CSDN博客
3、当继承new Thread中的类没有重写run方法,则会调用传进去的参数的run方法,若里面重写了run方法,则会优先调用重写的run方法。
原理:如果run方法在子类中没有被重写,调用的是Thread父类的run,run调用的是target,即传进来的参数。