java面试题1
来源:互联网 发布:mac上编程软件 编辑:程序博客网 时间:2024/06/14 01:41
一、简答题
1、Collection和Collections的区别?
答:Collection是集合类的上级接口,继承与他的接口主要有Set和List。
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
2、Truncate和delete的区别?
答:Delete删除的记录如不提交可以恢复,此命令不能删除回滚段中的数据。
truncate删除的记录不能回复,并可以删除回滚段中的数据。
3、用正则表达式获取由数字和26个英文组成的字符串
import java.util.regex.Pattern; import java.util.regex.Matcher; public class Test{ public static void main(String[] args){ String str="akl今天是个jj.A@好日子_2.33"; String s = "[a-zA-Z0-9]"; Pattern pattern=Pattern.compile(s); Matcher ma=pattern.matcher(str); while(ma.find()){ System.out.print(ma.group()); } } }运行结果如下:
4、简述逻辑操作(&,|,^)与条件操作(&&,||)的区别?
答:区别主要有两点:a.条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作数值型 b.逻辑操作不会产生短路
5、public class Something{
void doSomething(){
private String s="",
int l = s.length();
}
}
请找出以上程序中的错误
答:局部变量前不能放置任何访问修饰符 (private,public,和protected)。final可以用来修饰局部变量。所以要删除private或者将private换成final。
6、运行时异常与一般异常有何异同?
答:异常表示程序过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作过程中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
第二种更清晰的解释:
Java提供了两类主要的异常:运行时异常runtime exception和一般异常checked exception。checked 异常。对于后者这种异常,JAVA要求程序员对其进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。
运行时异常我们可以不处理。这样的异常由虚拟机接管。出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。
7、Servlet可以存储数据的三个不同的作用域是?
答:请求、会话和上下文。
详细解释:
就servlet规范本身,servlet可以再三个不同的作用域存储数据,分别是:Request对象、Session对象和ServletContext对象中保存。
二、java编程题
1、有一个字符串"ECALYHWEQAEFSZC",请写程序找出其中有多少字符,每种字符有几个,并打印出来?
import java.util.HashMap;import java.util.Map.Entry;public class Test2 {public static void main(String[] args) {String s="ECALYHWEQAEFSZC";HashMap<Character,Integer> map=new HashMap<Character,Integer>();for (int i=0;i<s.length();i++) {char c=s.charAt(i);Integer num=(Integer)map.get(c);if(num==null){num=1;}else{num++;}map.put(c, num);}for(Entry<Character, Integer> entry:map.entrySet()){System.out.print(entry.getKey()+"="+entry.getValue()+" ");}}}运行结果如下:
2、写一段Jdbc连接Oracle的程序,并实现数据查询?
import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;/** * 写一段Jdbc连接Oracle的程序,并实现数据查询? * @author Taylor * */public class Test3 {String dbUrl="jdbc:oracle:thin:@127.0.0.1:1521:orcl";String dbUser="scott";String dbPwd="tiger";Connection con =null;PreparedStatement pstmt=null;ResultSet rs=null;public Test3(String sql){try {Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();con=DriverManager.getConnection(dbUrl,dbUser,dbPwd);pstmt=con.prepareStatement(sql);} catch (Exception e) {e.printStackTrace();} }public ResultSet excuteQuery(){rs=null;try {rs=pstmt.executeQuery();} catch (Exception e) {e.printStackTrace();}return rs;}public void closeCon(){try {if(pstmt!=null){pstmt.close();}if(con!=null){con.close();}} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {ResultSet rs;Test3 test3=new Test3("select * from emp");rs=test3.excuteQuery();try {while(rs.next()){System.out.print(rs.getString("empno")+"-"+rs.getString("ename")+" ");}} catch (Exception e) {e.printStackTrace();} finally {test3.closeCon();}}}运行结果如下:
java连接oracle的jar包:http://download.csdn.net/download/zenglinshan/9866943
三、数据库基础知识
emp表中的示例数据如图-1所示:
dept表中的示例数据如图-2所示:
注意:这个题中用到的表刚好可以从上一题得通过select * from emp;select * from dept;这两条语句得到
1、查询出薪水比本部门平均薪水高的员工信息。
答:select a.* from emp a,(select deptno,avg(sal) avgsal from emp group by deptno)b where a.deptno=b.deptno and a.sal>b.avgsal
执行结果如下图所示
2、查出不在部门20,且比部门20中任何一个人工资都高的员工姓名,部门名称
select ename,deptno from emp where deptno!=20 and sal>(select max(sal) from emp where deptno=20)
执行结果如下图所示
- java面试题1
- JAVA面试题-1
- java面试题1
- java面试题1
- JAVa面试题1
- java面试题1
- java面试题1
- java面试题1
- java面试题1
- java面试题1
- java面试题1
- java面试题1
- java面试题1
- Java面试题1
- JAVA面试题1
- JAVA面试题【1】
- Java面试题1
- java面试题1
- VC编译调试比特币源码
- 自定义View环形递增
- 根据字符串格式的模型路径获得模型
- python第五篇-while
- PB9阿里大于发短信
- java面试题1
- PB9网易云信发短信
- OC语法详解
- 牛客day3
- 圈点生活......
- Linux crontab
- Servlet的基本架构
- 自定义view进度条
- 人工智能发展史-从图灵测试到大数据