`

面试题(互联网网上商城行业)

 
阅读更多
晒晒一天的经历,嘻嘻......

1.class MyThread extends Thread{
public void run(){
System.out.println("MyThread run()");
}
public void start(){
System.out.println("MyThread start()");
}
}
class MyRunnabled implements Runnable{
public void run() {
System.out.println("MyRunnabled run()");
}
public void start(){
System.out.println("MyRunnabled start()");
}
}
public class TestKnowleage5<T extends Object> {
  public static void main(String[] args){ 
  Thread thread = new Thread(new MyRunnabled());
  MyThread myThread = new MyThread();
  myThread.start();
  thread.start();
  } 
}

运行结果:

MyThread start()
MyRunnabled run()
2.

继承Exception类编写一个自定义异常类MyException,在自定义异常类中加入一个方法getMyMessage(),此方法无参数,返回值为一个字符串,字符串内容为你的自定义异常信息:"你的姓名:" + Exception的getMessage()方法的返回值.格式如:

(姓名:***Exception***)。

编写一个类ExceptionMaker,在里面定义一个方法throwException(),在这个方法中制造一种异常情况,抛出一个JDK自带的异常,捕捉这个异常,并在catch处理语句中抛出你的自定义异常MyException,抛出的自定义异常要求保留原异常的信息(getMessage()的返回值);

再编写一个类MyExceptionTestCase,测试你编写的前面两个类,调用第二个类中的抛出你自定义异常的方法throwException(),捕捉你的自定义异常,并输出你自定义的异常信息

参考代码:

public class MyFirstException extends Exception{ 
    private String msg;
    
    public String getMyMessage(){
    return msg;
    }
    
    public MyFirstException(){ 
        super(); 
    } 
    public MyFirstException(String msg){ 
        super(msg); 
    } 
    public MyFirstException(String msg, Throwable cause){ 
        super(msg, cause); 
    } 
    public MyFirstException(Throwable cause){ 
        super(cause); 
        msg = "gavin's" + cause.getMessage();
    }
    
    public static void main(String arg[]) {
        ExceptionMaker em = new ExceptionMaker();
        try {
               em.throwException();
        } catch (MyFirstException e) {
               System.out.println(e.getMyMessage());
        }
 }
}
class ExceptionMaker {
    public void throwException() throws ArithmeticException, MyFirstException {
           try {
                  int i = 3 / 0;
           } catch (ArithmeticException e) {
                  System.out.println(e.getMessage());
                  throw new MyFirstException(e);
           }
    }
}


3.

 

所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
eg:and 0<>(select count(*) from admin) ---判断是否存在admin这张表;
如何防止sql注入:
1)对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和
双"-"进行转换等;
2)不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取;
3)
不要把机密信息直接存放,加密或者hash掉密码和敏感的信息;
4)
应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装;
5)
采用sql注入检测工具
6)
不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。




分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics