急!在线等!!!java面试题-谁写的详细分全给他,不够再加!

时间:2023-01-12 12:34:33
Java软件工程师应聘试题
时间:60分钟
注:对于主观题,并无标准答案,写上你的理解即可
一、 基础理论与开源
1、 请分别写出你对J2EE 、EJB、JDBC的理解?





2、 Which two demonstrate a "has a" relationship? (Choose two) 

A. public interface Person { } 
public class Employee extends Person{ } 

B. public interface Shape { } 
public interface Rectandle extends Shape { } 

C. public interface Colorable { } 
public class Shape implements Colorable { } 

D. public class Species{ } 
public class Animal{private Species species;} 

E. interface Component{ } 
class Container implements Component{ 
private Component[] children; 
   }




3、 在MVC模式中,M,V,C分别表示什么,在实际的开发过程中,这三者一般分别采用哪些技术实现?Struts是什么?Struts和MVC有关系吗? Struts1.1相对于Struts1.0,你觉得最大的改善是什么?







4、 Hibernate解决了什么问题?试比较Hibernate与JDO、EJB技术。





二、 找出下面程序中可能引起异常的代码行,并说明原因。
1) String ss1 = session.getAttrbute(“login_id”).toString();
2) if  (ss1.equals(“”))
3) out.println(“对不起,没有授权”);
4) int login_id = Integer.parseInt(ss1);
5) String admin_name = ss1.substring(0,28);










三、 JAVASCRIPT
1、 检查身份证号码正确性
1) 长度 15 或18位
2) 前14位一般为数字末位可以为字母
2、 身份证号码中带有出生日期,请编写取出出生日期的函数,格式为 YYYY-MM-DD。



















四、 数据库
1、 通常在开发过程中我们会用到id字段, id字段的值是递增的。使用Oracle8i数据库,我们有几种方式可以实现这个字段值的递增?请分别列举并说出优劣势。









五、 电子商务
1、 请阐述你对电子商务的理解。








2、 电子商务环节中,传统支付结算的最大问题是什么?网上支付要面临的最大问题是什么(如:安全性)?现在是否有相应技术解决?








六、 附加题:请简述“模式”(Design patten)的概念,并列举你所了解的“模式”的名字和作用域。

27 个解决方案

#1


怎么没人回答呢?

#2


在MVC模式中,M,V,C分别表示什么,在实际的开发过程中,这三者一般分别采用哪些技术实现?Struts是什么?Struts和MVC有关系吗? Struts1.1相对于Struts1.0,你觉得最大的改善是什么?

M :module
V:view
C:control

M:模块,一般用商业逻辑来实现。
C:控制,一般为servlet
V: 视图,一般用JSP asp....

struts的实现机理就是MVC

#3


先回答第二题吧,选D

#4


第一题:
J2EE(Java 2 Enterprise Edition)Java2 企业版,它提供了分布式企业应用程序的解决方案。

EJB、JDBC等都是J2EE规范下的一部分。

EJB是J2EE技术的核心技术,RMI是其基础。组成包括(Session Bean、Entity Bean、Message Driven Bean)

JDBC是规定了数据库连接、访问的规范。

#5


BillyW(阿弥陀佛) ,人家让你选两个啊!!!!

我选 B  D

#6


第二题:
少if语句的作用域,可能会产生Null Pointer Exception!

第三题:
太变态了,我认为没有什么考的必要!!!

第四题:
方法一:使用序列(Sequence)
方法二:Java数据库访问编码时生成ID编码。

第五题:
也没有必要成为考题!!

第六题:
太大了。google一下吧

#7


第2题我选DE

#8


第2题:
A答案的意思是"is a kind of"

B答案的意思是"implementation"

#9


二 :
    1) String ss1 = session.getAttrbute(“login_id”).toString();
    2) if  (ss1.equals(“”))
    3) out.println(“对不起,没有授权”);
    4) int login_id = Integer.parseInt(ss1);
    5) String admin_name = ss1.substring(0,28);

    我觉的有两个地方有异常啊,(4)(5) 都会有,(4)是当ssl不是数字字符串,(5)是ssl的长度也许不超过28

    我就知道两个!    (2) ssl 我觉得应该是 null  而不是

#10


2) if  (ss1.equals(“”))

出错的可能

#11


1) String ss1 = session.getAttrbute(“login_id”).toString();
这句也可能有异常,如ss1=null时候就有

#12


UPING......

#13


int login_id = Integer.parseInt(ss1);
这句当然也有可能引起异常...

#14


继续啊

#15


Hibernate解决了什么问题?试比较Hibernate与JDO、EJB技术。
对像到关系数据库的数据映射,数据持久。

