上午9点~中午12点
日常VJ刷题题
学习并掌握了利用简单的BFS,DFS求解问题:
1,BFS一般用于求解某些最短问题,利用BFS所求的解一定是最优解,原因:BFS借助队列实现,对于一切可行,可经过的数据压入队列中,并同时出队列读取数据并进行判断,当条件达到时,结束操作,返回最优解。
2,DFS是一种利用递归实现的搜索算法,其搜索过程与“不撞南墙不回头”类似
下午3点~6点 晚上7点~9点20
学习Java,阅读疯狂Java讲义160~180页
1,初始化块:类似于构造器,但也有不同,如果初始化块有修饰符,那只能是static,被static所修饰的叫类初始化块,反之称之为实例初始化块
二者区别:实例化快只在创建Java对象时隐式执行,并且在构造器前自动执行,类初始化块在类初始化阶段自动执行
2,包装类:
六种基本类型对应的类:常用包括的方法:parseXxx(String s) 和valueOf(String s),两者都是实现基本类型变量与字符串之间的转换
3,equals方法:Object提供的equals方法比较的是对象的地址,而String除外,因为String已经重写了该方法,只要字符串序列相同就会返回true。
4,类成员:
包括类成员变量,类方法,类初始化块,内部类
5,单例类:
把该类的构造器用private修饰从而把该类的所有构造器隐藏起来,提供个public方法,该方法必须用static修饰,该方法用于创建该类对象,为什么称作为单例类呢?给你看段代码:
public class Singleton {
private static Singleton instance;
private Singleton(){}
public static Singleton getInstance()
{
if(instance == null)
{
instance = new Singleton();
}
return instance;
}
}
public class SingletonTest {
public static void main(String[] args) {
Singleton a = Singleton.getInstance();
Singleton b = Singleton.getInstance();
System.out.println(a == b);
}
}
运行答案是什么呢?是true还是false呢
答案是true,
正是通过上面的getInstance方法提供的自定义控制,保证Singleton类只能产生一个实列,故而a与b的地址是一致的,下面是用idea操作后输出的结果:
6,final修饰符:
对于final修饰的成员变量而言,一旦有了初始值,就不能被重新赋值
final所修饰的成员变量必须由程序员显式地指定初始值
final修饰类变量、实例变量能指定初始值的地方如下:
类变量:必须在静态初始化块中或声明该类变量时指定初始值,而且只能在其一
实例变量:必须在非静态初始化块、声明该实例变量、构造器中指定初始值,且只能其一