zoukankan      html  css  js  c++  java
  • 面试题01

    1、jvm加载class文件原理机制

      答:jvm中类的装载是由classLoader和它的子类来实现的,java ClassLoader是一个重要的java运行时系统组件,它负责在运行时查找和装入类文件的类。

    2、简述Servlet生命周期

      答:Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

    3、jsp和Servlet有哪些相同点,那些不同点?

      答:jsp是servlet技术的扩展,本质上是servlet的简易方式,更强调应用的外表表达。jsp编译后是"类servlet"。servlet和jsp最主要的不同点在于,servlet的应用逻辑在java中,并且完全从表示层中的HTML里分离开来。而JSP的情况是java和HTML可以组合成一个.jsp的文件。jsp侧重于视图,servlet主要用于控制逻辑。

    4、jsp中数据传递到页面有哪几种方法?

      答:request、session、application、cookie

    5、各自简述final、finally、finalize的基本作用

      答:final--用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。

        finally--是异常处理语句结构的一部分,表示总是执行

        finalize--是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集的其他资源回收,例如关闭文件等。

    6、JDBC连接数据库的完成代码

      答:Class.forName("驱动类的名称");-------加载驱动

        Connection con=DriverManager.getConnection("数据库连接字符串","数据库用户名","密码");--------与数据库连接

        Statement stmt=con.createStatement();

        Resulte rs=stmt.executeQuery("SQL查询语句");--发送sql语句,并得到返回结果

        while(rs.next()){int id=rs.getInt(id)}----处理返回结果

    7、写一个方法,实现字符串的反转,如:输入abc输出cba.

      答:public class Test{

          public static void main(String[]ags){

            String a="abc";

            char s[]=a.toCharArray();

            for(int i=s.length-1;i>=0;i--){

              System.out.println(s[i]);

          }

        }

      }

    8、简述servlet和cgi的区别

      答:与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务与多个请求,并且其实例一般不会销毁,而cgi对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

    9、SingleTon(单态)模式?

      答:SingleTon模式主要作用是保证在java应用程序中,一个类Class只有一个实例的存在。

    10、作用域public、private、protected以及不写时的区别?

      答:public定义的类、方法和属性其他类可以调用使用

        private定义的类、方法和属性其他类不允许调用,它只能在本类中使用

        protected定义的类、方法和属性与它同包可见+不同包的子类可见

    11、分别写出下面运算结果,直接写在“----”后面

      答:alert(typeof(null))----object    alert(typeof(undefined))-----undefined

        alert(typeof(NaN))-----number    alert(NaN==undefined)-----false

        alert(NaN==NaN)-----false

                    var str="123abc"

        alert(typeof(str++))----number    alert(str)----NaN

    12、面向对象的特征有哪些方面

      答:继承:派生类可以从它的基类哪里继承方法和实例变量,并且类可以修改或增加新的方法使之更合适特殊的需要。

        封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。

        多态性:多态性是指允许不同类的对象对同一个消息作出响应。多态性包括参数化多态性和包含多态性。

    13、String是最基本的数据类型嘛?

      答:基本数据类型包byte、int、char、long、float、double、boolean、short。java.lang.String类是final类型,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该使用StringBuffer类。

    14、String和StringBuffer的区别?

      答:它们可以存储和操作字符串,即包含多个字符数据,这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变时你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符串。

    15、说出ArrayList、Vector、LinkedList的存储性能和特征

      答:ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差。而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

    16、Collection和Collections的区别?

      答:Connection是集合类的上级接口,继承与他的接口主要有Set和List

        Collections是针对集合类的一个帮助类、他提供一系列静态方法实现对各种集合的搜索、排序、线程安全等操作。

    17、&和&&的区别?

      答:&是位运算符,表示按位运算,&&是逻辑运算符,表示逻辑与(and).

    18、Sleep()和wait()有什么区别?

      sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。 
    wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

    19、Overload和Override的区别。Overloaded的方法是否可以改变返回值类型

      答:重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

    20、EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?

      答:SessionBean:Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个Bean的实例时,EJB容器不一定要创建一个新的Bean的实例供客户机调用,而是随便找一个现有的实例提供给客户机。当客户机第一次调用一个Stateful Session Bean 时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例。 
    EntityBean:Entity Beans能存活相对较长的时间,并且状态是持续的。只要数据库中的数据存在,Entity beans就一直存活。而不是按照应用程序或者服务进程来说的。即使EJB容器崩溃了,Entity beans也是存活的。Entity Beans生命周期能够被容器或者 Beans自己管理。

    21、数组有没有length()这个方法?String有没有Length()这个方法?

      答:数组没有length()这个方法,有length的属性。String有Length()这个方法。

    22、构造器Constructor是否可被Override?

      答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。

    23、请说出你所知道的线程同步的方法?

      答:wait():使一个线程处于等待状态,并且释放所持有的对象的lock。 
        sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。 
        notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。 
        Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。

    24、多线程有几种实现方法,都有什么?同步有几种实现方法,都是什么?

      答:多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 
        同步的实现方面有两种,分别是synchronized,wait与notify

    25、JSP的内置对象及方法?

      答:request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,提供了用于获取cookie, header, 和session数据的有用的方法。 
         response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如cookies,头信息等) 
        out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。 
        pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。 
        session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息 
        applicaton表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息
        config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。 
        page表示从该页面产生的一个servlet实例

  • 相关阅读:
    05-傅里叶变换的理解总结
    04-积分图与Boxfilter
    03-形态学操作(针对灰度图像)
    02-形态学操作(针对二值图像)
    01-形态学操作:腐蚀与膨胀、开运算与闭运算
    LINUX内核学习起步:学习开发环境搭建
    转载:查看linux系统版本是32位的还是64位的
    我的第一个内核模块
    LINUX内核学习起步:深入理解linux内核
    Java--Stream流操作
  • 原文地址:https://www.cnblogs.com/lanliying/p/3135868.html
Copyright © 2011-2022 走看看