::
JDO是SUN的标准,但过于复杂,还要有预编译,有很多坏处
Hibernate 与EJB :hibernate为轻量级的数据持久框架,而EJB是重量级的。现在EJB3.0也在按照Hibernate的实现思想来实现。
目前Hibernate非常受欢迎,它是开发源代码的Java O/R映射框架,目的是把开发人员从繁琐的数据持久化编程中解脱出来。它也有一个标准的HQL(Hibernate 查询语言)语言,你可以在新的EJB QL中看到它的影子。Hibernate在处理如数据查询、更新、连接池、事务处理、实体关系处理等方面非常简单。
其实他们三个本质都是一个东东,最主要的解决了数据映射

二、 找出下面程序中可能引起异常的代码行,并说明原因。
1) String ss1 = session.getAttrbute(“login_id”).toString();
2) if  (ss1.equals(“”))
3) out.println(“对不起,没有授权”);


4) int login_id = Integer.parseInt(ss1);


5) String admin_name = ss1.substring(0,28);

第四句会有异常代码


三、 JAVASCRIPT
1、 检查身份证号码正确性
1) 长度 15 或18位
2) 前14位一般为数字末位可以为字母
2、 身份证号码中带有出生日期,请编写取出出生日期的函数,格式为 YYYY-MM-DD。

身份证的正则表太式:

var idCard=“(([0-9]{17}([0-9]{1}|\w{1}))|([0-9]{14}([0-9]{1}|\w{1})))";
if (!patrn.exec(idCard)) return false 
return true 

if (pattern.test(email)) return true; 


var idCard='得到年月日字符串

[0-9]{4}-[0-9]{2}-[0-9]{2}

#16


function isNumber(pObj){
 var obj = eval(pObj);
 strRef = "1234567890";
 if(!isEmpty(pObj,errMsg))return false;
 for (i=0;i<obj.value.length;i++) {
  tempChar= obj.value.substring(i,i+1);
  if (strRef.indexOf(tempChar,0)==-1) {
    if(obj.type=="text") 
      obj.focus(); 
    return false; 
  }
 }
 return true;
}

function form_submit(theform){
   if (theform.IdCard.length == 15 || theform.IdCard.length == 18){
     if(!isNumber(theform.IdCard.subString(0,14))){
       alert("数据不符合要求,请检查");
     }
   }else{
     alert('Sorry!请输入正确长度');return false;
   }
}

function getBoth(){
  //shit,我的出生日期是身份证的第6位到13位,太阳了,这么变态!!!
  //你就截取就可以了!!!  
}

#17


四 ,我就tmd知道把id设成auto_increment的,并且是主键!!!

#18


第三题这样比较简单:

<SCRIPT LANGUAGE="JavaScript">
<!--
var pattern=/^(\d{6})(\d{8})(\d{3})?\w$/;
//18位身份证号码
var str="250322197709283216";
if (pattern.test(str)) {
alert("身份证号码正确!!");
var tempstr = str.match(pattern)[2];
var  birthstr = tempstr.substring(0,4).concat("-")+tempstr.substring(4,6).concat("-")+tempstr.substring(6,8);
alert("出生日期为:"+birthstr)
} else alert("身份证号码错误!!");
//-->
</SCRIPT>

#19


二、 找出下面程序中可能引起异常的代码行,并说明原因。
1) String ss1 = session.getAttrbute(“login_id”).toString();
2) if  (ss1.equals(“”))
3) out.println(“对不起,没有授权”);


4) int login_id = Integer.parseInt(ss1);


5) String admin_name = ss1.substring(0,28);

有异常:第一句,第二句,第四句,第五句。
1)因为session.getAttrbute(“login_id”)可能为null
可改为:session.getAttrbute(“login_id”)==null?null:session.getAttrbute(“login_id”).toString();
2)if  (ss1.equals(“”))因为如果ss1为空也会抛出异常
4)int login_id = Integer.parseInt(ss1);这个异常就不用说了吧!
5)String admin_name = ss1.substring(0,28);这个异常可能多种,可能ss1为空,可能不够长!

#20


1) String ss1 = session.getAttrbute(“login_id”).toString();
如果session.getAttrbute(“login_id”)==null,则null异常
2) if  (ss1.equals(“”))
如果到了此地ss1应该不会null,此处还行。
3) out.println(“对不起,没有授权”);
到了页面可能有编码问题
4) int login_id = Integer.parseInt(ss1);
Integer.parseInt()是可能抛异常得。看看javadoc就知道了
5) String admin_name = ss1.substring(0,28);
数组越界异常

#21


这是哪个公司的面试题?这么bt?

#22


大家都好强啊
 学习学习~~~

#23


