zoukankan      html  css  js  c++  java
  • java常见面试题目(一)

    在大四实习阶段,秋招的时候,面试了很多家公司,总结常见的java面试题目:(答案可以自己百度)

    1、你所用oracle的版本号是多少?

    2、tomcat修改8080端口号的配置文件是哪个?

    3、mybatis与jdbc区别?

    4、mybatis的三种连接方式?

    5、servle与jsp的生命周期?

    Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:

    • Servlet 通过调用 init () 方法进行初始化。
    • Servlet 调用 service() 方法来处理客户端的请求。
    • Servlet 通过调用 destroy() 方法终止(结束)。
    • 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

     SP生命周期就是从创建到销毁的整个过程,类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成servlet。

    以下是JSP生命周期中所走过的几个阶段:

    • 编译阶段:

      servlet容器编译servlet源文件,生成servlet类

    • 初始化阶段:

      加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法

    • 执行阶段:

      调用与JSP对应的servlet实例的服务方法

    • 销毁阶段:

      调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例

    很明显,JSP生命周期的四个主要阶段和servlet生命周期非常相似,下面给出图示:

    6、jsp和servlet的区别和联系?

    7、说说对spring的理解,以及spring的优点。

    8、springmvc的基本原理。

    9、跨域问题,tomcat中三种写地址的方式哪种会遇到跨域问题?(被一个研发经理问懵我的问题)

    10、Linux中基本shell命令,说说你熟悉的几个。

    11、集合的框架,hashmap与hashtable的区别。

    12、线程的5种状态,线程实现同步的方式有几种?分别是什么?

    13、wait 与sleep区别。

      1.这两个方法来自不同的类分别是Thread和Object
      2.最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法(锁代码块和方法锁)。
      3.wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用(使用范围)
      4.sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常
      5.sleep方法属于Thread类中方法,表示让一个线程进入睡眠状态,等待一定的时间之后,
      自动醒来进入到可运行状态,不会马上进入运行状态,因为线程调度机制恢复线程的运行也需要时间,
      一个线程对象调用了sleep方法之后,并不会释放他所持有的所有对象锁,所以也就不会影响其他进程对象的运行。
      但在sleep的过程中过程中有可能被其他对象调用它的interrupt(),产生InterruptedException异常,
      如果你的程序不捕获这个异常,线程就会异常终止,进入TERMINATED状态,如果你的程序捕获了这个异常,
      那么程序就会继续执行catch语句块(可能还有finally语句块)以及以后的代码。

      注意sleep()方法是一个静态方法,也就是说他只对当前对象有效,通过t.sleep()让t对象进入sleep,这样的做法是错误的,
      它只会是使当前线程被sleep 而不是t线程
      wait属于Object的成员方法,一旦一个对象调用了wait方法,必须要采用notify()和notifyAll()方法唤醒该进程;
      如果线程拥有某个或某些对象的同步锁,那么在调用了wait()后,这个线程就会释放它持有的所有同步资源,
      而不限于这个被调用了wait()方法的对象。wait()方法也同样会在wait的过程中有可能被其他对象调用interrupt()方法而产生

    14、switch()的条件语句类型

        byte、short、char、int、enum

          在jdk1.5上,Byte、Short、Character、Integer也支持。

    15、==和equals的区别
      ==:比较基本数据类型时 比较的是值
          比较引用类型时,比较的是地址值
      equals:继承Object类型的equals方法:
            public boolean equals(Object obj) {
               return (this == obj);
            }
           重写了equals方法:按照自定义的比较规则
      String重写了equals,比较内容。

    16、重载和重写的区别:
     重载:同一个类中
     1.方法名字相同
     2.参数列表必须不同(参数个数 参数类型 参数顺序)
     3.其他无关
     
     重写:子父类之中
     1.方法名相同
     2.参数列表相同
     3.返回类型一致 或者 存在子父类关系(Object Integer)
     4.访问修饰符扩大或者相同
     5.异常缩小或者相同

  • 相关阅读:
    opencv imdecode和imencode用法
    caffe网络中屏蔽某一层的输出Silence层
    Opencv画图操作
    linux读取Windows的txt文件问题
    yolo检测系列
    c提取文件路径、文件名和后缀名
    draknet网络配置参数
    darknet源码解析
    Web_Toy
    Heart thing
  • 原文地址:https://www.cnblogs.com/jk-jun/p/10102156.html
Copyright © 2011-2022 走看看