JAVA程序员笔试题(一)
一、选择题:
1、类的成员变量要求仅仅能够被同一package下的类访问,应该使用哪个修辞词
A. Protected、B. Public、C. Private、D. 不需要任何修辞词
2、下面那个是Runable接口的方法? A. Run、B. Start、C. Yield、D. stop
3、下面列出的那个是java的保留字?
A. If、B. Goto、C. While、D. Case、E. Then
4、下列哪些说法是正确的?
A. 在collection类树上,最顶层的类叫做Collection B. collection接口有个方法是enumerator C. interator方法返回一个Vetor类的实例 D. set接口是为了那些不重复的元素设计的
5、给出:以下类 public class ReturnIt{ ReturnType methodA(byte x,double y){ return (short)x/y*2;}} 对于在第二行的方法methodA,他的返回值的类型应该是
A. Int、B. Byte、C. Long、D. Short、E. Float、F. double
6、下列关于对象的哪一种说法是正确的?
A.对象是指向属性的引用
B.对象是可以对其进行实例化从而得到类的东西
C.对象是一种蓝本,据此可以创建抽象的具体实现
D.对象是类的实例
E.对象是一种变量
二、问答题
1. String是最基本的数据类型么?
2. 使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变
3. 下列输出是什么
Sting a=”te”, b=”te” ;
If(a == b) System.out.println(“1”);
else System.out.println(“2”);
4. Overloaded的方法是否可以改变返回值的类型?
5. 接口是否可继承接口?
6. 抽象类是否可实现(implements)接口?
7. 抽象类是否可继承具体类(concrete class)?
8. 抽象类中是否可以有静态的main方法?
9. 是否可以从一个static方法内部发出对非static方法的调用?
10. &与&&的区别?
11. Math.round(11.5)等于多少?Math.round(-11.5)等于多少?
12. String s = new String("xyz");创建了几个String Object?
13. 是否可以继承STRING类?
14. try {}里有一个RETURN语句,那么紧跟在这个TRY后的finally{}里的CODE会不会被执行,什么时候被执行,在RETURN前还是后?
三、附加题
1.给你一组字符串如:iu7i8hy4jnb2,让你编程输出里面的数字:7842
答:
public class test {
public static void main(String[] args) {
String s = "iu7i8hy4jnb2";
String newstr = s.replaceAll("[a-z]", "");
System.out.println(newstr);
}}
2.在JAVA中如何跳出当前的循环?
答:是break,因为break是跳出当前的循环。而continue 是跳出本次循环
3.面向对象的特征有哪些方面
答:封装,继承,抽象,多态四个主要。
1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。3.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。4. 多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
4.abstract class和interface有什么区别?
接口 | 抽象类 | |
---|---|---|
多继承 | 支持 | 不支持 |
类型限制 | 没有 | 有,只能是引用类型 |
方法实现 | 继承类型中必须给出方法实现 | 继承类中可以不给出 |
扩展性 | 比较麻烦 | 相对比较灵活 |
多层继承 | 比较麻烦,需要借助虚函数 | 比较灵活 |
5.数据库中常见的join方式有那几种,各有什么特点
答:SQL Server中包含的常用Join:内联接、外联接和交叉联接。
JOIN: 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
6.forward和redirect的区别?
答:答案同第9题。
7.JSP中动态INCLUDE与静态INCLUDE的区别?
答:静态包含<%@include file="xxx.jsp"%>和动态包含<jsp:include page="xxx.jsp">,主要区别
1、<%@include file="xxx.jsp"%>为jsp中的编译指令,其文件的包含是发生在jsp向servlet转换的时期,而< jsp:include page="xxx.jsp">是jsp中的动作指令,其文件的包含是发生在编译时期,也就是将java文件编译为class文件的时期 。
2、使用静态包含只会产生一个class文件,而使用动态包含会产生多个class文件
3、使用静态包含,包含页面和被包含页面的request对象为同一对象,因为静态包含只是将被包含的页面的内容复制到包含的页面中去;而动态包 含包含页面和被包含页面不是同一个页面,被包含的页面的request对象可以取到的参数范围要相对大些,不仅可以取到传递到包含页面的参数,同样也能取 得在包含页面向下传递的参数
8.Request对象的主要方法
答:
//最常用的几种
setAttribute(String name,Object):设置名字为name的request的参数值 getAttribute(String name):返回由name指定的属性值 getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例 getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组 getCharacterEncoding():返回请求中的字符编码方式 getContentLength():返回请求的Body的长度 //实例 getInputStream():返回请求的输入流,用于获得请求中的数据 getMethod():获得客户端向服务器端传送数据的方法 getParameter(String name):获得客户端传送给服务器端的有name指定的参数值 getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例 getParameterValues(String name):获得有name指定的参数的所有值 getProtocol():获取客户端向服务器端传送数据所依据的协议名称 getQueryString():获得查询字符串 getRequestURI():获取发出请求字符串的客户端地址 getRemoteAddr():获取客户端的IP地址 getRemoteHost():获取客户端的名字 getSession([Boolean create]):返回和请求相关Session getServerName():获取服务器的名字 getServletPath():获取客户端所请求的脚本文件的路径 getServerPort():获取服务器的端口号 removeAttribute(String name):删除请求中的一个属性
9.jsp页面中两种跳转方式分别是什么?有什么区别?
答:包含: forward(重定向)和redirect(转发跳转)
一:forward跳转:a.服务器端跳转,地址栏不改变;b.执行到跳转语句后马上无条件跳转,之后的代码不再执行,因此跳转之前一定要释放全部资源);c.request设置的属性在跳转后的页面仍可以使用;d.使用<jsp:param name="参数名" value="参数值" />传递参数。
二:redirect跳转:a.客户端跳转,地址栏改变;b.所有代码执行完毕后跳转;c.跳转后的页面不能使用上一个页面的request属性;d.使用地址重写传递参数(response.sendRedirect("URL?参数名=参数值"))。
10.什么是事务,在spring中有几种事务管理,分别是什么?
答:事务是指:通常所说的是数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行,它包含原子性、一致性、隔离性、持久性四个属性,其中原子性指事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行;一致性指事务在完成时,必须使所有的数据都保持一致状态;隔离性指由并发事务所作的修改必须与任何其它并发事务所作的修改隔离;持久性指事务完成之后,它对于系统的影响是永久性的。
Spring有两种事务管理方式:①编程式 ②声明式。其中编程式事务管理比较灵活,但是代码量大,存在重复的代码比较多;而声明式事务管理比编程式更灵活方便。它是通过 在XML文件为业务组件配置事务代理。其中AOP就是声明式事务管理
答案:共20题,每题5分,后面的附加题直接拿来给我们看一下就可以了,答题少于60分的不予考虑
选择题:D、A、B、D、F、D
问答题:
1. 是
2. 引用不能变
3. 2
4. 不可以
5. 接口可继承接口
6. 抽象类可实现接口
7. 抽象类可继承具体类
8. 抽象类中不可以有静态的main方法
9. 不可以
10. &是位运算符,表示按位与运算;&&是逻辑运算符,表示逻辑于。
11. 12 和 -11.
12. 两个对象。new String() 和 "xyz";
13. 不可以。因为String类是final类型的。
14. 会。在return前执行。JAVA程序员笔试题(一)
一、选择题:
1、类的成员变量要求仅仅能够被同一package下的类访问,应该使用哪个修辞词
A. Protected、B. Public、C. Private、D. 不需要任何修辞词
2、下面那个是Runable接口的方法? A. Run、B. Start、C. Yield、D. stop
3、下面列出的那个是java的保留字?
A. If、B. Goto、C. While、D. Case、E. Then
4、下列哪些说法是正确的?
A. 在collection类树上,最顶层的类叫做Collection B. collection接口有个方法是enumerator C. interator方法返回一个Vetor类的实例 D. set接口是为了那些不重复的元素设计的
5、给出:以下类 public class ReturnIt{ ReturnType methodA(byte x,double y){ return (short)x/y*2;}} 对于在第二行的方法methodA,他的返回值的类型应该是
A. Int、B. Byte、C. Long、D. Short、E. Float、F. double
6、下列关于对象的哪一种说法是正确的?
A.对象是指向属性的引用
B.对象是可以对其进行实例化从而得到类的东西
C.对象是一种蓝本,据此可以创建抽象的具体实现
D.对象是类的实例
E.对象是一种变量
二、问答题
1. String是最基本的数据类型么?
2. 使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变
3. 下列输出是什么
Sting a=”te”, b=”te” ;
If(a == b) System.out.println(“1”);
else System.out.println(“2”);
4. Overloaded的方法是否可以改变返回值的类型?
5. 接口是否可继承接口?
6. 抽象类是否可实现(implements)接口?
7. 抽象类是否可继承具体类(concrete class)?
8. 抽象类中是否可以有静态的main方法?
9. 是否可以从一个static方法内部发出对非static方法的调用?
10. &与&&的区别?
11. Math.round(11.5)等于多少?Math.round(-11.5)等于多少?
12. String s = new String("xyz");创建了几个String Object?
13. 是否可以继承STRING类?
14. try {}里有一个RETURN语句,那么紧跟在这个TRY后的finally{}里的CODE会不会被执行,什么时候被执行,在RETURN前还是后?
三、附加题
1.给你一组字符串如:iu7i8hy4jnb2,让你编程输出里面的数字:7842
答:
public class test {
public static void main(String[] args) {
String s = "iu7i8hy4jnb2";
String newstr = s.replaceAll("[a-z]", "");
System.out.println(newstr);
}}
2.在JAVA中如何跳出当前的循环?
答:是break,因为break是跳出当前的循环。而continue 是跳出本次循环
3.面向对象的特征有哪些方面
答:封装,继承,抽象,多态四个主要。
1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。3.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。4. 多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
4.abstract class和interface有什么区别?
接口 | 抽象类 | |
---|---|---|
多继承 | 支持 | 不支持 |
类型限制 | 没有 | 有,只能是引用类型 |
方法实现 | 继承类型中必须给出方法实现 | 继承类中可以不给出 |
扩展性 | 比较麻烦 | 相对比较灵活 |
多层继承 | 比较麻烦,需要借助虚函数 | 比较灵活 |
5.数据库中常见的join方式有那几种,各有什么特点
答:SQL Server中包含的常用Join:内联接、外联接和交叉联接。
JOIN: 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
6.forward和redirect的区别?
答:答案同第9题。
7.JSP中动态INCLUDE与静态INCLUDE的区别?
答:静态包含<%@include file="xxx.jsp"%>和动态包含<jsp:include page="xxx.jsp">,主要区别
1、<%@include file="xxx.jsp"%>为jsp中的编译指令,其文件的包含是发生在jsp向servlet转换的时期,而< jsp:include page="xxx.jsp">是jsp中的动作指令,其文件的包含是发生在编译时期,也就是将java文件编译为class文件的时期 。
2、使用静态包含只会产生一个class文件,而使用动态包含会产生多个class文件
3、使用静态包含,包含页面和被包含页面的request对象为同一对象,因为静态包含只是将被包含的页面的内容复制到包含的页面中去;而动态包 含包含页面和被包含页面不是同一个页面,被包含的页面的request对象可以取到的参数范围要相对大些,不仅可以取到传递到包含页面的参数,同样也能取 得在包含页面向下传递的参数
8.Request对象的主要方法
答:
//最常用的几种
setAttribute(String name,Object):设置名字为name的request的参数值 getAttribute(String name):返回由name指定的属性值 getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例 getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组 getCharacterEncoding():返回请求中的字符编码方式 getContentLength():返回请求的Body的长度 //实例 getInputStream():返回请求的输入流,用于获得请求中的数据 getMethod():获得客户端向服务器端传送数据的方法 getParameter(String name):获得客户端传送给服务器端的有name指定的参数值 getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例 getParameterValues(String name):获得有name指定的参数的所有值 getProtocol():获取客户端向服务器端传送数据所依据的协议名称 getQueryString():获得查询字符串 getRequestURI():获取发出请求字符串的客户端地址 getRemoteAddr():获取客户端的IP地址 getRemoteHost():获取客户端的名字 getSession([Boolean create]):返回和请求相关Session getServerName():获取服务器的名字 getServletPath():获取客户端所请求的脚本文件的路径 getServerPort():获取服务器的端口号 removeAttribute(String name):删除请求中的一个属性
9.jsp页面中两种跳转方式分别是什么?有什么区别?
答:包含: forward(重定向)和redirect(转发跳转)
一:forward跳转:a.服务器端跳转,地址栏不改变;b.执行到跳转语句后马上无条件跳转,之后的代码不再执行,因此跳转之前一定要释放全部资源);c.request设置的属性在跳转后的页面仍可以使用;d.使用<jsp:param name="参数名" value="参数值" />传递参数。
二:redirect跳转:a.客户端跳转,地址栏改变;b.所有代码执行完毕后跳转;c.跳转后的页面不能使用上一个页面的request属性;d.使用地址重写传递参数(response.sendRedirect("URL?参数名=参数值"))。
10.什么是事务,在spring中有几种事务管理,分别是什么?
答:事务是指:通常所说的是数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行,它包含原子性、一致性、隔离性、持久性四个属性,其中原子性指事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行;一致性指事务在完成时,必须使所有的数据都保持一致状态;隔离性指由并发事务所作的修改必须与任何其它并发事务所作的修改隔离;持久性指事务完成之后,它对于系统的影响是永久性的。
Spring有两种事务管理方式:①编程式 ②声明式。其中编程式事务管理比较灵活,但是代码量大,存在重复的代码比较多;而声明式事务管理比编程式更灵活方便。它是通过 在XML文件为业务组件配置事务代理。其中AOP就是声明式事务管理
答案:共20题,每题5分,后面的附加题直接拿来给我们看一下就可以了,答题少于60分的不予考虑
选择题:D、A、B、D、F、D
问答题:
1. 是
2. 引用不能变
3. 2
4. 不可以
5. 接口可继承接口
6. 抽象类可实现接口
7. 抽象类可继承具体类
8. 抽象类中不可以有静态的main方法
9. 不可以
10. &是位运算符,表示按位与运算;&&是逻辑运算符,表示逻辑于。
11. 12 和 -11.
12. 两个对象。new String() 和 "xyz";
13. 不可以。因为String类是final类型的。
14. 会。在return前执行。
声明:文章属于个人原创,转载请注明文章出处