第二替是一个答案
选择E`

#24


Studying....

#25


3) out.println(“对不起,没有授权”);

补充:这个可能有IllegalStateException

#26


javasrcip:


function isNumber(pObj){
 var obj = eval(pObj);
 strRef = "1234567890";
 if(!isEmpty(pObj,errMsg))return false;
 for (i=0;i<obj.value.length;i++) {
  tempChar= obj.value.substring(i,i+1);
  if (strRef.indexOf(tempChar,0)==-1) {
    if(obj.type=="text") 
      obj.focus(); 
    return false; 
  }
 }
 return true;
}

function form_submit(theform){
   if (theform.IdCard.length == 15 || theform.IdCard.length == 18){
     if(!isNumber(theform.IdCard.subString(0,14))){
       alert("数据不符合要求,请检查");
     }
   }else{
     alert('Sorry!请输入正确长度');return false;
   }
}

function getBoth(){

}

#27


看了前面的答案,
对于不对与不足的答案补充一下:
2。D E
四。
1。可以用递增序列
2。可以用一个额外的表保存这个表中最大的id,当这个表中插入记录的时候用触发器往那个id加一
3。插入的时候id用MAX(id)得到
三个方法效率不同

后面几个内容太多,自己发挥吧(搜索一下)

#1


怎么没人回答呢?

#2


在MVC模式中,M,V,C分别表示什么,在实际的开发过程中,这三者一般分别采用哪些技术实现?Struts是什么?Struts和MVC有关系吗? Struts1.1相对于Struts1.0,你觉得最大的改善是什么?

M :module
V:view
C:control

M:模块,一般用商业逻辑来实现。
C:控制,一般为servlet
V: 视图,一般用JSP asp....

struts的实现机理就是MVC

#3


先回答第二题吧,选D

#4


第一题:
J2EE(Java 2 Enterprise Edition)Java2 企业版,它提供了分布式企业应用程序的解决方案。

EJB、JDBC等都是J2EE规范下的一部分。

EJB是J2EE技术的核心技术,RMI是其基础。组成包括(Session Bean、Entity Bean、Message Driven Bean)

JDBC是规定了数据库连接、访问的规范。

#5


BillyW(阿弥陀佛) ,人家让你选两个啊!!!!

我选 B  D

#6


第二题:
少if语句的作用域,可能会产生Null Pointer Exception!

第三题:
太变态了,我认为没有什么考的必要!!!

第四题:
方法一:使用序列(Sequence)
方法二:Java数据库访问编码时生成ID编码。

第五题:
也没有必要成为考题!!

第六题:
太大了。google一下吧

#7


第2题我选DE

#8


第2题:
A答案的意思是"is a kind of"

B答案的意思是"implementation"

#9


二 :
    1) String ss1 = session.getAttrbute(“login_id”).toString();
    2) if  (ss1.equals(“”))
    3) out.println(“对不起,没有授权”);
    4) int login_id = Integer.parseInt(ss1);
    5) String admin_name = ss1.substring(0,28);

    我觉的有两个地方有异常啊,(4)(5) 都会有,(4)是当ssl不是数字字符串,(5)是ssl的长度也许不超过28

    我就知道两个!    (2) ssl 我觉得应该是 null  而不是

#10


2) if  (ss1.equals(“”))

出错的可能

#11


1) String ss1 = session.getAttrbute(“login_id”).toString();
这句也可能有异常,如ss1=null时候就有

#12


UPING......

#13


int login_id = Integer.parseInt(ss1);
这句当然也有可能引起异常...

#14


继续啊

#15


Hibernate解决了什么问题?试比较Hibernate与JDO、EJB技术。
对像到关系数据库的数据映射,数据持久。

::
JDO是SUN的标准,但过于复杂,还要有预编译,有很多坏处
Hibernate 与EJB :hibernate为轻量级的数据持久框架,而EJB是重量级的。现在EJB3.0也在按照Hibernate的实现思想来实现。
目前Hibernate非常受欢迎,它是开发源代码的Java O/R映射框架,目的是把开发人员从繁琐的数据持久化编程中解脱出来。它也有一个标准的HQL(Hibernate 查询语言)语言,你可以在新的EJB QL中看到它的影子。Hibernate在处理如数据查询、更新、连接池、事务处理、实体关系处理等方面非常简单。
其实他们三个本质都是一个东东,最主要的解决了数据映射

二、 找出下面程序中可能引起异常的代码行,并说明原因。
1) String ss1 = session.getAttrbute(“login_id”).toString();
2) if  (ss1.equals(“”))
3) out.println(“对不起,没有授权”);


4) int login_id = Integer.parseInt(ss1);


5) String admin_name = ss1.substring(0,28);

第四句会有异常代码


三、 JAVASCRIPT
1、 检查身份证号码正确性
1) 长度 15 或18位
2) 前14位一般为数字末位可以为字母
2、 身份证号码中带有出生日期,请编写取出出生日期的函数,格式为 YYYY-MM-DD。

身份证的正则表太式:

var idCard=“(([0-9]{17}([0-9]{1}|\w{1}))|([0-9]{14}([0-9]{1}|\w{1})))";
if (!patrn.exec(idCard)) return false 
return true 

if (pattern.test(email)) return true; 


var idCard='得到年月日字符串

[0-9]{4}-[0-9]{2}-[0-9]{2}

#16


function isNumber(pObj){
 var obj = eval(pObj);
 strRef = "1234567890";
 if(!isEmpty(pObj,errMsg))return false;
 for (i=0;i<obj.value.length;i++) {
  tempChar= obj.value.substring(i,i+1);
  if (strRef.indexOf(tempChar,0)==-1) {
    if(obj.type=="text") 
      obj.focus(); 
    return false; 
  }
 }
 return true;
}

function form_submit(theform){
   if (theform.IdCard.length == 15 || theform.IdCard.length == 18){
     if(!isNumber(theform.IdCard.subString(0,14))){
       alert("数据不符合要求,请检查");
     }
   }else{
     alert('Sorry!请输入正确长度');return false;
   }
}

function getBoth(){
  //shit,我的出生日期是身份证的第6位到13位,太阳了,这么变态!!!
  //你就截取就可以了!!!  
}

#17


四 ,我就tmd知道把id设成auto_increment的,并且是主键!!!

#18


第三题这样比较简单:

<SCRIPT LANGUAGE="JavaScript">
<!--
var pattern=/^(\d{6})(\d{8})(\d{3})?\w$/;
//18位身份证号码
var str="250322197709283216";
if (pattern.test(str)) {
alert("身份证号码正确!!");
var tempstr = str.match(pattern)[2];
var  birthstr = tempstr.substring(0,4).concat("-")+tempstr.substring(4,6).concat("-")+tempstr.substring(6,8);
alert("出生日期为:"+birthstr)
} else alert("身份证号码错误!!");
//-->
</SCRIPT>

#19


二、 找出下面程序中可能引起异常的代码行,并说明原因。
1) String ss1 = session.getAttrbute(“login_id”).toString();
2) if  (ss1.equals(“”))
3) out.println(“对不起,没有授权”);


4) int login_id = Integer.parseInt(ss1);


5) String admin_name = ss1.substring(0,28);

有异常:第一句,第二句,第四句,第五句。
1)因为session.getAttrbute(“login_id”)可能为null
可改为:session.getAttrbute(“login_id”)==null?null:session.getAttrbute(“login_id”).toString();
2)if  (ss1.equals(“”))因为如果ss1为空也会抛出异常
4)int login_id = Integer.parseInt(ss1);这个异常就不用说了吧!
5)String admin_name = ss1.substring(0,28);这个异常可能多种,可能ss1为空,可能不够长!

#20


1) String ss1 = session.getAttrbute(“login_id”).toString();
如果session.getAttrbute(“login_id”)==null,则null异常
2) if  (ss1.equals(“”))
如果到了此地ss1应该不会null,此处还行。
3) out.println(“对不起,没有授权”);
到了页面可能有编码问题
4) int login_id = Integer.parseInt(ss1);
Integer.parseInt()是可能抛异常得。看看javadoc就知道了
5) String admin_name = ss1.substring(0,28);
数组越界异常

#21


这是哪个公司的面试题?这么bt?

#22


大家都好强啊
 学习学习~~~

#23


第二替是一个答案
选择E`

#24


Studying....

#25


3) out.println(“对不起,没有授权”);

补充:这个可能有IllegalStateException

#26


javasrcip:


function isNumber(pObj){
 var obj = eval(pObj);
 strRef = "1234567890";
 if(!isEmpty(pObj,errMsg))return false;
 for (i=0;i<obj.value.length;i++) {
  tempChar= obj.value.substring(i,i+1);
  if (strRef.indexOf(tempChar,0)==-1) {
    if(obj.type=="text") 
      obj.focus(); 
    return false; 
  }
 }
 return true;
}

function form_submit(theform){
   if (theform.IdCard.length == 15 || theform.IdCard.length == 18){
     if(!isNumber(theform.IdCard.subString(0,14))){
       alert("数据不符合要求,请检查");
     }
   }else{
     alert('Sorry!请输入正确长度');return false;
   }
}

function getBoth(){

}

#27


看了前面的答案,
对于不对与不足的答案补充一下:
2。D E
四。
1。可以用递增序列
2。可以用一个额外的表保存这个表中最大的id,当这个表中插入记录的时候用触发器往那个id加一
3。插入的时候id用MAX(id)得到
三个方法效率不同

后面几个内容太多,自己发挥吧(搜索一下)