JAVA_软件工程师公司笔试题
java笔试面试题目(3篇)

第1篇一、选择题(每题2分,共20分)1. 下列关于Java虚拟机(JVM)的说法,正确的是()。
A. JVM是Java程序的运行环境B. JVM是Java程序的编写环境C. JVM是Java程序的调试环境D. JVM是Java程序的编译环境解析:A。
JVM是Java程序的运行环境,负责将字节码转换为机器码执行。
2. 下列关于Java数据类型的说法,正确的是()。
A. Java中所有数据类型都是引用类型B. Java中基本数据类型包括int、float、char等C. Java中所有数据类型都是基本数据类型D. Java中基本数据类型包括int、float、char等,引用数据类型包括String、Object等解析:D。
Java中基本数据类型包括int、float、char等,引用数据类型包括String、Object等。
3. 下列关于Java面向对象的说法,正确的是()。
A. Java不支持面向对象编程B. Java支持面向对象编程,但不支持继承和多态C. Java支持面向对象编程,包括继承、多态、封装等特性D. Java支持面向对象编程,但封装不是Java面向对象的核心特性解析:C。
Java支持面向对象编程,包括继承、多态、封装等特性。
4. 下列关于Java异常处理的说法,正确的是()。
A. Java异常处理可以通过try-catch语句实现B. Java异常处理可以通过finally语句实现C. Java异常处理可以通过throw语句实现D. 以上说法都不正确解析:A。
Java异常处理可以通过try-catch语句实现。
5. 下列关于Java集合框架的说法,正确的是()。
A. Java集合框架包括List、Set、Map等接口B. Java集合框架包括List、Set、Map等类C. Java集合框架包括List、Set、Map等接口和类D. 以上说法都不正确解析:C。
Java集合框架包括List、Set、Map等接口和类。
Java 软件工程师面试笔试题

举例:
1,RMI(Remote Method Invocations, 远程调用)
2,Load Balancing(负载均衡,将访问负荷分散到各个服务器中)
3,Transparent Fail-over(透明的故障切换)
4,Clustering(集群,用多个小的服务器代替大型机)
Struts是使用MVC的实现模式二来实现的,也就是以控制器为核心。
Struts提供了一些组件使用MVC开发应用程序:
Model:Struts没有提供model类。这个商业逻辑必须由Web应用程序的开发者以JavaBean或EJB的形式提供
View:Struts提供了action form创建form bean, 用于在controller和view间传输数据。此外,Struts提供了自定义JSP标签库,辅助开发者用JSP创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP中。
十、类的核心特性有哪些?
类具有封装性、继承性和多态性。
封装性:
类的封装性为类的成员提供公有、缺省、保护和私有等多级访问权限,目的是隐藏类中的私有变量和类中方法的实现细节。
继承性:
类的继承性提供从已存在的类创建新类的机制,继承(inheritance)使一个新类自动拥有被继承类(父类)的全部成员。
多态性:
类的多态性提供类中方法执行的多样性,多态性有两种表现形式:重载和覆盖。
十一、请问类与对象有什么区别?
类
类就是某一种事物的一般性的集合体,是相同或相似的各个事物共同特性的一种抽象。
对象
在面向对象概念中,对象(Object)是类的实例(instance)。对象与类的关系就像变量与数据类型的关系一样。
JAVA软件初级工程师笔试题 基础内容

