java知识

面试准备

Writen By CoolGhost,Started With 2016/10

  • 连接Oracle数据库操作
    ResultSet rs = null;
    Statement stmt = null;
    Connection conn = null;
    try {
        Class.forName("oracle.jdbc.driver.OracleDriver");
        conn = DriverManager.getConnection("jdbc:oracle:thin:@ip:port", "username", "password");
        stmt = conn.createStatement();
        rs = stmt.executeQuery("select * from dept");
        while (rs.next()) {
            System.out.println(rs.getString("deptno"));
        }
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        try {
            if (rs != null) {
                rs.close();
                rs = null;
            }
            if (stmt != null) {
                stmt.close();
                stmt = null;
            }
            if (conn != null) {
                conn.close();
                conn = null;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    
  • java单例模式
    public class Singleton {
      private Singleton() {}
      private static Singleton single=null;
      public static Singleton getInstance() {
           if (single == null) {
               single = new Singleton();
           }
          return single;
      }
    }
    
  • java路径
    两种方法:一种是\\\另外一种是/
  • java正则
    public class RegexMatches
    {
        private static final String REGEX = "\\bcat\\b";
        private static final String INPUT =
                "cat cat cat cattie cat";
        public static void main( String args[] ){
            Pattern p = Pattern.compile(REGEX);
            Matcher m = p.matcher(INPUT); // 获取 matcher 对象
            int count = 0;
            while(m.find()) {
                count++;
                System.out.println("Match number "+count);
                System.out.println("start(): "+m.start());
                System.out.println("end(): "+m.end());
            }
        }
    }
    
    注意,java中只用正则\需要进行转义,如\\d
  • String、StringBuffer、StringBuilder
    • 其中,String被final修饰,为不可变类,不能被继承,并且其值不能被改变。进行添加操作的时候会转换成 StringBuffer类型
    • StringBuffer、StringBuilder均为可变类,其功能基本类似,但是StringBuilder线程不安全
    • String因为是不可变类,因此不适合用来频繁的进行修改操作,而StirngBuilder和StringBuffer主要看是否运用在多线程中。另外三者都是借助char[]实现
  • 浮点默认为dobule类型,如需float类型,(float)0.1或0.1f
  • Switch
    基本类型中long、float、double类型不能用于switch、而非基本类型的String可以用于switch
  • 线程
    线程也被称为轻量级进程,是程序执行的最小单元,一个进程可以拥有多个线程,各个线程之间共享程序的内存空间。
  • 多线程有点
    • 多线程可以减少程序响应时间
    • 线程的创建和切换开销较小
    • 单线程浪费多CPU执行能力
    • 多线程能简化程序结构,便于理解和维护
  • Servlet的生命周期
    初始化阶段:调用init()方法;响应客户请求阶段:调用service()方法,并依据请求类型调用dopost和doget方法;终止阶段:调用destroy()方法
  • java读取文件
    //字节流,不会出现乱码
    File file=new File(filePath);
    if(file.isFile() && file.exists()){ //判断文件是否存在
        InputStreamReader read = new InputStreamReader(new FileInputStream(file),encoding);//考虑到编码格式
        BufferedReader bufferedReader = new BufferedReader(read);
        String lineTxt = null;
        while((lineTxt = bufferedReader.readLine()) != null){
            System.out.println(lineTxt);
        }
        read.close();
    }else{
        System.out.println("找不到指定的文件");
    }
    
    //字符流,可能出现乱码
    FileReader fr=new FileReader(filePath);
    BufferedReader bufferedReader = new BufferedReader(fr);
    
  • servlet和cgi
    servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
  • jsp跳转方式
    有两种:
    • forward跳转:<jsp:forward page ="跳转页面地址">
      • 服务器端跳转,地址栏不改变。
      • 执行到跳转语句后马上执行跳转,之后的代码不再执行(跳转之前一定要释放全部资源)。
      • request设置的属性在跳转后的页面仍然可以使用。
    • response跳转:response.sendRedirect("跳转页面地址")
      • 客户端跳转,地址栏改变。
      • 所有代码执行完毕后跳转。
      • 跳转后页面不能使用上一个页面的request。
      • 使用地址重写传递参数(response.sendRedirect("URL?参数名=参数值"))。
  • java数组初始化赋值
    int[] nums = {0,1,2,3,4,5,6,7,8,9};
    int[] nums = new int[]{0,1,2,3,4,5,6,7,8,9};
    
  • 抽象类
    其子类权限只能扩大,不能缩小。
  • java static
    public class Alpha {
        static int i = 1;
        static {
            i++;
        }
        public Alpha() {
            i++;
        }
        public static void main(String[] args) {
            Alpha t1 = new Alpha();
            System.out.println(t1.i);       //3
            Alpha t2 = new Alpha();
            System.out.println(t2.i);//4 静态资源只执行一次
        }
    }
    
  • SQL truncate 、delete与drop区别
    • truncate 和 delete 只删除数据不删除表的结构
    • delete 语句是数据库操作语言(dml),事务提交之后才生效。truncate、drop 是数据库定义语言(ddl),立即生效,不处罚事务。
  • mybatis
    • statementType设置为CALLABLE,默认情况下是PREPARED
    • 一般使用#,$符号只有在特定情况下,如表前缀才使用,可能带来SQL注入
    • jdbctype如果不设定,并且如果参数为null,则会1111错误
  • spring mvc
    • 运行流程


      流程
      流程
      • 用户发送请求时,首先被DispatcherServlet捕获
      • DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping
      • HandlerMapping根据请求,访问不同Controller进行处理
      • Controller进行业务的处理,完成后将返回的数据和跳转到的界面封装到ModelAndView
      • ViewResolver解析Controller返回的ModelAndView,读取其信息,然后渲染界面完成一次请求
    • mvc:view-controller,让请求不通过Handler,直接访问到响应视图。而在配置这个标签之后,默认的@RequestMapping将会失效,这个时候需要配置mvc:annotation-driven。而mvc:resources则是用来配置静态资源比如:css,js之类。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,608评论 18 399
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 4,585评论 1 114
  • 一. Java基础部分.................................................
    wy_sure阅读 3,809评论 0 11
  • 1. 面向对象的特征有哪些方面? 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方...
    程序熊大阅读 4,370评论 6 74
  • 从前的记忆,依然很清晰 。我仍然记得你总是喜欢牵着我的小手走街串巷,依然记得你总是喜欢带着我去家边的油菜地上,你...
    不要藏在心里就好阅读 238评论 1 0