目录
2.Statement和PreparedStatement用法
今天去参加了一场国企单位的笔试,很基础,但是有些细节的地方还是觉得答得不好,所以复盘一下。
finalize: 是Object类的一个方法,因为所有的类都继承自Object类,所以所有的类都有finalize方法。 在垃圾收集器将该对象清除出内存之前会先调用它的finalize方法,做一些内存清理工作,通常这部分内存是非java内存,如socket,finalize只会被调用一次。
程序员都了解初始化的重要性,但是会常常忘记同样重要的清理工作,java有垃圾回收器负责回收无用对象占用的内存资源,但是也有特殊情况,你的对象获得了一块特殊的内存区域,并不是通过 new 方法,由于垃圾回收器只知道释放那些经由new分配的内存, 所以它不知道如何释放这些特殊的内存。
java 考虑到这种情况,允许在类中定义一个名为 finalize() 的方法。他的工作原理是这样的:一旦垃圾回收器准备释放对象占用的存储空间,将首先调用 finalize() 方法,并在下一次垃圾回收动作发生时,才会真正的回收对象占用的内存。就像为垃圾回收器添加一个回调方法一样。
这个题我只回答了是Object类的方法,可以进行手动GC,不是很准确。
这里考的是一道选择题,因为实在是很少手动写jdbc,平时太过依赖框架和IDE的自动生成,很遗憾,答错了。
- stmt = conn.createStatement();
- ResultSet rs = stmt.executeQuery(sql);
createStatement方法是没有参数,PreparedStatement才有,晕,实在是不怎么写这种代码。
ps = conn.prepareStatement(sql);
这个太细节了,只能强记。

接口方法只能使用public,既然只能用public,java编译器在你忘了在方法前写public的时候干脆自动帮你转成public了。
至于接口类能不能用protected,自己看吧

- public class PrimeTest {
-
- public static void main(String[] args) {
- Scanner in=new Scanner(System.in);
- int number=in.nextInt();
- if(isPrime(number)){
- System.out.print(number);
- }else{
- System.out.print(number+"=");
- factor(number);
- }
-
- }
- public static void factor(int num){
- for(int i=2;i<num;i++){
- if(num%i==0){
- System.out.print(i+"*");
- if(isPrime(num/i)){
- System.out.print(num/i);
- }else{
- factor(num/i);
- }
- //结束方法非常重要,下面的方法就会因为方法没有结束而继续进行下去
- return;
- }
- }
- }
-
- public static boolean isPrime(int num){
- boolean isPrime=true;
- for(int i=2;i<num;i++){
- if(num%i==0){
- isPrime=false;
- break;
- }
- }
- return isPrime;
- }
- }
-