• Java面试题01


    Java面试题(01

    一、Java基础

    1、简述你所知道的JAVA修饰符及各自的使用机制? (publicabstractfinalsynchronizesupper.... )

    01public :公共的,允许所有客户访问。

    02protected :只能在本包内被该类的子类所使用。

    03private :私有的,只能在本类使用。

    04abstract :抽象类,没有提供实现,需要子类提供。修饰的类即为抽象类,不能被实例化

    05static static修饰的变量叫静态变量,可以用来修饰成员变量、成员方法,除此之外,还可以修饰程序中的代码块,称之为静态代码块。仅在类加载时执行一次

    06final:你只能定义一个实体一次,以后不能改变它或继承它。一个final修饰的类不能被子类化,一个final修饰的方法不能被重写,一个final修饰的变量不能改变其初始值 。

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

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

     

    2StringStringBufferStringBuilder之间区别?别简述各自的执行效率?  

    区别:String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象,

    因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然

    后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每

    次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM GC 就会

    开始工作,那速度是一定会相当慢的,

     

    执行速度:三者在执行速度方面的比较:

    StringBuilder >  StringBuffer  >  String

     

    使用场景:

    01.如果要操作少量的数据用 = String  

    02.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder

    03.多线程操作字符串缓冲区 下操作大量数据 = StringBuffe

     

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

    Overload是重载,是有相同的方法名,但参数类型或个数彼此不同

    Override是重写,是在子类与父类中,子类中的方法的方法名,参数个数、类型都与父类中的完全

    一样,在子类中覆盖掉了父类的改方法。

     

    4JAVA SERVLET APIforward() redirect()的区别?  

    使用forward的时候浏览器不知道它所请求的具体资源来源,所以地址栏不会变;  

    使用redirect,服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址。所以地址栏显示的是新的URL。  

    forward,转发页面和转发到的页面可以共享request里面的数据.redirect,不能共享数据。

     

    5JAVA解析XML有哪几种方法?并简述各自的优缺点?

    DOM:

      是用与平台和语言无关的方式表示XML文档的官方W3C标准,分析该结构通常需要加载整个文档和构造层次结构,

    然后才能做任何工作。是基于信息层次的

    优点有:由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候

    在树中上下导航,而不是像SAX那样是一次性的处理。DOM使用起来也要简单得多。

    SAX :

      对于特别大的文档,解析和加载整个文档可能很慢且很耗资源,因此使用其他手段来处理这样的数据会更好。

    这些基于事件的模型,比如SAX。这种处理的优点非常类似于流媒体的优点。分析能够立即开始,而不是等待所有

    的数据被处理。而且,由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型

    文档来说是个巨大的优点。事实上,应用程序甚至不必解析整个文档;它可以在某个条件得到满足时停止解析。

    一般来说,SAX还比它的替代者DOM快许多。

    JDOM

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

    DOM4J:

      它是JDOM的一种智能分支。它合并了许多超出基本XML文档表示的功能,包括集成的XPath支持、XML Schema

    持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项, DOM4J是一个非常优秀的Java

    XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越

    来越多的Java软件都在使用DOM4J来读写XML,特别值得一提的是连SunJAXM也在用DOM4J

    二、JavaScript相关

    1、JavaScript有哪些打开一个页面的方式?

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

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

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

     

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

    body标签加onload事件如<body onload=alert(1);>

     

     

    3、interHTMLoutHTML的区别是什么?

    innerHTML取页面元素标签内部的内容,

    outerHTML取包含元素标签的内容如<ahref=test.jsp>test</a>,

    innerHTML取到test

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

     

     

    4、JavaScript如何做到页面局部刷新?

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

     

    三、数据库相关

    1、存储过程和函数的区别?

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

     

     

    2、oracletruncatedelete命令有何区别?

    delete将在回滚段中产生回滚信息,truncate不产生,因此无论表中的记录多少,truncate执行都很快。

    truncate DDL,执行隐含的committruncate不能回滚。

     

     

    3、oraclecharvarchar2数据类型有什么区别?有数据test分别存放到char(10)

    Varchar2(10)类型的字段中,其存储长度及类型有何区别?

    Achar是定长字符类型,varchar2是变长字符类型。“test”在char(10)中被补齐空格,存储长度是10字节,在varchar2(10)中存储长度是4字节。

     

     

    4、假如系统中有如下四张表:

    1)文档表(DOC:编号(docid)、名称(docname)、描述(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  以下查询的处理速度(返回数据量相同)从高到底排列?( B>A>C)

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

    B、Select * from doc where docid=50

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

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

    select XSMC from XS,CJ 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

  • 相关阅读:
    应用程序如何实现高级量规界面自定义?这个第三方控件很好用
    Web应用开发的透视网格如何实现本地化?一招教你轻松搞定
    这个布局助手工具,帮你快速构建美观的WinForm应用
    用于Delphi的DevExpress VCL组件——增强布局控件性能
    JS/TS生成随机姓名
    单例模式的错误用法
    Node极速开发WebSocket服务器
    Unity中实现WebSocket客户端
    解决git每次输入密码的问题
    html转md
  • 原文地址:https://www.cnblogs.com/lichao666888/p/7616801.html
Copyright © 2020-2023  润新知