3、 Java 中,在如下所示的 Test 类中,共有( )个构造方法。 public class Test{
13、下列输出结果是( ) int a = 0 while ( a < 5 ) {
switch(a){ case 0: case 3 : a = a + 2; case 1 : case 2 : a = a + 3; default : a = a + 5; }
} System.out.print ( a ) A、 0 B、 5 C、 10 D、 其他
10、运算符优先级别排序正确的是( ) A、 由高向低分别是:()、!、算术运算符、关系运算符、逻辑运算符、赋值运算符; B、 由高向低分别是:()、关系运算符、算术运算符、赋值运算符、!、逻辑运算符; C、 由高向低分别是:()、算术运算符、逻辑运算符、关系运算符、!、赋值运算符; D、 由高向低分别是:()、!、关系运算符、赋值运算符、算术运算符、逻辑运算符; 11、以下程序的运行结果是:( ) public class Increment{
16、下列( )属于引用数据类型(选择两项) A、 String B、 char C、 用户自定义的 Student 类类型 D、 int
17、对象的特征在类中表示为变量,称为类的( )。 A、 对象 B、 属性 C、 方法 D、 数据类型
18、在 java 中下列关于自动类型转换说法正确的是( ) A、 基本数据类型和 String 相加结果一定是字符串型 B、 char 类型和 int 类型相加结果一定是字符 C、 double 类型可以自动转换为 int D、 char + int + double +"" 结果一定是 double;
Java软件开发工程师笔试题(答案)

Java软件开发工程师笔试题(答案)Java工程师笔试题1,填空(此大题10项,每空1分,共20分)1。
Java语言的三个特性是继承性、封装性和多态性2.在Java中,char 使用_ _ _ _ Unicode _ _ _ _ _ _编码方案,因此中文字符和英文字符都占用__2__字节的内存空间3。
当方法由_ _定义时,形参指的是参数行,当方法由_ _调用时,实际参数是传入的变量或值。
4。
JSP内置对象,应用程序对象代表应用程序上下文,它允许JSP 页面与包含在同一应用程序中的任何网络组件共享信息,而会话对象是特定于每个客户的5。
如果你想把一个对象写到一个流中,这个类必须实现Seralizable 接口6。
在程序中实现多线程有两种方法:继承线程类和实现_ _ Runable _ interface7。
在多线程中,线程的相对优先级可以通过调用相应的setPriority()方法来修改8。
面向对象编程的五个设计原则是单一责任、开放和封闭、里氏尺度替换、依赖倒置、接口分离。
通过Ajax,客户端获取的数据主要有两种类型:文本类型和xml 10。
Socket通常也叫socket,用来描述__ ip和_ _ interface2,多项选择题(这个大题20项,每项2分,共40分)1。
在JA V A中,如果父类中的一些方法不包含任何逻辑并且需要被子类重写,那么父类的这些方法应该使用()关键字来声明:a)final b)static c)abstract d)void2。
在JA V A中,已经定义了两个接口b和c。
要定义实现这两个接口的类,下面的语句是正确的()a)接口aextend b,c b)接口a implements b,c c)类a mplements b,c d)类a mplements b,实现c3。
可以在JA V A接口()中定义A)静态方法b)常量c)构造函数d)抽象方法4。
假设A有构造函数A (int a),那么在A类的其他构造函数中调用的构造函数和语句格式应该是()a)a(x)b)this . a(x)c)this(x)d)super(x)5。
软件开发工程师(JAVA)笔试题

