笔记3

来源:互联网 发布:wdi数据库怎么用 编辑:程序博客网 时间:2024/05/16 16:17

使用MVC的最大好处就是代码重用。最重要的一点是多个视图能共享一个模型。由于运用MVC的应用程序的三个部件是相互对立,改变其中一个不会影响其它两个,所以依据这种设计思想你能构造良好的松偶合的构件。 MVC的缺点是MVC没有明确的定义。

 

局部变量前不能放置任何访问修饰符 (private,public,和protected)。final可以用来修饰局部变量.

abstract的methods不能以private修饰。abstract的methods就是让子类实现具体细节的,故不能用private把abstract method封锁起来呢? (同理,abstract method前不能加final)。

abstract的method不能是static,不能是native,不能是synchronized。

 

==比较的是引用(基本类型),而equals方法比较的是内容(对象,涉及到不同内存)。

ResourceBundle用来存储指定语言环境的资源,应用程序可以根据运行时的语言环境来加载这些资源,从而提供不同语言的展示。

 

Collection和 Collections的区别。

Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。

Collection是个java.util下的接口,它是各种集合结构的父接口。

 

hashCode,equals的真正关系

1、equals方法用于比较对象的内容是否相等(覆盖以后)

2、hashcode方法只有在集合中用到

3、将对象放入到集合中时,首先判断要放入对象的hashcode值与集合中的任意一个元素的hashcode值是否相等,如果不相等直接将该对象放入集合中。如果hashcode值相等,然后再通过equals方法判断

大O符号描述了当数据结构里面的元素增加的时候,算法的规模或者是性能在最坏的场景下有多么好。

一个java文件可以包含多个class类,但只能有一个public类,且需与java文件同名。

final修饰一个变量时,是引用变量不能变,引用变量指向的对象内容是可以变的。

 

ceil是天花板取整,floor是地板取整,round是加上0.5以后向下取整。

Math.round(-3.5) = -3

覆盖方法抛出异常必须与被覆盖方法一致。且被覆盖方法不能是private的。

 

线程的stop,suspend替代?

stop()方法作为一种粗暴的线程终止行为,在线程终止之前没有对其做任何的清除操作,因此具有固有的不安全性。应该在自己的Thread类中置入一个标志,用于控制目标线程是活动还是停止。如果该标志指示它要停止运行,可使其结束run()方法。

suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。

 

如果对象必须保存在HashSet,HashTable中,它们equals相等,且hashCode也必须相等;若不是在hashSet,hashCode中,hashCode与equal不等亦可。

不能再迭代器模式中修改被迭代的集合,若这样做,会抛出ConcurrentModificationException,这个特性适宜于全部的集合类:HashMap,Vector,ArrayList等。

“快速失败”也就是fail-fast,(安全失败也是)它是Java集合的一种错误检测机制。(安全失败同快速失败均是因为)当多个线程对集合进行结构上的改变的操作时,有可能会产生fail-fast机制。记住是有可能,而不是一定。

java.util包下面的所有的集合类都是快速失败的,而java.util.concurrent包下面的所有的类都是安全失败的。

 

Enumeration接口和Iterator接口的区别有哪些?

Enumeration接口定义了可以对一个对象的类集中的元素进行枚举(一次获得一个)的方法。这个接口尽管没有被摈弃,但已经被Iterator所替代。

iterator远远比Enumeration安全,因为其他线程不能够修改正在被iterator遍历的集合里面的对象。同时,Iterator允许调用者删除底层集合里面的元素,这对Enumeration来说是不可能的

 

java.util.concurrent.locks.Lock与synchronized异同。

Lock有比synchronized更精确的线程和更好的性能;

synchronized能够自动释放锁,但Lock不能,只能手动释放,并且在finally从句中释放;

java.util.concurrent.locks.Lock主要就是可重入锁ReentrantLock,添加了类似锁投票、定时锁等候和可中断锁等候;

 

传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte

原创粉丝点击