第一篇:初级软件工程师(Java)客观试题
全国信息技术高级人才水平考试
National Information Technology Examination for High-Level Talent
客观题考试试卷
试卷说明
1.本试卷包含单项选择题和多项选择题二类大题,其中单项选择题35道,每题2分,多项选择题15道,每题2分。
2.单选题每小题列出的四个备选项中只有一个是符合题目要求的,未选或错选均无分;多选题每小题列出的备选项中有二个或二个以上是符合题目要求的,请将其符合题目要求的代码填写在题后的括号内,未选、错选、多选均无分,少选可得分=所选项数/应选项数×应得分。
3.考试时间:90分钟
试卷
一、单项选择题(该大题共35小题,每小题2分,共70分)
1.在JAVA中char类型取值范围是()。A.0~216B.0~2-1
16C.0~2
77D.-2~2-1 答案:B
2.T1 类定义如下: class T1 public T1(int x){ } 如果要创建该类的对象,下列选项写法正确的是()。A.T1 t1 = new T1 B.T1 t1 = new T1(1)C.T1 t1 = new T1()D.T1 t1 = new T1(1,2)答案:B
3.关于Java中方法的定义,下列选项写法正确的是()。A.void m1(int x1){ };B.void m1(int &x){ };C.void m1(int x){ };D.void m1(int *x{ };答案:C
4.T2类为T1类的子类,下列选项写法正确的是(A.T1 Obj=new T2();B.T2 Obj=new T1(); C.T1 Obj=new T1();D.T2 Obj=new T2();答案:B
5.在JAVA中抛出异常的关键字是()。A.transient B.throw C.finally D.static 答案:B
6.下列语句正确的是()。A.byte a=128;B.long l=0xfffL;C.boolean b=null;D.double d=0.9239d;答案:B
7.关于数组的声明,下列选项错误的是()。A.String[ ] str = new String[9] B.String str[ ] = new String[9] C.Object str[9] = new String[ ] D.Object[ ] str = new Object[9] 答案:D
8.JAVA程序的源文件扩展名是()。A..java B..html)。C..class D..exe 答案:A
9.linux 中,显示当前目录下所有文件及其明细的是()。A.ls-al B.set nu C.rm –rf D.cd 答案:A
10.下面注释方法能够支持javadoc命令的是()。A./**...**/ B./*...*/ C./**...*/ D.// 答案:C
11.下列选项不是Java保留字的是()。A.sizeof B.super C.abstract D.break 答案:A
12.在类Test中定义了方法getResult(),其中包含语句:myresult=Math.sqrt(1000); 需要导入的包是()。A.java.Math.* B.java.util.Math.* C.java.lang.* D.java.util.* 答案:A
13.在java中下列关键字不能使类派生出子类的是()。A.volatile B.final C.public D.private 答案:B
14.关于Java中类的继承,下列描述正确的是()。A.Java类允许多重继承 B.Java接口允许多继承 C.接口和类都允许多继承
double D.接口和类都不允许多继承 答案:B
15.表达式1+2/3-4*5的值是()。A.-5 B.-19 C.0 D.1 答案:B
16.可以与基于浏览器的WEB应用共同协作,使得某些错误能够直接在终端用户的客户端处理而无需在WEB服务器端处理的是技术是()。A.XML B.javaScript C.GGI D.SGML 答案:B
17.下列选项不是Java关键字的()。A.goto B.native C.null D.FALSE 答案:D
18.执行如下代码: int x=4;System.out.println(“value is ”+((x>4)? 99.9 :9));在控制台输出的结果是()。A.value is 99.9 B.value is 9 C.value is 9.0 D.value is 100 答案:C
19.为T1类的一个无形式参数无返回值的方法method书写方法头,使得使用T1.method 就可以调用该方法,下列选项写法正确的是()。A.static void method()B.public void method()C.final void method()D.abstract void method()答案:A
20.a是int型public成员变量, 变量值保持为常量20,下列选项正确定义这个变量的是()。
A.public int a=20;B.final int a=20;C.final public int a=20;D.public final int a=20;答案:D
21.为了编程需要,现需自己编写一个异常类。下列选项声明最为合适的是()。A.class T1 Exception{...} B.class T1 extends Error{...} C.class T1 extents RuntimeException{...} D.class T1 extends Exception{...} 答案:D
22.下列语句中,可以输出-4.0的是()。A.System.out.println(Math.floor(-4.7));B.System.out.println(Math.ceil(-4.7));C.System.out.println(Math.min(-4.7));D.System.out.println(Math.round(-4.7));答案:B
23.有四个线程,它们的优先级分别为如下四种之一。则优先执行的线程是()。A.Thread.MIN_PRIORITY B.优先级别码为 7 级的线程 C.Thread.MAX_PRIORITY D.Thread.NORM_PRIORITY 答案:C
24.在java 中,下列选项写法正确的是()。A.String A=“abcdefg”;A-=“cde”;B.String A=“abcdefg”;A+=“cde”;C.Integer J=new Integer(27);J-=7;D.Integer J=new Integer(27);J--;答案:B
25.执行如下代码,int x=3; int y=10; System.out.println(y%x);输出结果是()。A、0 B、1 C、2 D、3 答案:B 26.定义int a=1,b=2,表达式(a++)+(++b)的值是()A.3 B.4 C.5 D.6 答案:B
27.在Java语言中,下列选项写法正确的是()。A.String a[ ]=new String {“j” “a” “z”};B.String a[ ]= {“j” “b” “c”};C.String a= {“a” “b” “c”};D.String a[ ]= {“a”, “b” ,“c”};答案:D
28.Java中,主函数main方法的返回类型是()。A.int B.void C.boolean D.static 答案:B
29.构造ArrayList类的一个实例,此类继承了List接口,下列选项定义正确的是(A.ArrayList a=new Object(); B.List a=new ArrayList(); C.ArrayList a=new List(); D.List a=new List(); 答案:B
30.Java语言提供的访问、操作数据库的统一接口的是()。A.ODBC B.JDBC C.XML D.ADO 答案:B
31.下列选项正确定义变量标识符的是()。A.this B.spersons C.static D.*point 答案:B
32.Linux中,创建文件夹f11的命令是()。A.mkdir f11 B.ls C.pwd)。D.cd 答案:A
33.关于Java中变量的叙述,下列选项说法错误的是()。A、实例变量是类的成员变量。
B、在方法中定义的局部变量在该方法被执行时创建。C、实例变量用关键字static声明。D、局部变量在使用前必须被初始化。答案:C
34.查看t1表中所有数据的sql语句,下列选项写法正确的是()。A.select * from t1 B.selet t1 C.select D.select name from t1 答案:A
35.linux 中,显示当前目录的命令是()A.pwd B.cd C.cp D.ls 答案:A
二.多项选择题(该大题共15小题,每小题2分,共30分)
36.在Java代码中,主函数main的参数描述正确选项有()。A.String args[ ] B.String[ ] args C.Strings args[ ] D.String args E.string string 答案:AB
37.下列选项描述正确的有()。A.java.lang.Clonable是类 B.java.lang.Runnable是接口 C.Double对象在java.lang包中 D.Double a=1.0是正确的java语句 E.Java不是面向对象的 答案:BC
38.关于java程序中的注释方法,描述正确的有()。A./* 注释文字串 */ B.// 注释文字串
C./** 注释文字串 */ D.Rem 注释文字串 E.<& %> 答案:ABC
39.下列语句中正确的有()。A.int i=0;B.int i=Integer.MAX_VALUE;C.static int i=100;D.int 123_$;E.int %abc;答案:ABC
40.下列选项中,整型二维数组的正确声明有()。A int a[ ][ ] = new int[ ][ ] B int a[10][10] = new int [ ][ ] C int a[ ][ ] = new int[10][10] D int [ ][ ]a = new int[10][10] E.int a=”tring“ 答案:CD
41.String s=“你好”;下列语句正确的有()。A.int a=s.length()B.boolean b=s.equals(“java”)C.char c=s.getBytes()D.char d[ ]=s.toCharArray()E.s = 123 答案:ABD
42.下列描述正确的有()。
A.Java语言规定构造方法名与类名必须相同
B.Java语言规定构造方法没有返回值,但不用void声明 C.Java语言规定构造方法不可以重载
D.Java语言规定构造方法只能通过new自动调用 E.Java中不能实现接口中的方法 答案:ABD
43.下列语句中正确的有()。A.float a=333;B.float a=333.0;C.float a=333.0f;D.Float a = new Float(333);E.int a = null;答案:ACD 44.下列选项没有提供java存取数据库能力的包有()。A.java.sql B.java.awt C.java.lang D.java.swing E.javax.sql 答案:BCD
45.关于构造方法的定义,下列描述正确的有()。A.构造方法用于生成对象 B.构造方法与类名相同 C.构造方法没有返回值
D.构造方法不能对对象中的变量赋初值 E.java没有构造方法 答案:ABC
46.“result”是一个boolean型的变量,下列语句正确的有(A. result = true B. if(result){//do something} C. if(result!=0){//do something} D. result =1 E. s=1=”result’ 答案:AB
47.比较字符串s1和s2的内容是否相同,下列选项正确的有(A、s1 = s2 B、s1 = = s2 C、s1.equals(s2)D、s2.equals(s1)E.s2 =====s1 答案:CD
48.对java语言特点的描述,下列选项正确的有()。A.Java 是跨平台的编程语言 B.Java支持分布式计算
C.Java是面向过程的编程语言 D.Java支持多线程 E.java 不支持多线程 答案:ABD
49.下列选项中,写法正确的有()。A.int i = 10;String s = String.valueOf(i);B.String s = “1”;int i = Integer.parseInt(s);C.int i = 10;Integer in = new Integer(i);)。)。D.String in = new Integer;int i = in.intValue();E.int=String 答案:ABC
50.对于数组的描述,下列描述正确的有()。A.数组可以分为静态数组和动态数组 B.态数组的长度必须确定,而且不能增长 C.态数组只能是原始数据类型数组 D.arrayList属于动态数组 E.java中不支持数组 答案:ABD
第二篇:Java软件工程师试题
姓名:联系电话:电子邮件:学历:专业:毕业时间:
Java软件工程师试题(A卷)
(满分100分,作答时间为120分钟)
一、单选题(每题3分,共45分)
1.以下哪个修饰符可用于定义成员常量?B
A.start B.final C.abstract D.No modifier can be used
2.定义一个Java文件名字为:Sub.java,其代码为:
class Super {
public int i=0;
public Super(){
}
public static void main(){
}
} System.out.println((new Super()).i);i = 1;
这段程序的运行结果是: B
A.Compile will fail
C.Compile success and print 0
3.给出如下代码:
class Test {
private int m;
public static void fun(){
// some code......}
} B.Compile success and print 1D.Compile success and print nothing
如何使成员变量m被函数fun()直接访问?D
A.将private int m改为protected int m
c.将private int m改为int m
4.下面代码段中,执行之后i和j的值是什么? C
int i = 1;
int j;
j = i++;
A.1,1B.1,2C.2,15.已知如下代码:A
boolean m;
if(m == false)
System.out.println(“false”);
else
B.将private int m改为public int m D.将private int m改为static int mD.2,2
System.out.println(“true”);
执行结果是什么?
A.Compile will fail
C.true
B.false D.An error will occur when running
6.下面哪个语句是创建数组的错误语句?C
A.float f[][] = new float [6][6];
C.float f[][] = new float [][6];
E.float [][]f = new float [6][];
B.float []f[] = new float [6][6];D.float [][]f = new float [6][6];
7.给出如下代码:C
String a = new String(“巨匠IT”);
String b = new String(“巨匠IT”);
请问上面的语句在内存中分配了多少个内存区?
A.1B.2C.3D.48.给出如下代码:D
Set set = new HashSet();
set.add(“gjun”);
set.add(“pcschoolchina”);
set.add(“gjun”);
set.add(“it”);
Iterator it = set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
上面的代码最有可能的输出结果是:
A.gjun pcschoolchina gjun it
C.it gjun pcschoolchina gjun
9.请看下面的代码段:
String a = “gjun”;
String b = new String(“gjun”);
String c = new String(“gjun”);
if(a==b){
System.out.println(“true”);
}else{B.gjun pcschoolchina it gjun D.it gjun pcschoolchina
System.out.println(“false”);
}
if(a.equals(b)){
System.out.println(“true”);
}else{
System.out.println(“false”);
}
if(c==b){
System.out.println(“true”);
}else{
System.out.println(“false”);
}
输出的结果为:C
A.false truetrue B.truefalse true C.false truefalse D.false false true
10.以下哪个方法用于定义线程的执行体?C
A.start()B.init()C.run()
D.main()E.synchronized()
11.给出url地址为“index?page=3&category=tech”,下面哪个描述是正确的:
A.通过request.getAttribute(“page”)可以获取page的值
B.通过request.getParameter(“page”)可以获取page的值
C.通过request.getAttribute(“page&category”)可以获取page和category的值
D.通过request.getParameter(“page&category”)可以获取page和category的值
12.有一个登录的表单,其属性有name=“loginForm”, action=“loginServlet”, method=“post”,下面哪个描述是正确的:
A.在loginServlet中使用doPost的方法来处理表单的请求
B.在loginServlet中使用doGet的方法来返回表单的处理结果
C.在loginServlet中,先调用doPost的方法,然后再调用service的方法来处理表单的请求
D.在loginServlet中,先调用doGet的方法,然后再调用service的方法来处理表单的请求
13.如果需要从一个Servlet中传递参数username到结果的页面,下面哪种方式是可行的:
A.request.setParameter(“username”, username);
B.request.setAttribute(“username”, username);
C.response.setParameter(“username”, username);
D.request.setAttribute(“username”, username);
14.下列哪个描述是正确的:
A.EJB3.0包含Session Bean, Entity Bean和JMS
B.在系统中,我们会使用Entity Bean来保存数据和处理业务流程
C.Session Bean分为有状态和无状态两中,其中有状态的性能更高
D.远程调用EJB组件,可以通过lookup的方式去查找JNDI名称,获取代理接口来调用
15.关于JUnit的描述,哪个是正确的:
A.JUnit其实是一个main函数
B.JUnit可以应用于系统的整体测试
C.如果要测试一个方法的话可以,使用assertEquals来判定结果的正确性
D.JUnit中可以的使用@Test来修饰方法,该方法可以带参数
二、多选题(每题3分,共45分)
16.如下哪些字符串是Java中的标识符?AE
A.fieldnameB.superC.3number
17.如下哪些是Java中有效的关键字?ACDE
A.constB.NULLC.false
D.#numberE.$numberD.thisE.native
18.在switch语句中,以下哪些参数类型是合法的?ABCD
A.intB.ByteC.charD.byte
19.下面哪个赋值语句是合法的?BCD
A.float a = 2.0B.double b = 2.0
E.String C.int c = 2D.long d = 2
20.已知如下的命令执行java MyTest a b c,请问哪个语句是正确的?CD
A.args[0] = “MyTest a b c”;B.args[0] = “MyTest”;
C.args[0] = “a”;D.args[1] = “b”;
21.下面代码执行后的输出是什么?ADC
for(int i=0;i<3;i++){
} for(int j=0;j<2;j++){} if(j==1)continue;System.out.println(j+“and”+i);
A.0 and 0
F.1 and 2
b.0 and 1G.2 and 0C.0 and 2H.2 and 1D.1 and 0I.2 and 2 E.1 and 1
22.Java中如下哪个修饰符是正确的?ABE
A.privateB.publicC.default
23.已知如下类的说明:
public class Test {
} private float f = 1.0f;int m = 12;static int n = 1;public static void main(String arg[]){} Test t = new Test();D.friendE.protected
如下哪个代码可以加入到下划线中?AD
A.t.f = 0;B.this.n = 1;
24.已知如下类定义:
class Base {
}
public class Child extends Base { public Base(){} public Base(int m){} protected void fun(int n){}C.Test.m = 2;D.Test.n = 3;
// member methods
}
如下哪句可以正确地加入子类中?CD
A.private void fun(int n){}
C.protected void fun(int n){}
B.void fun(int n){} D.public void fun(int n){}
25.下面哪个方法可用于定义新线程类?AD
A.implement the Runnable interface B.add a run()method in the class
C.create an instance of ThreadD.extend the Thread class
26.下面哪个对象是JSP中内置对象?
A.contextB.request
C.exceptionD.application
27.现在有一个登录页面login.jsp,提交到/LoginServlet来处理,下面哪些描述是正确的。
A.通过request.getParameter(“username”)获取到login.jsp中的用户名值
B.通过request.getAttribute(“username”)获取到login.jsp中的用户名值
C.可以在LoginSerlvet中的doPost方法中处理请求
D.可以在LoginSerlvet中的service方法中处理请求
28.在LoginServlet处理完成后,跳转到要去到index.jsp页面,下面那些描述是正确的。
A.response.sendRedirect(“index.jsp”);
B.response.forward(“index.jsp”);
C.request.getRequestDispatcher(“index.jsp”).forward(request, response);
D.request.sendRedirect(“index.jsp”);
29.在Struts2.0中,Action接口默认的result值有:
A.SUCCESSB.FAILUREC.LOGIND.ERROR
E.OUTPUT
30.在Hibernate3.0中,假设现在有个Student的对象,下面那些HQL的写法是正确的:
A.select * from StudentB.from Student
C.select s from Student sD.select s from Student s where id>10
三、填空题(每题5分,共10分)
31.补充完整Test类的定义,使其能计算下面的数列值:
F(1)= 1(n=1)
F(2)= 2(n=2)
F(n)= F(n-1)*n(n>3)
如: 当n=5时,f(5)=f(4)*5,f(4)=f(3)*4,f(3)=f(2)*3,f(2)=f(1)*1,f(1)=1
结果f(5)= 1*1*3*4*5 = 60
public class Test {
public static int calculate(int n){if(①)return 1;return②;} public static void main(String[] args){System.out.println(calculate(3));
}
}
32.请看TestAnimal类的代码:
public class TestAnimal{
public static void main(String args[]){Animal a1 = new Dog();Animal a2 = new Cat();①②
Dog b1 =③
Cat b2 =④
⑤
}⑥}
interface Animal {
}
class Dog implements Animal{
}
class Cat implements Animal{
} public void run(){} public void catchMouse(){} System.out.println(“catching mouse”);System.out.println(“A cat is running now”);public void run(){} public void watch(){} System.out.println(“watching house”);System.out.println(“A dog is running now”);public void run();
请补充完整上面的代码,使其运行的时候得到如下结果:
A dog is running now
A cat is running now
watching house
catching mouse
第三篇:Java软件工程师
Java软件工程师
Java软件工程师,从1995年正式推出这么多年以为,java已从编程语言发展成为全球第一大统一开发平台。Java技术已成为计算机行业主要公司所采纳。越来越多的国家化标准化组织所接受。在短短的十几年的时间,java团体已经发展成为拥有数百万的群体,java的前景是非常之广大的。
而且,先阶段,在所有的软件开发人才中,java软件工程师需求量最大,市场需求已经达到了70%左右,而且java软件工程师薪水相对较高,一般的开发人员薪资年薪在10万以上,更多的人想成为java软件工程师,可以通过参加java技术培训,成为高薪的java工程师。
2009年是3G牌照发放元年,随着三大运营商以千亿计的3G网络建设逐步展开,3G网络资费也随着三大运营商对入网用户的争夺逐步被广大用户所接受,各大IT产品公司也纷纷招兵买马扩充实力,然而,国内3G人才严重匮乏,专业的3G终端应用开发人才不足1000人,3G终端开发人才培训迫在眉睫。
3G梦工场由四维创意教育科技有限公司承办,公司同时拥有四维梦工场知名动漫游戏教育品牌,是湖北省最权威的动漫游戏人才实训机构,3G梦工场致力于3G前端应用开发工程师、iphone 软件应用开发工程师、Android开发工程师、MTK高级开发工程师: J2ME开发工程师:Windows Mobile开发工程师、Symbian初级、中级、高级开发工程师、3G移动嵌入式软件开发人才培养,为各大企业提供优质3G应用软件开发人才。培养人才重点针对电信巨头的人才需求,如中国移动、中国电信、中国联通以及国外苹果、微软、google、黑莓、索尼等巨头企业。3G梦工场技术产品以与中国联通、中国电信、iphone、google、微软手机软件商店取得战略合作,提供优质技术产品的同时同时提供人才保障。
学院为确保教学质量和学员项目开发能力,聘请了数十位来自盛大、腾讯、日本LYC、Com2Us、掌上明珠等一线行业知名企业项目研发工程师及项目经理,分别掌握J2ME、Symbian、Windows Mobile、MTK、iPhone、Android等最新3G开发技术、五年以上开发经验的一线项目经理担任专职讲师,形成了IT培训行业内实战经验最丰富、最专业、最有责任心、最强大的师资阵容。
第四篇:Java 软件工程师面试笔试题
Java 软件工程师面试笔试题.txt﹃根网线''尽赚了多少人的青春い有时候感动的就是身边微不足道的小事。﹎破碎不是最残酷的 最残酷的是踩着这些碎片却假装不疼痛 固执的寻找﹎将来就算我遇见再怎么完美的人,都有一个缺点,他不是你,_____下辈子要做男生,娶一个像我这样的女生。
一、你对MVC的理解,MVC有什么优缺点?结合Struts,说明在一个Web应用如何去使用? 答:
MVC设计模式(应用观察者模式的框架模式)
M: Model(Business process layer),模型,操作数据的业务处理层,并独立于表现层(Independent of presentation)。
V: View(Presentation layer),视图,通过客户端数据类型显示数据,并回显模型层的执行结果。
C: Controller(Control layer),控制器,也就是视图层和模型层桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图
MVC框架的一种实现模型 模型二(Servlet-centric):
JSP+Servlet+JavaBean,以控制为核心,JSP只负责显示和收集数据,Sevlet,连接视图和模型,将视图层数据,发送给模型层,JavaBean,分为业务类和数据实体,业务类处理业务数据,数据实体,承载数据,基本上大多数的项目都是使用这种MVC的实现模式。
StrutsMVC框架(Web application frameworks)
Struts是使用MVC的实现模式二来实现的,也就是以控制器为核心。
Struts提供了一些组件使用MVC开发应用程序:
Model:Struts没有提供model类。这个商业逻辑必须由Web应用程序的开发者以JavaBean或EJB的形式提供
View:Struts提供了action form创建form bean, 用于在controller和view间传输数据。此外,Struts提供了自定义JSP标签库,辅助开发者用JSP创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP中。
Controller:Struts提供了一个核心的控制器ActionServlet,通过这个核心的控制器来调用其他用户注册了的自定义的控制器Action,自定义Action需要符合Struts的自定义Action规范,还需要在struts-config.xml的特定配置文件中进行配置,接收JSP输入字段形成Action form,然后调用一个Action控制器。Action控制器中提供了model的逻辑接口。
二、什么是WebService? 答:
WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。WebService实现不同语言间的调用,是依托于一个标准,webservice是需要遵守WSDL(web服务定义语言)/SOAP(简单请求协议)规范的。WebService=WSDL+SOAP+UDDI(webservice的注册)
Soap是由Soap的part和0个或多个附件组成,一般只有part,在part中有Envelope和Body。
Web Service是通过提供标准的协议和接口,可以让不同的程序集成的一种SOA架构。Web Service的优点
(1)可以让异构的程序相互访问(跨平台)
(2)松耦合
(3)基于标准协议(通用语言,允许其他程序访问)Web Service的基本原理
(1)Service Provider采用WSDL描述服务
(2)Service Provider 采用UDDI将服务的描述文件发布到UDDI服务器(Register server)
(3)Service Requestor在UDDI服务器上查询并 获取WSDL文件
(4)Service requestor将请求绑定到SOAP,并访问相应的服务。
三、什么是中间件?
中间件就是程序中可织入的,可重用的,与业务逻辑无关的各种组件。
中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。
在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
分类:数据访问中间件,远程调用中间件,消息中间件,交易中间件,对象中间件。
举例:
1,RMI(Remote Method Invocations, 远程调用)
2,Load Balancing(负载均衡,将访问负荷分散到各个服务器中)
3,Transparent Fail-over(透明的故障切换)
4,Clustering(集群,用多个小的服务器代替大型机)
5,Back-end-Integration(后端集成,用现有的、新开发的系统如何去集成遗留的系统)
6,Transaction事务(全局/局部)全局事务(分布式事务)局部事务(在同一数据库联接内的事务)
7,Dynamic Redeployment(动态重新部署,在不停止原系统的情况下,部署新的系统)
8,System Management(系统管理)
9,Threading(多线程处理)
10,Message-oriented Middleware面向消息的中间件(异步的调用编程)
11,Component Life Cycle(组件的生命周期管理)
12,Resource pooling(资源池)
13,Security(安全)
14,Caching(缓存)
四、什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处? 答:(1)Presentation layer(表示层)
(1)表示逻辑(生成界面代码)
(2)接收请求
(3)处理业务层抛出的异常
(4)负责规则验证(数据格式,数据非空等)
(5)流程控制
(2)Service layer(服务层/业务层)
(1)封装业务逻辑处理,并且对外暴露接口
(2)负责事务,安全等服务
(3)Persistence layer(持久层)
(1)封装数据访问的逻辑,暴露接口
(2)提供方便的数据访问的方案(查询语言,API,映射机制等)Domain layer(域层)
(1)业务对象以及业务关系的表示
(2)处理简单的业务逻辑
(3)域层的对象可以穿越表示层,业务层,持久层
软件分层结构使得代码维护非常方便,设计明确,各层独立,专注自己擅长的领域。
五、什么是OOP?OOP相对于面向过程编程有哪些优点?
OOP,Object-Oriented Programming,面向对象编程不同于面向过程编程:
(1)OOP关注对象和角色,也就是事物的本质
1)OOP把客观世界中的对象抽象成对应的类;
2)通过类构造实例;
3)通过依赖、继承、实现等形式建立对象间的通信关系
(2)OOP易于扩展,增加或改变业务的功能,无需大幅改动改变源代码
(3)OOP易于建模,OOP就是软件架构师在计算机高级语言中对客观世界的抽象和再现,人们可以很好地理解和建立起计算机中的抽象模型
六、谈谈Overload和Override的区别。
答:
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
七、谈谈HashMap和Hashtable的区别。答:
HashMap是轻量级的(线程不安全的,效率高的)集合,Hashtable是重量级的(线程安全的,效率低的)集合。
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。
Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。
八、请问abstract class和interface有什么区别?
答:
1)接口没有任何的实现,而抽象类它可以有部分的实现也可以没有;
2)如果需要复用或者共享部分代码,应该用抽象类而不是接口;
3)继承无法解决类型的转换问题,接口就是为了解决这一问题而产生的(Java的单继承是接口产生的根本原因)接口是一种抽象的第三方规范,跟对象没什么直接关系。
九、请问软件开发中的设计模式你会使用哪些?
答:我熟悉的设计模式有单例模式,DAO模式,模板方法,工厂模式,委托代理模式,MVC模式等。
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
Singleton模式一般形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
十、类的核心特性有哪些?
类具有封装性、继承性和多态性。
封装性:
类的封装性为类的成员提供公有、缺省、保护和私有等多级访问权限,目的是隐藏类中的私有变量和类中方法的实现细节。
继承性:
类的继承性提供从已存在的类创建新类的机制,继承(inheritance)使一个新类自动拥有被继承类(父类)的全部成员。
多态性:
类的多态性提供类中方法执行的多样性,多态性有两种表现形式:重载和覆盖。
十一、请问类与对象有什么区别?
类
类就是某一种事物的一般性的集合体,是相同或相似的各个事物共同特性的一种抽象。
对象
在面向对象概念中,对象(Object)是类的实例(instance)。对象与类的关系就像变量与数据类型的关系一样。
十二、写出生产者消费者模型的实现
十三、用软件工程和Java来叙述购物车(shopping cart)系统实现
十四、文件系统的几个类:FileInputStream、FileOutputStream、FileReader、FileWriter的区别
十五、请写出Java API中最常用的五个包,并且各举两个类加以说明。
十六、请问你在“电信运营支撑系统”中遇到了哪些问题?你是怎么解决的?做这个项目你最大的收获是什么?
十七、请说出几个常用的异常类
答:NullpointException(空指针异常)
ClassNotFoundException(类找不到异常)
ClassCastException(类型转换异常)
IllegalArgumentException(非法参数异常)
ArithmeticException(算术异常)
NumberFormatException(数据格式异常)
IndexOutOfBoundsException(数组下标越界异常)
IllegalStateException(非法语句异常)
十八、什么是进程和线程?两者的区别是什么?
十九、请简要描述一下你做的ShoppingCart项目。
二十、请问网络7层协议,tcp/ip4 层协议是什么?
二十一、Java面向对象的四大特点
二十二、public,private,protected,default访问权限(可见性)
答:
public:全局可见
protected:继承体系结构之间可见
default(或不写):同包可见
private:本类可见。
二十二、public,private,protected,default访问权限(可见性)
答:
public:全局可见
protected:继承体系结构之间可见
default(或不写):同包可见
private:本类可见。
二十三、名词解释
CRM
[Customer Relationship Management, 客户关系管理] ERP
[Enterprise Resource Planning, 企业资源规划] OSS
[Operation Support System, 运营支撑系统] BSS
[Business Support System, 数据定义语言] BOSS
[Business Operation Support System, 数据定义语言] OA
[Office Automatization, 办公自动化] HTTP OOP SOA GUI DDL
[Data Definition Language, 数据定义语言] DML
[Data Manipulation Language, 数据操作语言]
WYSIWYG
所见即所得 [What You See is What You Get] CMP CMT B2B C2C B2C IDE DOM
Client/Server CMM ORM MIS MVC
MVC是Model-View-Controller的简写。“Model” 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),“View” 是应用的表示面(由JSP页面产生),“Controller” 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。
OLE
CORBA
CORBA 标准是公共对象请求代理结构(Common Object Request Broker Architecture),由对象管理组织(Object Management Group,缩写为 OMG)标准化。它的组成是接口定义语言(IDL), 语言绑定(binding:也译为联编)和允许应用程序间互操作的协议。其目的为:
用不同的程序设计语言书写
在不同的进程中运行
为不同的操作系统开发。
UML
UML,标准建模语言,包含用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图等。
XML CMMI JRE J2EE
J2EE是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。
JDK AOP OO
Container W3C JMS
Domain POJO JVM JNDI JTA SOAP
[Simple Object Access Protocol,简单对象访问协议] WSDL JDO
JDO是Java对象持久化的新的规范,为Java Data Object的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC API的使用)。这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO很灵活,因为它可以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。
TDD DAO IoC
[Inversion of Control, 控制反转] RMI DNS
[Internet Domain Name System, 因特网域名系统] URL URI
二十四、数据库连接池的工作机制
二十五、互联网提供哪些服务?
二十六、请写出JSP的几个隐含内置对象
答:JSP中隐含内置对象
名称 类型
request javax.servlet.http.HttpServletRequest request
response javax.servlet.http.HttpServletResponse
注释和范围 response page javax.lang.Object page
Exception java.lang.Throwable page
pageContext javax.servlet.jsp.PageContext page
session javax.servlet.http.HttpSession session
application javax.servlet.ServletContext ServletContext out javax.servlet.jsp.JspWriter OutputStream
config javax.servlet.ServletConfig ServletConfig
JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):
request 用户端请求,此请求会包含来自GET/POST请求的参数
response 网页传回用户端的回应
page JSP 网页本身
exception 针对错误网页,未捕捉的例外
pageContext 网页的属性是在这里管理
session 与请求有关的会话期
application servlet 正在执行的内容
out 用来传送回应的输出
config Servlet的构架部件
二十七、请你谈谈SSH整合
答:SSH:
Struts(表示层)+Spring(业务层)+Hibernate(持久层)
Struts:
Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求。
在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关系的分发。(View:沿用JSP,HTTP,Form,Tag,Resourse ;Controller:ActionServlet,struts-config.xml,Action)
Hibernate:
Hibernate是一个持久层框架,它只负责与关系数据库的操作。
Spring:
Spring是一个业务层框架,是一个整合的框架,能够很好地黏合表示层与持久层。
二十八、应用服务器与Web Server的区别
二十九、Java Servlet API中forward()与redirect()的区别
答:
前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。
三
十、写一个简单的C/S结构程序,Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示?
答:Server端程序: package test;import java.net.*;import java.io.*;
public class Server { private ServerSocket ss;private Socket socket;private BufferedReader in;private PrintWriter out;public Server(){ try { ss=new ServerSocket(10000);while(true){ socket = ss.accept();String RemoteIP = socket.getInetAddress().getHostAddress();String RemotePort = “:”+socket.getLocalPort();System.out.println(“A client come in!IP:”+RemoteIP+RemotePort);in = new BufferedReader(new
InputStreamReader(socket.getInputStream()));String line = in.readLine();System.out.println(“Cleint send is :” + line);out = new PrintWriter(socket.getOutputStream(),true);out.println(“Your Message Received!”);out.close();in.close();socket.close();} }catch(IOException e){ out.println(“wrong”);} } public static void main(String[] args){ new Server();} };Client端程序: package test;import java.io.*;import java.net.*;
public class Client { Socket socket;BufferedReader in;PrintWriter out;public Client(){ try { System.out.println(“Try to Connect to 127.0.0.1:10000”);socket = new Socket(“127.0.0.1”,10000);System.out.println(“The Server Connected!”);System.out.println(“Please enter some Character:”);BufferedReader line = new BufferedReader(new
InputStreamReader(System.in));out = new PrintWriter(socket.getOutputStream(),true);out.println(line.readLine());in = new BufferedReader(new InputStreamReader(socket.getInputStream()));System.out.println(in.readLine());out.close();in.close();socket.close();}catch(IOException e){ out.println(“Wrong”);} } public static void main(String[] args){ new Client();} };
第五篇:java软件工程师前途
java软件工程师前途
java软件工程师前途,3G的来临,目前我国对软件人才的需要已达到了百万,并且每年在以30%的速率在增加。合格软件人才的需求供给不足。其中以java软件开发人才最为缺少,而且java软件工程师,薪资也相对较高具有3~5年开发经验的工程师,拥有年薪10万元是很正常的一个薪酬水平。80%学员毕业后年薪都超过了5万元。
虽然java人才的薪资很高,但是对该类技术人员需求的企业却难以招到相关的java人才,曾经在招聘市场有企业出月薪8000都难以招到java软件工程师,看到这种情况,更多的人选择了java培训增加知识,成为符合企业的用人标准。
3G梦工场作为湖北java软件工程师培训基地,打造全国最专业的java软件工程师实现领导品牌。依托多年的职业教育经验和深厚的技术底蕴,并由来自全国有名的IT技术项目经理作为主将教师,创造性的提出“项目实训”的全新的教育模式,提供给大学生真实的企业项目开发经历和必备的职业素养,使学生成为企业青睐、市场抢手的“实战型”软件人才。
3G梦工场教育,软件培训界的新生力军,用其96%以上的就业率和100%的专业对口率打造了业界的一个传奇。相对其它计算机培训机构而言,更专业,更高端,更实在。