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

    一 、java基础

    1.简述你所知道的java修饰符及各自的使用机制?(public、abstract、finally、synchronized、super...)

    01.public:允许所有客户访问

    02.protected:只能在本包,本类及该类的字类中使用

    03.private:只允许在本类中使用

    04.abstract:没有提供实现,需要子类提供实现

    05.static:与整个类相关,与单个对象无关

    06.final:final修饰的类,不能被继承,final修饰的方法,不能被重写,final修饰的变量,不能该变其初始值。

    07.synchronized:方法获得对对象监控的访问权,如果该方法是static类型,获得是对类本身的访问权。

    08.super:构造器和方法,都用关键字super指向超类。但是用的方法不一样,方法用这个关键字去执行被重载的超类中的方法。

    2、String、StringBuffer和StringBuilder之间的区别?分别简述各自的执行效率?

    01.区别

          1)String类型和StringBuffer类型的主要性能区别在于其实在于String是不可变对象,因此在每次对String类型进行改变的时候其实都等于生成了一个新的String对象,然后将指针指向新的String对象,所以经常改变内容的字符串最好不要用String,因为每次生成的对象都会对系统性能产生影响,特别当内存中无引用对象多了以后,jvm的GC就会开始工作,那速度一定会相当慢。

           2)StringBuilder是线程非安全的,StringBuffer是线程安全的

    02、执行速度

          三者在执行速度方面的比较,大部分情况下:StringBuiler>StringBuffer>String

    03.使用场景:

    a、如果要操作少量的数据用String

    b、单线程操作字符串缓冲区下 操作大量数据使用StringBuilder

    c、多线程操作字符串缓冲区下 操作大量的数据使用StringBuffer

    3、重载和重写的区别。重载的方法是否可以改变返回值类型?

    01.重载:在同一个类中,相同的方法,但参数类型或者个数不同,与返回值类型无关。同名不同参。

    02.重写:在父类和子类中,子类中的方法的方法名,参数个数,参数类型,都与父类中的完全一样,返回值类型也不必须相同。

    4、JAVA SERVLET API forward()与redirect()的区别?

    01.forward:转发是服务器行为,转发的时候浏览器不知道他所请求的具体资源来源,所以url不会变。转发的时候可以共享request里面的数据。

    02.redirect:重定向是客户端行为,服务器根据逻辑发送一个状态码,告诉浏览器重新去请求那个地址,所以地址显示的地址是新的url,重定向不能携带参数。

    5、java解析xml有哪几种方法?简述各自的优缺点

    01.DOM解析:

       是用与平台和语言无关的方式表示xml文档的官方w3c标准,分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作,是基于信息层次的。

     优点:由于树在内存中使持久的,因此可以修改他以便应用程序能对数据和结构做出更改。他还可以在任何时候在树中上下导航,而不是向SAX那样是一次性处理的。DOM使用起来也要简单的多。

    02、SAX解析:

      对于特别大的文档,解析和加载整个文档可能很慢且很消耗资源,因此使用其他手段来处理这样的数据会更好,这些基于事件的模型,比如SAX。这种处理的优点非常类似于流媒体的优点。分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点。事实上,应用程序甚至不必解析整个文档;他可以在某个条件的到满足时停止解析。一般来说,SAX还比他的替代者DOM快许多。

    03、JDOM解析:

      目的是成为Java特定的文档模型,他简化与XML的交互并且比使用DOM实现更快。

    04、DOM4J解析:

       他是JDOM的一种智能分支。它合并了许多超出基于xml文档表示的功能,包括结成的XPath支持、XML Schena支持以及用于大文档或流文化文档的基于事件的处理。它还提供了构建文档表示的选项,DOM4J是一个非常优秀的java xml API,具有性能优异、功能强大和极端以使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的java软件都在使用DOM4J来读写XML,特别值得一提的是连Sun的JAXM也在用DOM4J。

    二、javascript相关

    1.javascript有哪些打开一个页面的方式?

    01.window.open(sURL[, vArguments] [, sFeaturs])  新页面

    02.window.showmodaldialog(sURL[, vArguments] [, sFeaturs] ) 模态对话框

    03.window.showModelessDialog(sURL[, vArguments] [, sFeaturs])  非模态对话框

    2.页面加载完后调用js方法如何实现?

       body标签加onload事件,<body  onload="alert(1);">

    3.innerHTML和outerHTML的区别是什么?

    01.使用innerHTML的时候将找到的元素的内容(不包含元素本身)

          使用outerHTML的时候将找到元素的内容(包含元素本身)

    02、例子:

       <a href="test.jsp">test</a>,innetHTML取到test,outerHTML取到  <a href="test.jsp">test</a>

    4.javascript如何做到页面的局部刷新?

      使用AJAX。原理:获取一个请求对象,向指定的url发送请求,当请求完成时(状态为4),获取到请求返回的内容,并将内容填充到局部页面。

    三、数据库相关

    1.存储过程和函数的区别:

       存储过程是用户定义的一系列sql语句的集合,涉及特定表或其他对象的任务,用户可以调用存储过程。而函数通常是数据库已经定义的的方法,他接受参数并返回某种类型的值并且不涉及特定用户表。

    2.oracle中truncate和delete命令有何区别?

     删除表中的数据的方法有delete,truncate,它们都是删除表中的数据而不能删除表结构

      01.delete可以删除整个表的数据以可以删除表中某一条或n条满足条件的数据

      02.truncate只能删除整个表的数据,一般我们把delete操作收作删除表而truncate操作叫做截断表

    3.oracle中char和varchar2数据类型有什么区别?有数据”test“分别存放到char(10)和varchar2(10)类型的字段中,其存储长度及类型有何区别?

    01.char是定长字符埃型,varchar2是变长字符类型

    02.”test“在char(10)中被补齐空格,存储长度是10,在varchar2(10)中存储长度是4字节

    4.数据库操作题

    假如系统中有如下四张表

    1)文档表(DOC):编号(docid),名称(douname),描述(docdesc);docid为主键,docname有索引;

    2)学生表(XS):学生代码(XSDM),学生名称(XSMC)

    3)学科表(XK):学科代码(XKDM),学科名称(XKMC),最高分数(ZGF);

    4)成绩表(CJ):学生代码(XSDM),学科代码(XKDM),成绩(CJ)。

    问题1:写出您最长用的sql语句关键词

    01、数据操作

    select   ------从数据表中检索数据行和列

    insert   -------想数据表中添加新的数据行

    delete  -------从数据库表中删除数据行

    update  ------更新数据库表中的数据

    02、数据定义

    create table  ---创建数据库

    drop table   ---从数据库中删除表

    alter  table   ---修改数据库表结构

    03、数据控制

    grant   --授予用户访问权限

    deny  ---拒绝用户访问

    revoke  --解除用户访问权限

    04、事物控制

    commit   ---结束当前事物

    rollback  ---终止当前事物

    set  transaction   ---定义当前事务数据访问特征

    问题2:以下查询的处理速度(返回数据量相同)从高到低排列?

    A、select * from doc where docname=’test’ 

    B、select * from doc where docid=50 

    C、select * from doc where docdesc=’test’ 

      速度:B>A>C

    问题3:列出有不及格(小于60分)的学生姓名(sql语句):

          select XSMC from XS、XSCJ where XS.XSDM=CJ.XSDM  and CJ<60;

    问题4:统计每个学生的总分(sql语句);

          select XSMC,SUM(CJ) from XS,CJ where XS.XSDM=CJ.XSDM  GROUP BY XSDM

    问题5:列出没有不及格(大于等于60分)的学生姓名及平均分(sql语句):

          select XSMC,AVG(CJ) from XS,CJ where XS.XSDM=CJ.XSDM and CJ>=60 GROUP BY XSDM

  • 相关阅读:
    java根据图片路径下载到服务器方案 (转)
    什么是JSP (转)
    获取给定月中哪些天有聊天记录
    患者咨询服务区数据获取
    获取 不在当前设置录入状态,但是曾经设定过的测量指标 的最后测量日期
    MySQL 常用函数之——substr()
    MySql查询时间段的方法(转)
    MySQL 百万级分页优化(Mysql千万级快速分页)(转)
    mysql的sql分页函数limit使用 (转)
    MySql实现分页查询的SQL,mysql实现分页查询的sql语句 (转)
  • 原文地址:https://www.cnblogs.com/cn-930621/p/7615212.html
Copyright © 2011-2022 走看看