两种实现线程的方法
1.使用Runnable接口
可以将CPU、代码和数据分开,形成清晰的模型,还可以从其他类继承;保持程序风格的一致性。
2.直接从Thread类继承
不能从其他类继承;编写简单,可以直接操纵线程,无需使用Thread.currentThread()。
利用方法参数的几种情况
1.方法不能修改基本类型的参数(数字或布尔值)
2.方法可以改变对象参数的状态
3.方法不能使一个对象参数指向一个新的对象
源文件的名字必须与Public类的名字相同。在一个源文件中只能有一个公开类,但可以含有任意数量的非公开类。
构造器和其他方法一个重要的不同是:
构造器只能和new运算符一起使用。不能把构造器应用于一个已存在的对象来重新设置其实例字段。
复制构造器可使不同的对象具有相同的数据,但其指向并非同一个对象。
一个抽象方法可以被认为是一个轮廓或是一个约定,它标明其子类必须实现的方法,但把具体的实现留给子类来完成。
ArrayList类效率较Vector高,可代替之。
可使用定义在org.oma.CORBA包中的一个来写一个改变数字参数的方法。
在使用C++中函数指针的任何场合都应该考虑使用Java中的接口。
Java事件模型是强类型的:事件只能被发送给能够处理它的对象,这在编译器的监视之内。
Java利用多态或反射来实现多线程与回调
C#利用多态或反射或委托(delegate)来实现多线程与回调
在Java和C#中,堆中分配的内存由垃圾收集机制释放,而栈中分配的内存则在代码块执行完毕后由出栈操作释放。
选用AWT或SWING来开发GUI时最好不要同时使用两者
1.Swing组件大部分为lightweight而AWT组件一律为heavyweight两者混用可能造成Z-order错乱
2.造成Swing最佳化无用武之地,使速度变慢。
与数组索引不同,数据库的列号码是从1开始的。
字符串是不可改变的:
一旦创建了一个字符串对象,那么该字符串所代表的文本就不能改变了,如果需要修改,字符串中任意位置上的字符,可以使用java.lang.StringBuffer
JDBC的thin和oci是Oracle提供的两套Java访问Oracle数据库的方法
thin就是纯粹用Java完成访问数据库的所有方法,优点是不用安装客户端
oci就是使用Java来调用本机的Oracle客户端然后再访问数据库,优点是速度快但是需要安装和配置数据库