2016上海某公司面试题(一)

一、JAVA核心


1.什么是OO思想?


我理解的面向对象就是把某事物的特点和功能都抽象出来封装成一个类,由这个类来创建具体的对象,比如我们可以把狗封装成一个类,狗有的特点比如有毛,腿,眼睛,耳朵(这个相当于类的成员变量),狗的功能呢比如会叫,咬人(这个就相当于类的成员函数),具体要要用的时候呢,可以根据这个狗(类)来创建小白,小黑,小花等具体的狗(对象)。


2.什么事JRE?什么是JDK?


JDK,开发java程序用的开发包,JDK里面有java的运行环境(JRE),包括client和server端的。需要配置环境变量。
JRE,运行java程序的环境,JVM,JRE里面只有client运行环境,安装过程中,会自动添加PATH。


3.JAVA的三大特性分别是什么?


封装、继承、多态。


4.成员变量用static修饰符和不用static修饰符有什么区别?


1、两个变量的生命周期不同。
成员变量随着对象的创建而存在,随着对象的被回收而释放。
静态变量随着类的加载而存在,随着类的消失而消失。

2、调用方式不同。
成员变量只能被对象调用。
静态变量可以被对象调用,还可以被类名调用。
对象调用:p.country
类名调用:Person.country


5.如果变量用final修饰,则怎样?如果方法final修饰,则怎样?

用final修饰变量,为常量,值不可变;
用final修饰方法,方法不可重写;


6.请举例说明你见过那些异常。


1.java.lang.classnotfoundexception   ----指定的类不存在
2.java.lang.arrayindexoutofboundsexception ----数组下标越界
3.java.lang.illegalargumentexception ----方法的参数错误
5.NullPointerException ----空指针异常
6.ClassCastException ----类型强制转换异常
7.IOException ----输入输出异常


7.请编码实现如下功能:将字符串"L Love China"存储到硬盘上。


String str="L Love China"
File txt=new File("D:\Files");
 if(!txt.exists()){
   txt.createNewFile();
  }
  byte bytes[]=new byte[512];
  bytes=str.getBytes();   //新加的
  int b=str.length();   //改
  FileOutputStream fos=new FileOutputStream(txt);
  fos.write(bytes,0,b);
  fos.close();




二、数据库


1.你了解几种约束?


五大约束
1.—-主键约束(Primay Key Coustraint) 唯一性,非空性
2.—-唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个
3.—-检查约束 (Check Counstraint) 对该列数据的范围、格式的限制(如:年龄、性别等)
4.—-默认约束 (Default Counstraint) 该数据的默认值
5.—-外键约束 (Foreign Key Counstraint) 需要建立两表间的关系并引用主表的列


2.你接触过那些数据库对象?


Funciton:函数
Procedure:存储过程
Package:代码包,一个包里面,定义多个存储过程、函数、类型、常量等
Type:自定义数据类型
Trigger:触发器
Job:数据库作业 (定期执行的)
Table:表
Index:索引
Constraint:约束,限制各数据项应满足哪些限定条件
View:视图
Materialized View:物化视图
Sequence:序列
User:叫  用户
Synonym:同义词
Database link:数据库链接(ORACLE有,别的数据库不熟,想必也应该有,可能不叫这个名字)
TableSpace:表空间(ORACLE叫这个名字,别的数据库不熟)
CURSOR:游标


3.你使用过那些系统函数?


MySQL数据库:


一、数学函数


ABS(x)   返回x的绝对值
BIN(x)   返回x的二进制(OCT返回八进制,HEX返回十六进制)


二、聚合函数


AVG(col)返回指定列的平均值
COUNT(col)返回指定列中非NULL值的个数
MIN(col)返回指定列的最小值
MAX(col)返回指定列的最大值
SUM(col)返回指定列的所有值之和

三、字符串函数


ASCII(char)返回字符的ASCII码值
BIT_LENGTH(str)返回字符串的比特长度


四、日期和时间函数

CURDATE()或CURRENT_DATE() 返回当前的日期
CURTIME()或CURRENT_TIME() 返回当前的时间



4.存储字符串时,使用char还是varchar?使用char还是hvarchar2?


5.在oracle数据库中有如下一张表:

表名: user


表结构
id:char(20)
Name:varchar(50)
Gender:char(1)(本字段的值为F或则M)
Emial:varchar(50)

Address:varchar(200)


共有1000条记录


现在要取出性别为女的地100至110条记录,请给出sql语句






三、静态网页


1.你接触过那些标签?


1.<html></html>
2.<head></head>
3.<body></body>
4.<title></title>
5.<h1>到<h5>
6.<hr/>
7.<p></p>
8.<a></a>
9.<table></table>
10.<br>


2.你接触过那些浏览器对象?


1.window
2.Frame
3.document
4.Form
5.location
6.history
7.navigator


3.你接触过那些脚本对象


1.appliction ----该实例代表 JSP 所属的 WEB 应用本身,用于 JSP 页面,或者在 Servlet 之间信息交换。
2.config ----代表 JSP 的配置信息。
3.exception ----代表页面中的异常和错误。只有页面是错误处理页面,page 的isErrorPage 属性为 true 时该对象才可以使用。
4.out ----JSP 页面输出流,用于输出内容,形成 HTML 页面。
5.page ----代表该页面本身,也就是 Servlet 中的this,能用 page 的地方就可以用this。
6.pageContext ----代表 JSP 页面上下文,可以访问页面中的共享数据。
7.request ----客户端的请求参数都被封装在该对象里。这是一个常用对象,获取客户端请求参数必须使用该对象。
8.response ----代表服务器对客户端的响应, response 对象常用于重定向。
9.session ----该对象代表一次会话。当客户端与站点建立连接时,会话开始;当客户端关闭浏览器时,会话结束。


4.From标签的action属性可以赋予什么值?有什么作用?


绝对URL(指向其他站点)或相对URL(指向站点内的文件)、action 属性规定当提交表单时,向何处发送表单数据。



5.From标签的method属性可以赋予什么值?有什么作用?


post或get、表单数据将通过 method 属性附加到 URL 上。



6.JS如何变成获取名字为"game"的复选框所有选中的值?


思路:利用name属性值获取checkbox对象,然后循环判断checked属性(true表示被选中,false表示未选中)。


function fun(){
    obj = document.getElementsByName("game");
    check_val = [];
    for(k in obj){
        if(obj[k].checked)
            check_val.push(obj[k].value);
    }
    alert(check_val);
}




四、静态网页


1.请简述数据库连接池的工作机制?


连接池的实现是以空间换时间、J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。


2.jsp有哪些内置对象?


1、request对象客户端请求,此请求会包含来自GET/POST请求的参数通过它才能了解到客户的需求,然后做出响应。
2、response对象响应客户请求的有关信息
3、session对象它指的是客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。
4、out对象它是JspWriter类的实例,是向客户端输出内容常用的对象
5、page对象它是指向当前JSP页面本身,有点象类中的this指针,它是 Java.lang.Object类的实例
6、application对象它实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭
7、exception对象它是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。
8、pageContext对象它提供了对JSP页面内所有的对象及名字空间的访问
9、config对象它是在一个Servlet初始化时,JSP引擎向它传递信息用的


3.如何配置一个Servlet?


A)、新建一个类继承HttpServlet,重写doGet或者是doPost方法。
B)、在web.xml中进行配置 <servlet> 、<servet-mapping>进行映射。


五、web方向常用技术


1.你接触过正则表达式吗?如何在js中校验数字?


接触过:

function validate(){

    var reg = new RegExp("^[0-9]*$");

    var obj = document.getElementById("name");

    if(!reg.test(obj.value)){
        alert("请输入数字!");
    }
    if(!/^[0-9]*$/.test(obj.value)){
        alert("请输入数字!");
    }
  }

2.你接触过那些解析xml文件的工具?


A)、DOM解析
B)、SAX解析
C)、JDOM解析
D)、DOM4J解析


3.你是否接触过ajax?用它解决什么问题?


是,实现无刷新分页,登录验证。



4.你是否使用过jquery?为什么使用?


用过、因为他兼容性好、有强大的选择器、链式编程、开源、在项目中使用可以提高开发效率。


六、框架


1.是什么BS架构?什么是CS架构?


CS(Client/Server):客户端----服务器结构。C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。

BS(Browser/Server):浏览器----服务器结构。BS的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。


2.你接触过那些框架?


spring、spring mvc、hibernate、struts2、spring boot、shiro、mybatis等等。


3.Hibernate中你使用过那些关联映射配置?


有:一对一关系映射、一对多关系映射、多对多关系映射


4.请简述你对AOP的理解?

面向切面编程,本质就是过滤器、面向切面编程的目标就是分离关注点。什么是关注点呢,就是你要做的事,就是关注点。假如你是个公子哥,没啥人生目标,天天就是衣来伸手,饭来张口,整天只知道玩一件事!那么,每天你一睁眼,就光想着吃完饭就去玩(你必须要做的事),但是在玩之前,你还需要穿衣服、穿鞋子、叠好被子、做饭等等等等事情,这些事情就是你的关注点,但是你只想吃饭然后玩,那么怎么办呢?这些事情通通交给别人去干。在你走到饭桌之前,有一个专门的仆人A帮你穿衣服,仆人B帮你穿鞋子,仆人C帮你叠好被子,仆人C帮你做饭,然后你就开始吃饭、去玩(这就是你一天的正事),你干完你的正事之后,回来,然后一系列仆人又开始帮你干这个干那个,然后一天就结束了!


AOP的好处就是你只需要干你的正事,其它事情别人帮你干。也许有一天,你想裸奔,不想穿衣服,那么你把仆人A解雇就是了!也许有一天,出门之前你还想带点钱,那么你再雇一个仆人D专门帮你干取钱的活!这就是AOP。每个人各司其职,灵活组合,达到一种可配置的、可插拔的程序结构。


从Spring的角度看,AOP最大的用途就在于提供了事务管理的能力。事务管理就是一个关注点,你的正事就是去访问数据库,而你不想管事务(太烦),所以,Spring在你访问数据库之前,自动帮你开启事务,当你访问数据库结束之后,自动帮你提交/回滚事务!








评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值