java面试题01
一、JAVA基础
1、简述你所知道的JAVA修饰符及各自的使用机制?(public、abstract、final、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、区别
String类型和StringBuffer类型的主要性能区别其实在于String是不可变对象,因此在每次对String类型进行改变的时候其实都等于生成了一个新的String对象,然后将指针指向新的String对象,所以经常改变内容的字符串最好不要用String,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后,JVM的GC就会开始工作,那速度一定会相当慢的。
02、执行速度:
三者在执行速度方面的比较:StringBuilder>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 Schema支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项,DOM4J是一个非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的Java软件都在使用DOM4J来读写XML,特别值得一提的是连Sun的JAXM也在用DOM4J。
二、javascript相关:
1.javascript有哪些打开一个页面的方式?
01.window.open(sURL[,vArguments] [,sFeatures]) 新页面
02.window.showmodaldialog(sURL[,vArguments] [,sFeatures]) 模态对话框
03.window.showModelessDialog(sURL[,vArguments] [,sFeatures]) 非模态对话框
2.页面加载完后调用js方法如何实现?
body 标签加 onload事件,<body onload="alert(1);">
3.innerHTML和outerHTML的区别是什么?
01、使用innerHTML的时候将找着元素的内容(不包含元素本身)
使用outerHTML的时候将找着元素的内容(包含元素本身)
02.例子:
<a href=”test.jsp”>test</a>,innerHTML取到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)、名称(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:以下查询的处理速度(返回数据量相同)从高到低排列?
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,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
java面试题01的更多相关文章
- Java面试题(全)--视频系列
此系列为面试笔试题的视频讲解,以下均为超链接,点击即可进入每个知识点的讲解. Java面试题01.面试的整体流程 Java面试题02.java的垮平台原理 Java面试题03.搭建一个java的开发环 ...
- Java设计模式面试题 01 - 六大原则
Java设计模式面试题 01 - 六大原则 1. 单一职责原则 Single Responsibility Principle SRP原则 分清职责,接口一定要做到单一职责,方法也要做到,类尽量做到 ...
- Java实现 LeetCode 面试题 01.07. 旋转矩阵(按照xy轴转+翻转)
面试题 01.07. 旋转矩阵 给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节.请你设计一种算法,将图像旋转 90 度. 不占用额外内存空间能否做到? 示例 1: 给定 mat ...
- java面试题及答案(转载)
JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...
- Java面试题大全(四)
JAVA代码查错 1. abstract class Name { private String name; public abstract boolean isStupidName(String n ...
- java面试题及答案(基础题122道,代码题19道)
JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分, ...
- java面试题系列12
1.面向对象的特征有哪些方面 a.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象 ...
- Java面试题及答案(基础122道,编码19道)
JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...
- java面试题及答案
JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...
随机推荐
- Struts2 使用Jquery+ajax 文件上传
话不多说 直接上代码 前台js: var formData = new FormData(); formData.append("file1",$("#file1&quo ...
- linux PWM蜂鸣器移植以及驱动程序分析【转】
本文转载自:https://blog.csdn.net/lxllinux/article/details/80885331 一.关于PWM: PWM(Pulse Width Modula ...
- AJAX缓存清理
Ajax页面缓存是ajax处理数据时对一些重复相同数据进行一个缓存操作,这样从另一个层面对于我们来讲是非常的不错了,但有时我们并不希望它缓存要如何处理呢?下面我们一起来看看关于页面缓存问题分析与解决, ...
- Unity_3DText文字显示模糊怎么办
在unity3d中创建一个3d text文字对象模型,但是发现默认情况下显示的文字很模糊,这种情况我们可以通过放大字体尺寸的方式解决这个问题,然后通过缩放的方式改变其大小. 1.打开unity3d场景 ...
- BZOJ 2759 一个动态树好题(动态树)
题意 https://www.lydsy.com/JudgeOnline/problem.php?id=2759 思路 每个节点仅有一条有向出边, 这便是一棵基环内向树,我们可以把它在 \(\text ...
- 【Visual Studio 扩展工具】如何在ComponentOne的DataTree中实现RightToLeft布局
概述 C1FlexGrid提供了创建轮廓树的功能,其中可以显示缩进结构,每个节点行旁边都有折叠/展开图标. 然后,用户可以展开和折叠轮廓以查看所需的细节级别. 为此,C1FlexGrid允许您使用其T ...
- centos 7 已经开启 22 端口但无法连接
已经开启 22 端口但无法连接 刚买的 vps ,默认 ssh 端口是 29488, 使用以下方式连接ssh -p 29488 root@x.x.x.x觉得加端口有点麻烦, 希望使用默认的 22 端口 ...
- String.format(String format, Object... args)方法详解
很多次见到同事使用这个方法,同时看到https://blog.csdn.net/qq_27298687/article/details/68921934这位仁兄写的非常仔细,我也记录一下,好加深印象. ...
- linux中pam模块
https://www.cnblogs.com/ilinuxer/p/5087447.html linux中pam模块 一.pam简介 Linux-PAM(linux可插入认证模块)是一套共享库,使本 ...
- YII实现restful,postman进行接口测试
Yii2 restful API文档 一.配置模块: 1.Config/main.php: 2.创建模块目录: 3.Module.php: 二.路由配置: 三.控制器: 四.Models: 五.测试: ...