软件开发工程师(JAVA)笔试题请在90分钟以内做答答案请写在答题纸上一、选择题1、下面哪项是不合法的标识符:()A. $personsB. TwoUsersC. *pointD. _endlineE. final2、下列运算符合法的是()A.&& B.<> C.if D.:=3、下面描述中哪两项相等:()[选择两项]A.<%= YoshiBean.size%>B.<%= YoshiBean.getSize()%>C.<%= YoshiBean.getProperty(“size”)%>D.<jsp:getProperty id=”YoshiBean” param=”size”/>E.<jsp:getProperty name=”YoshiBean” param=”size”/>F.<jsp:getProperty id=”YoshiBean” property=”size”/>G.<jsp:getProperty name=”YoshiBean” property=”size”/>4、设float x = 1,y = 2,z = 3,则表达式 y+=z--/++x的值是:()A. 3.5B. 3C. 4D. 55、下面的哪些叙述为真:()A.equals()方法判定引用值是否指向同一对象B.==操作符判定两个不同的对象的内容和类型是否一致C.equal()方法只有在两个对象的内容一致时返回trueD.类File重写方法equals()在两个不同的对象的内容和类型一致时返回true6、如果一个对象仅仅声明实现了cloneable接口,但是不声明clone方法,外部能够调用其clone方法吗?()A. 能B. 不能C. 不确定7、下列说法错误的有()A.能被java.exe成功运行的java class文件必须有main()方法B. J2SDK就是Java APIC. Appletviewer.exe可利用jar选项运行.jar文件D.能被Appletviewer成功运行的java class文件必须有main()方法8、下列正确的有()A. call by value不会改变实际参数的数值B. call by reference能改变实际参数的参考地址C. call by reference不能改变实际参数的参考地址D. call by reference能改变实际参数的内容9、下列说法错误的有()A.数组是一种对象B.数组属于一种原生类C. int number=[]={31,23,33,43,35,63}D.数组的大小可以任意改变10、不能用来修饰interface的有()A.private B.public C.protected D.static 11、关于Float,下列说法正确的是A.Float是一个类B.Float在ng包中C.Float a=1.0是正确的赋值方法D.Float a= new Float(1.0)是正确的赋值方法12、下列哪种说法是正确的()A.实例方法可直接调用超类的实例方法B.实例方法可直接调用超类的类方法C.实例方法可直接调用其他类的实例方法D.实例方法可直接调用本类的类方法13、下列说法错误的有()A.在类方法中可用this来调用本类的类方法B.在类方法中调用本类的类方法时可直接调用C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法14、下面说法哪些是正确的?A.Applet可以访问本地文件B.对static方法的调用不需要类实例C.socket类在ng中D.127.0.0.1地址代表本机15、类Test1、Test2定义如下:1.public class Test1 {2.public float aMethod(float a, float b) throws3.IOException { }4.}5.public class Test2 extends Test1 {6. //Line67.}将以下()方法插入行6是不合法的。
中软Java笔试题目

中软Java笔试题目中软Java笔试题目Java笔试题目(一)一、判断题(30分)1.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free,。
2.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。
3.有的类定义时可以不定义构造函数,所以构造函数不是必需的。
4.类及其属性、方法可以同时有一个以上的修饰符来修饰。
5.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点6.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。
7.Final类中的属性和方法都必须被final修饰符修饰。
8.最终类不能派生子类,最终方法不能被覆盖。
9.子类要调用父类的方法,必须使用super关键字。
10.一个Java类可以有多个父类。
11.如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是正确的。
12.在java集合中,Vector和HashMap是线程安全的。
13.当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。
14.接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。
15.用“+”可以实现字符串的拼接,用- 可以从一个字符串中去除一个字符子串。
二、选择题(30分)1、关于垃圾收集的哪些叙述是正确的( ):A.程序开发者必须自己创建一个线程进行内存释放的工作B.垃圾收集允许程序开发者明确指定并立即释放该内存C.垃圾收集将检查并释放不再使用的内存D.垃圾收集能够在期望的时间释放被java对象使用的内存2、下面的哪些赋值语句是不正确的( ):A.float f=11.1;B.double d=5.3E12;C.double d=3.14159;D.double d=3.14D;3、下面关于变量及其范围的陈述哪些是不正确的( ):A.实例变量是类的成员变量B.实例变量用关键字static声明C.在方法中定义的'局部变量在该方法被执行时创建D.局部变量在使用前必须被初始化4、下列关于修饰符混用的说法,错误的是( ):A.abstract不能与final并列修饰同一个类B.abstract类中不可以有private的成员C.abstract方法必须在abstract类中D.static方法中能处理非static的属性5、容器Panel和Applet缺省使用的布局编辑策略是( ):A、BorderLayoutB、FlowLayoutC、GridLayoutD、CardLayout6、以下标识符中哪项是不合法的( ):A、 BigMeaninglessNameB、$intC、1 stD、$17、main方法是Java Application程序执行的入口点,关于main 方法的方法头以下哪项是合法的( ):A、 public static void main()B、 public static void main(String[ ] args)C、 public static int main(String[ ] arg)D、 public void main(String arg[ ])8、执行完以下代码int [ ] x = new int[25];后,以下哪项说明是正确的( ):A、 x[24]为0B、 x[24]未定义C、 x[25]为0D、 x[0]为空9、以下代码段执行后的输出结果为( ):int x=3; int y=10;System.out.println(y%x);A、0B、1C、2D、310、以下哪个表达式是不合法的( ):A、String x=”Hello”; int y=9; x+=y;B、String x=”Hello”; int y=9; if(x= =y) { }C、String x=”Hello”; int y=9; x=x+y;D、String x=null; int y=(x!=null)&&(x.length()>0) ? x.length : 011、编译运行以下程序后,关于输出结果的说明正确的是 ( ):public class Conditional{public static void main(String args[ ]){int x=4;System.out.println(“value is “+ ((x>4) ? 99.9 :9));}}A、输出结果为:value is 99.99B、输出结果为:value is 9C、输出结果为:value is 9.0D、编译错误12、以下声明合法的是( ):A、 default String s;B、 public final static native int w( )C、 abstract double d;D、 abstract final double hyperbolicCosine( )13、关于以下application的说明,正确的是( ):1. class StaticStuff2. {3. static int x=10;4. static { x+=5;}5. public static void main(String args[ ])6. {7. System.out.println(“x=” + x);8. }9. static { x/=3;}10. }A、 4行与9行不能通过编译,因为缺少方法名和返回类型B、 9行不能通过编译,因为只能有一个静态初始化器C、编译通过,执行结果为:x=5D、编译通过,执行结果为:x=314、关于以下程序代码的说明正确的是( ):1.class HasStatic{2. private static int x=100;3. public static void main(String args[ ]){。
Java软件开发工程师笔试题及答案

Java软件开发工程师笔试题及答案考试时间:120分钟姓名:___________ 成绩:___________一、选择题(共40题,每题2分)1.下列表达式正确的( )A、byte b = 128;B、boolean flag = null;C、float f = 0.9239;D、long a = 2147483648L;2.下列运算符合法的是( )A、&&B、<>C、ifD、:=、3.如下哪个不是java的关键字( )A、constB、NULLC、ifD、this4.提供Java存取数据库能力的包是( )A、java.sqlB、java.awtC、ngD、java.swing5.下列哪一种叙述是正确的( )A、abstract修饰符可修饰字段、方法和类B、抽象方法的body部分必须用一对大括号{ }包住C、声明抽象方法,大括号可有可无D、声明抽象方法不可写出大括号6.关于源文件,下列说法错误的是( )A、一个源文件里可以有多个class声明B、一个源文件里只能有一个class用public修饰C、源文件的名称只要和源文件里任意一个类名相同即可D、在开发的时候,如果两个类不存在嵌套关系,最好是一个源文件只有一个类7.已知表达式int m [ ] = {0,1,2,3,4,5,6};下面哪个表达式的值与数组下标量总数相等( )A、m.length()B、m.lengthC、m.length()+1D、m.length-18.下列程序的输出结果是()String str = null;System.out.println(a+2);A、2B、”2”C、”null2”D、” null+2”9.下列程序的输出结果是()int a = 012;int b = a < < 1;System.out.println(b);A、20B、24C、falseD、2110.下列程序的输出结果是()int a = 0x12;int b = a < < 1;System.out.println(b);A、36B、24C、falseD、2111.下列程序的输出结果是()int a = 23;int b = 5;System.out.println(a % b);A、4B、3C、4.6D、012.下列程序的输出结果是()double a = 23.0;double b = 5.0;System.out.println(a % b);A、4B、3C、4.0D、3.013.下列程序的输出结果是()int i = 2;i = i ++;int j = i ++;System.out.println(i+”, ”+j);A、2, 1B、2, 2C、2, 3D、3, 214.关于线程设计,下列描述正确的是()A、线程对象必须实现Runnable接口;B、启动一个线程直接调用线程对象的run()方法;C、Java提供对多线程同步提供语言级的支持;D、一个线程可以包含多个进程;15.欲构造ArrayList类得一个实例,此类继承了List接口,下列哪个方法是正确的()A、ArrayList myList = new Object();B、List myList = new ArrayList();C、ArraylList myList = new List();D、List myList = new List();16.下哪一个类型不能作为switch语句表达式的类型()A、intB、charC、StringD、short17.下面哪行代码有编译问题()public class Test{public void Test(){ //①}public Test(String str){ //②System.out.println(str);}public static void main(String[] args){Test t1 = new Test(); //③Test t2 = new Test(“hello”); //④}}A、①B、②C、③D、④18.关于Map和List,下面说法正确的是()A、Map继承ListB、List中可以保存Map或ListC、Map和List只能保存从数据库中取出的数据D、Map的value可以是List或Map19.下列描述正确的是()A、数组是一种对象B、数组属于一种原生类C、int number=[]={31,23,33,43,35,63}D、数组的大小可以任意改变20.关于package,下列说法不正确的是()A、package的作用是可以对类进行分类管理B、package提供了包一级的封装C、package语句不必是类的第一条非注释代码D、package声明的包可以有子包,但两个子包的名称不能相同21.关于权限修饰符,下列说法错误的是()A、权限修饰符可以用来修饰类和类的成员B、public权限最大,可以跨包访问C、protected权限允许在同一个包访问D、类不能用private修饰22.下列哪种说法是正确的()A、实例方法可直接调用超类的实例方法B、实例方法可直接调用超类的类方法C、实例方法可直接调用其他类的实例方法D、实例方法可直接调用本类的类方法23.阅读下面的程序public class X extends Thread implements Runnable{public void run(){System.out.println("this is run()");}public static void main(String args[]){Thread t=new Thread(new X());t.start();}}正确的判断是()A、第一行会产生编译错误B、第六行会产生编译错误C、第六行会产生运行错误D、程序会运行和启动24.阅读下面的程序public class A{private int value;public A(int value){setValue(value);}public setValue(int value){this.value = value;}}public class Test{public static void main(String[] args){int i = 1;A a = new A(1);modify (i);modify (a);}public static void modify(int i){i = 10;}public static void modify (A a){a.setValue(10);}}关于main方法的执行,正确的判断是()A、i的值改变了,a的成员变量的值改变了B、i的值改变了,a的成员变量的值没有改变C、i的值没有改变,a的成员变量的值改变了D、i的值没有改变,a的成员变量的值没有改变25.关于eqauls方法,下列说法错误的是()A、用==判断两个对象相等B、用对象的eqauls方法判断两个对象相等C、根类Object的eqauls方法的实现机制是判断参数指向的对象和自身是否为同一个对象D、如果我们要判断对象相等,通常需要覆盖eqauls方法26.下面哪行代码有编译问题()public class Test{public static void main(String[] args){int[] a = {}; //①String[] str = {}; //②a = new int[]{}; //③str = {”1”,”2”}; //④}}A、①B、②C、③D、④27.下面哪种定义一个二维数组的方式是错误的()A、int[][] a = new int[5][];B、int[][] a = new int[][5];C、int[][] a = {};D、int[][] a = {{}};28.String s=new String(“hello”);String t =new String(“hello”);char c [ ] ={‘h’,’e’,’l’,’l’,’o’};下列哪些表达式返回true()(多选)A、s.equals(t);B、t.equals(c);C、s= =tD、t.equals (new String(“hello”));29.阅读下面代码:String str1 = “abc”;String str2 = new String(“abc”);boolean b1 = str1 == str2;boolean b2 = str1.eqauls(str2);判断正确的是()A、b1的值为true,b2的值为trueB、b1的值为false,b2的值为trueC、b1的值为true,b2的值为falseD、b1的值为false,b2的值为false30.对于下列代码:public class Parent {public int addValue (int a ,int b ){int s;s = a + b;return s;}}class Child extends Parent {}下述哪个方法可以加入类Child()A、int addValue(int a ,int b){//do something…}B、public void addValue(){//do something…}C、public int addV alue(){//do something…}D、public int addValue( int a, int b )throws MyException {//do some thing…}31.关于异常(Exception),下列说法错误的是()A、异常的基类为Exception,所有异常都必须直接或者间接继承它B、异常可以用try{ . . .}catch(Exception e){ . . .}来捕获并进行处理C、如果某异常继承RuntimeException,则该异常可以不被声明D、异常可以随便处理,而不是抛给外层的程序进行处理32.下列关于栈的叙述正确的是()A、栈是非线性结构B、栈是一种树状结构C、栈具有先进先出的特征D、栈具有后进先出的特征33.有关线程的哪个叙述是错误的()A、一旦一个线程被创建,它就立即开始运行。
Java开发工程师招聘笔试题及解答2024年

2024年招聘Java开发工程师笔试题及解答(答案在后面)一、单项选择题(本大题有10小题,每小题2分,共20分)1、以下哪个不是Java中的基本数据类型?A、intB、floatC、StringD、boolean2、在Java中,以下哪个关键字用于声明一个类?A、classB、structC、enumD、interface3、关于Java中的String类,以下描述正确的是:A. String类是final类,无法继承。
B. String类是可变的,可以对其进行修改。
C. String类是可变的,每次对String对象的操作都会创建新的对象。
D. String类是不可变的,每次对String对象的操作都会创建新的对象。
4、关于Java中的垃圾回收机制,以下描述不正确的是:A. 垃圾回收器可以自动回收不再使用的对象占用的内存空间。
B. 垃圾回收机制是Java自动管理内存的一种方式,程序员无需手动释放内存。
C. 垃圾回收器会定期检查并回收那些不再有引用的对象。
D. 堆内存中的所有对象在不再有引用后,会自动关联到垃圾回收机制中,即成为垃圾,等待垃圾回收器来回收。
5、以下哪个Java版本正式支持模块化系统“Java Platform Module System”(JPMS)?A、Java 8B、Java 9C、Java 10D、Java 116、在Java中,以下哪个关键字用来声明一个线程?A、threadB、runC、ThreadD、start7、以下哪个关键字是Java中用于实现多线程的同步机制?A. synchronizedB. transientC. volatileD. static8、以下哪个选项不是Java中的访问修饰符?A. privateB. publicC. protectedD. friendly9、在Java中,以下哪个选项不是访问修饰符?A. publicB. privateC. protectedD. friend 10、下列关于Java异常处理的说法中,哪一个是正确的?A. Java程序必须捕获并处理所有抛出的异常。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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) 封装数据访问的逻辑,暴露接口
二、 1.什么是 WebService? 答: WebService 是一个 SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台, 可以实现不同的语言间的相互调用,通过 Internet 进行基于 Http 协议的网络应用间的交互。 WebService 实现不同语言间的调用,是依托于一个标准,webservice 是需要遵守 WSDL(web 服务定义语言)/SOAP(简单请求协议)规范的。
StrutsMVC 框架(Web application frameworks)
Struts 是使用 MVC 的实现模式二来实现的,也就是以控制器为核心。
Struts 提供了一些组件使用 MVC 开发应用程序: Model:Struts 没有提供 model 类。这个商业逻辑必须由 Web 应用程序的开发者以 JavaBean 或 EJB 的形式提供
定义一个类,它的构造函数为 private 的,它有一个 static 的 private 的该类变量,在类 初始化时实例话,通过一个 public 的 getInstance 方法获取对它的引用,继而调用其中的方法。 十、类的核心特性有哪些? 类具有封装性、继承性和多态性。 封装性:类的封装性为类的成员提供公有、缺省、保护和私有等多级访问权限,目的是隐藏 类中的私有变量和类中方法的实现细节。 继承性: 类的继承性提供从已存在的类创建新类的机制,继承(inheritance)使一个新类自动拥有被 继承类(父类)的全部成员。 多态性: 类的多态性提供类中方法执行的多样性,多态性有两种表现形式:重载和覆盖。 十一、请问类与对象有什么区别? 类 类就是某一种事物的一般性的集合体,是相同或相似的各个事物共同特性的一种抽象。 对象 在面向对象概念中,对象(Object)是类的实例(instance)。对象与类的关系就像变量与数 据类型的关系一样。 十二、写出生产者消费者模型的实现
View:Struts 提供了 action form 创建 form bean, 用于在 controller 和 view 间传输数据。此外, Struts 提供了自定义 JSP 标签库,辅助开发者用 JSP 创建交互式的以表单为基础的应用程序, 应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于 JSP 中。
1)OOP 把客观世界中的对象抽象成对应的类;
2)通过类构造实例;
3)通过依赖、继承、实现等形式建立对象间的通信关系 (2)OOP 易于扩展,增加或改变业务的功能,无需大幅改动改变源代码 (3)OOP 易于建模,OOP 就是软件架构师在计算机高级语言中对客观世界的抽象和再现, 人们可以很好地理解和建立起计算机中的抽象模型
最大的收获是什么?
十七、请说出几个常用的异常类 答: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
中间件就是程序中可织入的,可重用的,与业务逻辑无关的各种组件。
中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处 于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软 件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、 高效地开发和集成复杂的应用软件。
六、谈谈 Overload 和 Override 的区别。 答:
方法的重写 Overriding 和重载 Overloading 是 Java 多态性的不同表现。重写 Overriding 是父类与子类之间多态性的一种表现,重载 Overloading 是一个类中多态性的一种表现。如 果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子 类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽” 了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型, 则称为方法的重载(Overloading)。Overloaded 的方法是可以改变返回值的类型。
MVC 框架的一种实现模型 模型二(Servlet-centric): JSP+Servlet+JavaBean,以控制为核心,JSP 只负责显示和收集数据,Sevlet,连接视图和为业务类和数据实体,业务类处理业务数 据,数据实体,承载数据,基本上大多数的项目都是使用这种 MVC 的实现模式。
十三、用软件工程和 Java 来叙述购物车(shopping cart)系统实现
十四、文件系统的几个类:FileInputStream、FileOutputStream、FileReader、FileWriter 的区别
十五、请写出 Java API 中最常用的五个包,并且各举两个类加以说明。
十六、请问你在“电信运营支撑系统”中遇到了哪些问题?你是怎么解决的?做这个项目你
Controller:Struts 提供了一个核心的控制器 ActionServlet,通过这个核心的控制器来调用其 他用户注册了的自定义的控制器 Action,自定义 Action 需要符合 Struts 的自定义 Action 规 范,还需要在 struts-config.xml 的特定配置文件中进行配置,接收 JSP 输入字段形成 Action form,然后调用一个 Action 控制器。Action 控制器中提供了 model 的逻辑接口。
(2) 提供方便的数据访问的方案(查询语言,API,映射机制等) Domain layer(域层) (1) 业务对象以及业务关系的表示 (2) 处理简单的业务逻辑 (3) 域层的对象可以穿越表示层,业务层,持久层 软件分层结构使得代码维护非常方便,设计明确,各层独立,专注自己擅长的领域。 五、什么是 OOP?OOP 相对于面向过程编程有哪些优点? OOP,Object-Oriented Programming,面向对象编程不同于面向过程编程: (1)OOP 关注对象和角色,也就是事物的本质
七、谈谈 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 模式一般形式: