JAVA百度实习生面试题

1.简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。(15分)
2.下面程序运行会发生什么结果?如果有错误,如何改正? (15分)
interface  A{
  int x = 0;
}
class B{
  int x =1;
}
class C
    extends B implements A {
  public void pX(){
    System.out.println(x);
  }
  public static void main(String[] args) {
    new C().pX();
  }
}
}


3.简述 Java Server Page 和 Servlet 的联系和区别。(20分)
4.XML文档定义有几种形式?它们之间有何本质区别?
解析XML文档有哪几种方式?(20分)
5.简述synchronized和java.util.concurrent.locks.Lock的异同 ?(15分)
6.EJB规范规定EJB中禁止的操作有哪些?(15分)  

最后还有一题考考你的眼力:

public String toString(){
   return this + "@" + this.hashCode();
}
这个toString()方法实现有无不当的地方?(toString方法其实可以按你想输出的任何内容输出一些该类的信息)


**********************************************************************************

public String toString(){
   return this + "@" + this.hashCode();
}


会变成

public String toString(){
   return String.valueOf(this) + "@" + String.valueOf(this.hashCode());
}

而valueOf方法又将去调用toString();
/**
   public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
    }
*/


这样好像会有问题了吧???

以下答案供参考(不一定完全正确),也没有很详细说明.相关知识可以自己参考相关资料加上自己的理解.欢迎拍砖

1.简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。(15分)
区别主要答两点:
a.条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作数值型
b.逻辑操作不会产生短路.如:
int a = 0;
int b = 0;

if( (a = 3) > 0 || (b = 3) > 0 ) //操后a =3,b=0.
if( (a = 3) > 0 | (b = 3) > 0 ) //操后a =3,b=3.
 
答对第一点得5分,答对第二点得10分.

本题考察最最基本的知识,但仍然有很多大牛级开发人员下马,任何语言在开始的部分
都会详细介绍这些基本知识,但除了学习第一种语言时,没有人在学习新的语言时愿意
花五分钟来复习一下.


2.下面程序运行会发生什么结果?如果有错误,如何改正? (15分)
interface  A{
  int x = 0;
}
class B{
  int x =1;
}
class C
    extends B implements A {
  public void pX(){
    System.out.println(x);
  }
  public static void main(String[] args) {
    new C().pX();
  }
}
}

本题在编译时会发生错误(错误描述不同的JVM有不同的信息,意思就是未明确的x调用,
两个x都匹配,就象在同时import java.util和java.sql两个包时直接声明Date一样)

本题主要考察对接口和类的最最基本的结构的了解.对于父类的变量,可以用super.x来
明确,而接口的属性默认隐含为 public static final.所以可以通过A.x来明确.

3.简述 Java Server Page 和 Servlet 的联系和区别。(20分)
本题不用多说,在答相同点时应该明确知道jsp编译后是"类servlet"而"不是Servlet",
答区别时应该回答出"侧重于(视图/控制逻辑)".其它可根据情况加减分值.知识很简单,
但从面试的角度看,被试者不仅要能知道它们的区别,而且要能比较准确地表达出来(以
后写文档要能让别人看得懂,不产生歧义),回答"jsp编译后就是servlet"视为错误,回答
"jsp用于视图,servlet用于控制逻辑"视为错误,应该用侧重于,主要(多数)用于等词语
表达.


4.XML文档定义有几种形式?它们之间有何本质区别?
解析XML文档有哪几种方式?(20分)
本题三个答题点:
a: 两种形式 dtd,schema
b: 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的
根本目的)
c: 两种主要方式:dom,sax.答出两种得全分,如能答出saxt,或其它(在答出dom,sax的基
础上,如果应试者认为其它方式也可以视为对xml的解析应该允许.但没有答出dom,sax把
其它方式说成是对XML的解析不得分)应该加分.

5.简述synchronized和java.util.concurrent.locks.Lock的异同 ?(15分)

主要相同点:
Lock能完成synchronized所实现的所有功能.(其它不重要)
主要不同点:
Lock有比synchronized更精确的线程语义和更好的性能(在相同点中回答此点也行)
synchronized会自动释放锁.而Lock一定要求程序员手工释放.并且必须在finally从句
中释放,如果没有答出在finally中释放不得分.就如Connection没有在finally中关闭一
样.连最基本的资源释放都做不好,还谈什么多线程编程.


6.EJB规范规定EJB中禁止的操作有哪些?(15分)
共有8点,答出下列3-4点得满分.

不能操作线程和线程API(线程API指非线程对象的方法如notify,wait等)
2.不能操作awt
3.不能实现服务器功能
4.不能对静态属生存取.
5.不能使用IO操作直接存取文件系统
6.不能加载本地库.
7.不能将this作为变量和返回.
8.不能循环调用.

1,软件开发过程,遵循什么规范。
软件开发过程大的方面来讲包括需求分析、软件设计和实现(概要设计、详细设计、编码)、软件测试(单元测试、代码检查、功能测试、系统测试、验收测试)和交付

规范:1 命名规范 2代码规范 3 工程文件组织规范 4 类组织规范 5 用户界面规范 6 疑难解答和Bug调试方法
 

2,作用域public,protected,private,以及不写时的区别。
public 可以被本身和其他的包中的类引用,protected可以被同一个包内的类以及不同包中的子类引用,private只有自己的类中可以使用。不写的时候只能被同一个包中的类引用。

3,char型变量能不能定义为一个中文?为什么? 
可以定义。因为java中的char是两个字节,可以存储中文。

4,jsp有哪些内置对象?作用分别是什么? 
JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应): 
request 用户端请求,此请求会包含来自GET/POST请求的参数 
response 网页传回用户端的回应 
pageContext 网页的属性是在这里管理 
session 与请求有关的会话期 
application servlet 正在执行的内容 
out 用来传送回应的输出 
config servlet的构架部件 
page JSP网页本身 
exception 针对错误网页,未捕捉的例外 

5,jsp有哪些动作?作用分别是什么?
JSP共有以下6种基本动作 
jsp:include:在页面被请求的时候引入一个文件。 
jsp:useBean:寻找或者实例化一个JavaBean。 
jsp:setProperty:设置JavaBean的属性。 
jsp:getProperty:输出某个JavaBean的属性。 
jsp:forward:把请求转到一个新的页面。 
jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记

6,JSP中INCLUDE两种实现方式的区别?
动态、静态两种。
动态INCLUDE用jsp:include动作实现
<jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数 
静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面 <%@ include file="included.htm" %> 

7,JSP中两种跳转方式是什么?区别是什么?
<jsp:include page="included.jsp" flush="true"> 
<jsp:forward page= "nextpage.jsp"/> 
前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完后还会回来,相当于函数调用。并且可以带参数.后者完全转向新页面,不会再回来。相当于go to 语句。

8,JSP有哪些中文问题,如何解决?
 1JSP的charset
 2JSP SERVER编译JSP是使用的字符集,默认和操作系统是一样的,可能需要进行修改
 3你的BEAN编译时候所采用的字符集,一般用JavaC编译,都是和操作系统一样的,但你可以通过带参数来改变。
 4和数据库连接时,大多数JDBC驱动程序都可以设置其字符集的,这样JDBC驱动会自己进行转换,也不会出现汉字问题。

9,说一说Servlet的生命周期?
servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。 
Servlet的生命周期是当服务器装载运行servlets,接收来自客户端的多个请求并且返回数据给客户端,然后再删除移开servlets的时间。

10,可能会让你写一段Jdbc连Oracle的程序. 
Connection conn = null; 
String driver = "oracle.jdbc.driver.OracleDriver"; 
String url = "jdbc:oracle:thin:@myoracle:1521:test"; 
String user = "user"; 
String password = "123"; 
try 

Class.forName("oracle.jdbc.driver.OracleDriver"); 
conn = DriverManager.getConnection(url, user, password); 

catch (ClassNotFoundException e) 

System.err.print("ClassNotFoundException: Load jdbc-driver failure!"); 
System.err.println(e.getMessage()); 

catch (SQLException e) 

e.printStackTrace(); 

}
finally

if (conn != null) 

conn.close(); 
conn = null; 




11,Class.forName的作用?为什么要用? 
Class.forName 是寻找并加载一个类。用它是为了load你指定名称的class。

12,xml有哪些解析技术?区别是什么? 
有两种:DOM和SAX.
DOM:可以得到一个包含文档中所有元素的树结构.
SAX:在文档的不同治点产生事件,应用程序可以决定如何处理这些事件以从解析器中得到信息.

13,MVC的各个部分都有那些技术来实现?如何实现? 
MVC是Model-View-Controller的简写。"Model" 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), "View" 是应用的表示面(由JSP页面产生),"Controller" 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。

14,javascript如何校验数字型?
isNaN(parseFloat(xxx))如果为true,则不是数字。 
var v = document.all.Telephone.value; 
if(isNan(v)){ 
alert("全是数字"); 


15,html样式表作用,原理。
大量减少网页代码,原理就是在网页中自定义样式表的选择符,然后在网页中大量引用这些选择符。目前大部分网站都是使用class来引用的。

16,请估计北京有多少加油站?并简述理由。

北京有200万量机动车,加油站工作时间按每天18小时,假设每个油站能同时工作6个油泵,每次为车加油时间为3分钟,每天一个加油站工作车辆数:18*60*6/3=2160辆,所需加油站数量=2000000/2160=926个加油站。

17,给你一个非常困难的问题,你将如何解决它。
询问有解决能力的人该如何解决并在以后的工作之中将它也变成自己可以解决的问题。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值