1、jar 将许多文件组合成一个jar文件
javac 编译
javadoc 它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。
javah 把java代码声明的JNI方法转化成C\C++头文件。 JNI可参考java核心技术卷二第12章
2、
3、
执行顺序从左到右:
父类静态代码块 ->子类静态代码块 ->父类非静态代码块 -> 父类构造函数 -> 子类非静态代码块 -> 子类构造函数。
4、System是java.lang中的一个类,out是System内的一个成员变量,这个变量是一个java.io.PrintStream类的对象,println呢就是一个方法了。
5、Object类的方法
1).clone方法
保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。
2).getClass方法
final方法,获得运行时类型。
3).toString方法
该方法用得比较多,一般子类都有覆盖。
4).finalize方法
该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用。
5).equals方法
该方法是非常重要的一个方法。一般equals和==是不一样的,但是在Object中两者是一样的。子类一般都要重写这个方法。
6).hashCode方法
该方法用于哈希查找,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到。
一般必须满足obj1.equals(obj2)==true。可以推出obj1.hash- Code()==obj2.hashCode(),但是hashCode相等不一定就满足equals。不过为了提高效率,应该尽量使上面两个条件接近等价。
7).wait方法
wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait()方法一直等待,直到获得锁或者被中断。wait(long timeout)设定一个超时间隔,如果在规定时间内没有获得锁就返回。
调用该方法后当前线程进入睡眠状态,直到以下事件发生。
(1)其他线程调用了该对象的notify方法。
(2)其他线程调用了该对象的notifyAll方法。
(3)其他线程调用了interrupt中断该线程。
(4)时间间隔到了。
此时该线程就可以被调度了,如果是被中断的话就抛出一个InterruptedException异常。
8).notify方法
该方法唤醒在该对象上等待的某个线程。
9).notifyAll方法
该方法唤醒在该对象上等待的所有线程。
6、ResultSet跟普通的数组不同,索引从1开始而不是从0开始
7、Java语言中应使用BigDecimal数据类型表示金额
8、对称加密算法:3DES、AES
7、关于单向链表:
如果两个单向链表相交,那他们的尾结点一定相同
快慢指针是判断一个单向链表有没有环的一种方法
快慢指针是获得一个有环单向链表入环的第一个节点的方法。
8、链表
需不断对线性表L进行删除插入适合采用链式结构
带头结点的单链表,在表的第一个元素之前插入一个新元素与链表长度无关
删除单链表中的最后一个元素,与链表长度无关
9、HTTP报文由从客户端到服务器的请求报文格式为:
请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体
10、DNS主机解析域名的顺序为
1浏览器缓存
2找本机的hosts文件
3路由缓存
4找DNS服务器(本地域名、顶级域名、根域名)
5迭代查询、递归查询
11、关于动态链接库和静态链接库的优缺点描述
静态库的代码装载速度比动态库快
静态库被多个应用程序使用时,会被装载多次,浪费内存
动态链接库可以共享,即多个应用程序可以使用同一个动态库