- 浏览: 1944 次
- 性别:
- 来自: 上海
最近访客 更多访客>>
文章分类
最新评论
-
chenke:
正的没有人做过这方面的 效果吗!~~~~
我不要悲剧啊!··· ...
用程序实现水中点击染料扩散的效果 -
chenke:
2. DESCRIBE请求消息处理过程
RTSP ...
4_JAVA+Oracle面试题(有答案) -
chenke:
RTSP服务器实例live555源代码分析2009-04-01 ...
4_JAVA+Oracle面试题(有答案)
4_JAVA+Oracle面试题(有答案)
基础测试题
卷面上不能出现任何的涂写文字,所有的答案要求写在答题纸上,考卷不得带走。
选择题
1、 What will happen when you attempt to compile and run the following code? (3)
public class Static {
static {
int x = 5; // 在static内有效
}
static int x, y; // 初始化为0
public static void main(String args[]) {
x--; // -1
myMethod();
System.out.println(x + y + ++x);
}
public static void myMethod() {
y = x++ + ++x; // y=-1+1 x=1
}
}
A. compiletime error B. prints: 1 C. prints: 2 D、 prints: 3 E、 prints: 7 F、 prints: 8
将以上的程序分步进行执行:
1、 static int x, y; ? x = 0 ; y = 0 ;
2、 x--; ? x = -1 ; y = 0 ;
3、 y = x++ + ++x; ? x = 1 ; y = 0 ;
4、 System.out.println(x + y + ++x); ? 3
2、 Given the following code, what will be the output? (3)
class Value {
public int i = 15;
}
public class Test {
public static void main(String argv[]) {
Test t = new Test();
t.first();
}
public void first() {
int i = 5;
Value v = new Value();
v.i = 25;
second(v, i);
System.out.println(v.i);
}
public void second(Value v, int i) {
i = 0;
v.i = 20;
Value val = new Value();
v = val;
System.out.println(v.i + " " + i);
}
}
A、 15 0 20 B、 15 0 15 C、 20 0 20 D、 0 15 20
3、 What will happen when you attempt to compile and run the following code? (3)
class MyParent {
int x, y;
MyParent(int x, int y) {
this.x = x;
this.y = y;
}
public int addMe(int x, int y) {
return this.x + x + y + this.y;
}
public int addMe(MyParent myPar) {
return addMe(myPar.x, myPar.y);
}
}
class MyChild extends MyParent {
int z;
MyChild(int x, int y, int z) {
super(x, y);
this.z = z;
}
public int addMe(int x, int y, int z) {
return this.x + x + this.y + y + this.z + z;
}
public int addMe(MyChild myChi) {
return addMe(myChi.x, myChi.y, myChi.z);
}
public int addMe(int x, int y) {
return this.x + x + this.y + y;
}
}
public class MySomeOne {
public static void main(String args[]) {
MyChild myChi = new MyChild(10, 20, 30);
MyParent myPar = new MyParent(10, 20);
int x = myChi.addMe(10, 20, 30);
int y = myChi.addMe(myChi);
int z = myPar.addMe(myPar);
System.out.println(x + y + z);
}
}
A、 300 B、 240 C、 120 D、 180 E、 compile error F、 none of the above
class MyParent {
int x, y;
MyParent(int x, int y) { // 10 20
this.x = x;
this.y = y;
}
public int addMe(int x, int y) {
return this.x + x + y + this.y;
}
public int addMe(MyParent myPar) {
return addMe(myPar.x, myPar.y);
}
}
class MyChild extends MyParent {
int z;
MyChild(int x, int y, int z) { // 10 20 30
super(x, y);
this.z = z;
}
public int addMe(int x, int y, int z) {
return this.x + x + this.y + y + this.z + z;
// 10 10 20 20 30 30 --> 120 + 120
}
public int addMe(MyChild myChi) {
return addMe(myChi.x, myChi.y, myChi.z);
}
public int addMe(int x, int y) {
return this.x + x + this.y + y;
}
}
public class MySomeOne {
public static void main(String args[]) {
MyChild myChi = new MyChild(10, 20, 30);
MyParent myPar = new MyParent(10, 20);
int x = myChi.addMe(10, 20, 30); // 120
int y = myChi.addMe(myChi); // 120
int z = myPar.addMe(myPar); // 60
System.out.println(x + y + z);
}
}
4、 What will happen when you attempt to compile and run the following code? (3)
interface MyInterface {
}
public class MyInstanceTest implements MyInterface {
static String s;
public static void main(String args[]) {
MyInstanceTest t = new MyInstanceTest();
if (t instanceof MyInterface) {
System.out.println("I am true interface");
} else {
System.out.println("I am false interface");
}
if (s instanceof String) {
System.out.println("I am true String");
} else {
System.out.println("I am false String");
}
}
}
A、 compile time error
B、 runtime error
C、 prints: “I am true interface” followed by “I am true String”
D、 prints: “I am false interface” followed by “I am false String”
E、 prints: “I am true interface” followed by “I am false String”
F、 prints: “I am false interface” followed by “I am true String”
只有当一个对象实例化之后才有可能知道其具体的类型。
5、 What results from attempting to compile and run the following code? (3)
public class Ternary {
public static void main(String args[]) {
int a = 5;
System.out.println("Value is - " + ((a < 5) ? 9.0 : 9)); ? 数据类型的自动转换
}
}
A、 print:Value is -9 B、 print:Value is -5 C、 Compilation error D、 None of these
6、 What will be the result of executing the following code? (3)
public static void main(String args[]) {
char digit = 'a';
for (int i = 0; i < 10; i++) {
switch (digit) {
case 'x': {
int j = 0;
System.out.println(j);
}
default: {
int j = 100;
System.out.println(j);
}
}
}
int i = j;
System.out.println(i);
}
A、 100 will be printed 11 times.
B、 100 will be printed 10 times and then there will be a runtime exception
C、 The code will not compile because the variable i cannot be declared twice within the mani() method.
D、 The code will not compile because the variable j cannot be declared twice within the switch statement.
E、 None of these.
7、 Which of the following collection classes from java.util package are Thread safe? (3)
A、 Vector B、 ArrayList C、 HashMap D、 Hashtable
8、 What will happen when you attempt to compile and run the following code? (3)
class MyThread extends Thread {
public void run() {
System.out.println("MyThread: run()");
}
public void start() {
System.out.println("MyThread: start()");
}
}
class MyRunnable implements Runnable {
public void run() {
System.out.println("MyRunnable: run()");
}
public void start() {
System.out.println("MyRunnable: start()");
}
}
public class MyTest {
public static void main(String args[]) {
MyThread myThread = new MyThread();
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
myThread.start();
thread.start();
}
}
A、 prints: MyThread: start() followed by MyRunnable: run()
B、 prints: MyThread: run() followed by MyRunnable: start()
C、 prints: MyThread: start() followed by MyRunnable: start()
D、 prints: MyThread: run() followed by MyRunnable: run()
E、 compile time error
F、 None of the above
9、 Which of the following will output -4.0?(3)
1、 System.out.println(Math.floor(-4.7));
2、 System.out.println(Math.round(-4.7));
3、 System.out.println(Math.ceil(-4.7));
4、 System.out.println(Math.min(-4.7));
10、 What will happen if you attempt to compile and run the following code?(3)
Integer ten=new Integer(10);
Long nine=new Long (9);
System.out.println(ten + nine);
int i=1;
System.out.println(i + ten);
1、 19 followed by 20
2、 19 followed by 11
3、 Error: Can’t convert java lang Integer
4、 10 followed by 1
问答题
1、 请写出Java中的数据类型划分及默认值。(5)
数据类型分为|:
? 基本数据类型:
|- 数值型:byte、short 、int、long,默认是0
|- 浮点型:float、double,默认是0.0
|- 字符:char,默认是“\n0000”
|- 布尔:boolean,默认是false
? 引用数据类型:默认值是null
|- 数组:
|- 类:
|- 接口:
2、 Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?(5)
? OverLoad:在一个类中出现的,方法名称相同,参数的类型或个数不同,没有权限要求
? Override:在继承类中出现的,方法名称,参数的类型或个数相同,注意访问权限不能更加严格
? OverLoad只是根据参数的类型或个数来确定的,与返回值类型无关。
3、 请详细解释String类的特点?StringBuffer类的特点?并列举出十个String的相关操作方法。(5)
1、 String类特点:
? 一个字符串就是一个String的匿名对象
? 有两种赋值方式,一种是直接赋值,另外一种是采用关键字new完成的,第一种方式性能高,只会开辟一个堆空间,而第二种会开辟两个堆空间
? String的地址比较使用==,内容比较使用equals()
? String的内容一旦声明则不可改变,改变的是其内存地址的指向
2、 StringBuffer:内容可以改变
3、 方法:split()、matches()、replaceAll()、charAt()、getBytes()、substring()、indexof()、toLowerCase()、toUpperCase()、startsWith()、endsWith().
4、 abstract class和interface的区别?(5)
? 抽象类:包含一个抽象方法的类就是抽象类,抽象类要使用abstract关键字声明,抽象类必须有子类,而且通过对象多态性可以直接为父类对象进行实例化,一个抽象类可以包含任意的东西,包括构造方法、普通方法、抽象方法、属性、全局常量等等,可以包含内部接口或抽象类,模板设计
? 接口:由抽象方法和全局常量组成的特殊类称为接口,接口可以被实现,一个类可以同时实现多个接口,但是一个接口只允许继承其他接口,通过接口可以实现多继承的关系,一个接口中可以包含其他的内部接口或内部类。代理、工厂。
5、 请写出异常处理的主要流程。(5)
如果程序中没有任何的异常处理语句,则将交给JVM进行处理,一旦出现了异常之后程序将退出执行
如果程序中存在了异常的处理语句,则出现异常之后,在try中进行捕获,之后与catch中的异常类型进行匹配,如果匹配成功,则可以进行处理
不管如何处理异常,只要是加入了finally关键字,则肯定都要执行此出口。
一旦出现了异常之后,抛出的就是一个异常类的实例化对象。
6、 详细解释Java中垃圾收集的主要流程。(5)
垃圾收集主要有两种形式:手工、自动
自动会不定期进行回收,以释放无用的空间
手工调用的是System类中的gc()方法,此方法实际上调用的是Runtime类中的gc()方法,当一个对象被回收之前将调用类中的finlalize()方法,此方法为 Object类所提供,表示对象回收前的收尾工作。即使出现了异常,也不影响程序的执行,而且此方法抛出的是Throwable,表示可能是异常也可能是错误。
编程题
1、 编写一个Singleton。(5)
class Singleton{
public static Singleton instance = new Singleton() ;
private Singleton(){}
public static Singleton getInstance(){
return instance ;
}
}
Runtime、Class都采用了此类形式。
2、 使用JDBC + Oracle完成一个dept表的查询操作,可以根据关键字显示出全部的查询结果。(10)
import java.sql.* ;
public class JDBC{
public static void main(String args[]) throws Exception {
String sql = "SELECT deptno,dname,loc FROM emp " ;
Class.forName("oracle.jdbc.driver.OracleDriver") ;
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:MLDN","scott","tiger") ;
PreparedStatement pstmt = conn.prepareStatement(sql) ;
ResultSet rs = pstmt.executeQuery() ;
while(rs.next()){
int deptno = rs.getInt(1) ;
String dname = rs.getString(2) ;
String loc = rs.getString(3) ;
System.out.println(dno + " --> " + dname + "," + loc) ;
}
rs.close() ;
pstmt.close() ;
conn.close() ;
}
}
3、 输入一个email地址,之后使用正则表达式验证该email地址是否正确。(5)
public class JDBC{
public static void main(String args[]) throws Exception {
String str = "aa@aa.com" ;
System.out.println(str.matches("\\w+@\\w+\\.\\w+")) ;
}
}
4、 从键盘输入文件的内容和要保存的文件名称,之后根据输入的名称创建文件,并将内容保存到文件之中。(5)
import java.io.* ;
public class JDBC{
public static void main(String args[]) throws Exception {
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)) ;
String fileName = null ;
String content = null ;
System.out.print("请输入文件路径:") ;
fileName = buf.readLine() ; // 接收内容
System.out.print("请输入文件内容:") ;
content = buf.readLine() ;
PrintStream out = new PrintStream(new FileOutputStream(new File(fileName))) ;
out.println(content) ;
out.close() ;
}
}
数据库
1、 显示非销售人员工作名称以及从事同一工作雇员的月工资的总和,并且要满足从事同一工作的雇员的月工资合计大于$5000,输出结果按月工资的合计升序排列。(3)
SELECT job,SUM(sal) sum
FROM emp
WHERE job<>'SALESMAN'
GROUP BY job HAVING sum>5000
ORDER BY sum ;
2、 列出最低薪金大于1500的各种工作及此从事此工作的全部雇员人数。(3)
SELECT job,COUNT(empno)
FROM emp
GROUP BY job HAVING MIN(sal)>1500 ;
3、 列出薪金高于公司平均薪金的所有员工,所在部门,上级领导,公司的工资等级。(3)
SELECT e.empno,e.ename,d.dname,m.ename,s.grade
FROM emp e,dept d,emp m,salgrade s
WHERE sal>(SELECT AVG(sal) FROM emp) AND e.mgr=m.empno AND d.deptno=e.deptno(+) AND e.sal BETWEEN s.losal AND s.hisal ;
4、 列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金、部门名称。(3)
SELECT e.ename,e.sal,d.dname FROM emp e,dept d
WHERE sal > ALL (SELECT sal FROM emp WHERE deptno=30) AND e.deptno=d.deptno;
5、 列出所有部门的详细信息和部门人数。(3)
SELECT d.dname,d.loc,dt.count
FROM dept d,(SELECT deptno,COUNT(*) count FROM emp GROUP BY deptno) dt
WHERE d.deptno=dt.deptno ;
卷面上不能出现任何的涂写文字,所有的答案要求写在答题纸上,考卷不得带走。
选择题
1、 What will happen when you attempt to compile and run the following code? (3)
public class Static {
static {
int x = 5; // 在static内有效
}
static int x, y; // 初始化为0
public static void main(String args[]) {
x--; // -1
myMethod();
System.out.println(x + y + ++x);
}
public static void myMethod() {
y = x++ + ++x; // y=-1+1 x=1
}
}
A. compiletime error B. prints: 1 C. prints: 2 D、 prints: 3 E、 prints: 7 F、 prints: 8
将以上的程序分步进行执行:
1、 static int x, y; ? x = 0 ; y = 0 ;
2、 x--; ? x = -1 ; y = 0 ;
3、 y = x++ + ++x; ? x = 1 ; y = 0 ;
4、 System.out.println(x + y + ++x); ? 3
2、 Given the following code, what will be the output? (3)
class Value {
public int i = 15;
}
public class Test {
public static void main(String argv[]) {
Test t = new Test();
t.first();
}
public void first() {
int i = 5;
Value v = new Value();
v.i = 25;
second(v, i);
System.out.println(v.i);
}
public void second(Value v, int i) {
i = 0;
v.i = 20;
Value val = new Value();
v = val;
System.out.println(v.i + " " + i);
}
}
A、 15 0 20 B、 15 0 15 C、 20 0 20 D、 0 15 20
3、 What will happen when you attempt to compile and run the following code? (3)
class MyParent {
int x, y;
MyParent(int x, int y) {
this.x = x;
this.y = y;
}
public int addMe(int x, int y) {
return this.x + x + y + this.y;
}
public int addMe(MyParent myPar) {
return addMe(myPar.x, myPar.y);
}
}
class MyChild extends MyParent {
int z;
MyChild(int x, int y, int z) {
super(x, y);
this.z = z;
}
public int addMe(int x, int y, int z) {
return this.x + x + this.y + y + this.z + z;
}
public int addMe(MyChild myChi) {
return addMe(myChi.x, myChi.y, myChi.z);
}
public int addMe(int x, int y) {
return this.x + x + this.y + y;
}
}
public class MySomeOne {
public static void main(String args[]) {
MyChild myChi = new MyChild(10, 20, 30);
MyParent myPar = new MyParent(10, 20);
int x = myChi.addMe(10, 20, 30);
int y = myChi.addMe(myChi);
int z = myPar.addMe(myPar);
System.out.println(x + y + z);
}
}
A、 300 B、 240 C、 120 D、 180 E、 compile error F、 none of the above
class MyParent {
int x, y;
MyParent(int x, int y) { // 10 20
this.x = x;
this.y = y;
}
public int addMe(int x, int y) {
return this.x + x + y + this.y;
}
public int addMe(MyParent myPar) {
return addMe(myPar.x, myPar.y);
}
}
class MyChild extends MyParent {
int z;
MyChild(int x, int y, int z) { // 10 20 30
super(x, y);
this.z = z;
}
public int addMe(int x, int y, int z) {
return this.x + x + this.y + y + this.z + z;
// 10 10 20 20 30 30 --> 120 + 120
}
public int addMe(MyChild myChi) {
return addMe(myChi.x, myChi.y, myChi.z);
}
public int addMe(int x, int y) {
return this.x + x + this.y + y;
}
}
public class MySomeOne {
public static void main(String args[]) {
MyChild myChi = new MyChild(10, 20, 30);
MyParent myPar = new MyParent(10, 20);
int x = myChi.addMe(10, 20, 30); // 120
int y = myChi.addMe(myChi); // 120
int z = myPar.addMe(myPar); // 60
System.out.println(x + y + z);
}
}
4、 What will happen when you attempt to compile and run the following code? (3)
interface MyInterface {
}
public class MyInstanceTest implements MyInterface {
static String s;
public static void main(String args[]) {
MyInstanceTest t = new MyInstanceTest();
if (t instanceof MyInterface) {
System.out.println("I am true interface");
} else {
System.out.println("I am false interface");
}
if (s instanceof String) {
System.out.println("I am true String");
} else {
System.out.println("I am false String");
}
}
}
A、 compile time error
B、 runtime error
C、 prints: “I am true interface” followed by “I am true String”
D、 prints: “I am false interface” followed by “I am false String”
E、 prints: “I am true interface” followed by “I am false String”
F、 prints: “I am false interface” followed by “I am true String”
只有当一个对象实例化之后才有可能知道其具体的类型。
5、 What results from attempting to compile and run the following code? (3)
public class Ternary {
public static void main(String args[]) {
int a = 5;
System.out.println("Value is - " + ((a < 5) ? 9.0 : 9)); ? 数据类型的自动转换
}
}
A、 print:Value is -9 B、 print:Value is -5 C、 Compilation error D、 None of these
6、 What will be the result of executing the following code? (3)
public static void main(String args[]) {
char digit = 'a';
for (int i = 0; i < 10; i++) {
switch (digit) {
case 'x': {
int j = 0;
System.out.println(j);
}
default: {
int j = 100;
System.out.println(j);
}
}
}
int i = j;
System.out.println(i);
}
A、 100 will be printed 11 times.
B、 100 will be printed 10 times and then there will be a runtime exception
C、 The code will not compile because the variable i cannot be declared twice within the mani() method.
D、 The code will not compile because the variable j cannot be declared twice within the switch statement.
E、 None of these.
7、 Which of the following collection classes from java.util package are Thread safe? (3)
A、 Vector B、 ArrayList C、 HashMap D、 Hashtable
8、 What will happen when you attempt to compile and run the following code? (3)
class MyThread extends Thread {
public void run() {
System.out.println("MyThread: run()");
}
public void start() {
System.out.println("MyThread: start()");
}
}
class MyRunnable implements Runnable {
public void run() {
System.out.println("MyRunnable: run()");
}
public void start() {
System.out.println("MyRunnable: start()");
}
}
public class MyTest {
public static void main(String args[]) {
MyThread myThread = new MyThread();
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
myThread.start();
thread.start();
}
}
A、 prints: MyThread: start() followed by MyRunnable: run()
B、 prints: MyThread: run() followed by MyRunnable: start()
C、 prints: MyThread: start() followed by MyRunnable: start()
D、 prints: MyThread: run() followed by MyRunnable: run()
E、 compile time error
F、 None of the above
9、 Which of the following will output -4.0?(3)
1、 System.out.println(Math.floor(-4.7));
2、 System.out.println(Math.round(-4.7));
3、 System.out.println(Math.ceil(-4.7));
4、 System.out.println(Math.min(-4.7));
10、 What will happen if you attempt to compile and run the following code?(3)
Integer ten=new Integer(10);
Long nine=new Long (9);
System.out.println(ten + nine);
int i=1;
System.out.println(i + ten);
1、 19 followed by 20
2、 19 followed by 11
3、 Error: Can’t convert java lang Integer
4、 10 followed by 1
问答题
1、 请写出Java中的数据类型划分及默认值。(5)
数据类型分为|:
? 基本数据类型:
|- 数值型:byte、short 、int、long,默认是0
|- 浮点型:float、double,默认是0.0
|- 字符:char,默认是“\n0000”
|- 布尔:boolean,默认是false
? 引用数据类型:默认值是null
|- 数组:
|- 类:
|- 接口:
2、 Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?(5)
? OverLoad:在一个类中出现的,方法名称相同,参数的类型或个数不同,没有权限要求
? Override:在继承类中出现的,方法名称,参数的类型或个数相同,注意访问权限不能更加严格
? OverLoad只是根据参数的类型或个数来确定的,与返回值类型无关。
3、 请详细解释String类的特点?StringBuffer类的特点?并列举出十个String的相关操作方法。(5)
1、 String类特点:
? 一个字符串就是一个String的匿名对象
? 有两种赋值方式,一种是直接赋值,另外一种是采用关键字new完成的,第一种方式性能高,只会开辟一个堆空间,而第二种会开辟两个堆空间
? String的地址比较使用==,内容比较使用equals()
? String的内容一旦声明则不可改变,改变的是其内存地址的指向
2、 StringBuffer:内容可以改变
3、 方法:split()、matches()、replaceAll()、charAt()、getBytes()、substring()、indexof()、toLowerCase()、toUpperCase()、startsWith()、endsWith().
4、 abstract class和interface的区别?(5)
? 抽象类:包含一个抽象方法的类就是抽象类,抽象类要使用abstract关键字声明,抽象类必须有子类,而且通过对象多态性可以直接为父类对象进行实例化,一个抽象类可以包含任意的东西,包括构造方法、普通方法、抽象方法、属性、全局常量等等,可以包含内部接口或抽象类,模板设计
? 接口:由抽象方法和全局常量组成的特殊类称为接口,接口可以被实现,一个类可以同时实现多个接口,但是一个接口只允许继承其他接口,通过接口可以实现多继承的关系,一个接口中可以包含其他的内部接口或内部类。代理、工厂。
5、 请写出异常处理的主要流程。(5)
如果程序中没有任何的异常处理语句,则将交给JVM进行处理,一旦出现了异常之后程序将退出执行
如果程序中存在了异常的处理语句,则出现异常之后,在try中进行捕获,之后与catch中的异常类型进行匹配,如果匹配成功,则可以进行处理
不管如何处理异常,只要是加入了finally关键字,则肯定都要执行此出口。
一旦出现了异常之后,抛出的就是一个异常类的实例化对象。
6、 详细解释Java中垃圾收集的主要流程。(5)
垃圾收集主要有两种形式:手工、自动
自动会不定期进行回收,以释放无用的空间
手工调用的是System类中的gc()方法,此方法实际上调用的是Runtime类中的gc()方法,当一个对象被回收之前将调用类中的finlalize()方法,此方法为 Object类所提供,表示对象回收前的收尾工作。即使出现了异常,也不影响程序的执行,而且此方法抛出的是Throwable,表示可能是异常也可能是错误。
编程题
1、 编写一个Singleton。(5)
class Singleton{
public static Singleton instance = new Singleton() ;
private Singleton(){}
public static Singleton getInstance(){
return instance ;
}
}
Runtime、Class都采用了此类形式。
2、 使用JDBC + Oracle完成一个dept表的查询操作,可以根据关键字显示出全部的查询结果。(10)
import java.sql.* ;
public class JDBC{
public static void main(String args[]) throws Exception {
String sql = "SELECT deptno,dname,loc FROM emp " ;
Class.forName("oracle.jdbc.driver.OracleDriver") ;
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:MLDN","scott","tiger") ;
PreparedStatement pstmt = conn.prepareStatement(sql) ;
ResultSet rs = pstmt.executeQuery() ;
while(rs.next()){
int deptno = rs.getInt(1) ;
String dname = rs.getString(2) ;
String loc = rs.getString(3) ;
System.out.println(dno + " --> " + dname + "," + loc) ;
}
rs.close() ;
pstmt.close() ;
conn.close() ;
}
}
3、 输入一个email地址,之后使用正则表达式验证该email地址是否正确。(5)
public class JDBC{
public static void main(String args[]) throws Exception {
String str = "aa@aa.com" ;
System.out.println(str.matches("\\w+@\\w+\\.\\w+")) ;
}
}
4、 从键盘输入文件的内容和要保存的文件名称,之后根据输入的名称创建文件,并将内容保存到文件之中。(5)
import java.io.* ;
public class JDBC{
public static void main(String args[]) throws Exception {
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)) ;
String fileName = null ;
String content = null ;
System.out.print("请输入文件路径:") ;
fileName = buf.readLine() ; // 接收内容
System.out.print("请输入文件内容:") ;
content = buf.readLine() ;
PrintStream out = new PrintStream(new FileOutputStream(new File(fileName))) ;
out.println(content) ;
out.close() ;
}
}
数据库
1、 显示非销售人员工作名称以及从事同一工作雇员的月工资的总和,并且要满足从事同一工作的雇员的月工资合计大于$5000,输出结果按月工资的合计升序排列。(3)
SELECT job,SUM(sal) sum
FROM emp
WHERE job<>'SALESMAN'
GROUP BY job HAVING sum>5000
ORDER BY sum ;
2、 列出最低薪金大于1500的各种工作及此从事此工作的全部雇员人数。(3)
SELECT job,COUNT(empno)
FROM emp
GROUP BY job HAVING MIN(sal)>1500 ;
3、 列出薪金高于公司平均薪金的所有员工,所在部门,上级领导,公司的工资等级。(3)
SELECT e.empno,e.ename,d.dname,m.ename,s.grade
FROM emp e,dept d,emp m,salgrade s
WHERE sal>(SELECT AVG(sal) FROM emp) AND e.mgr=m.empno AND d.deptno=e.deptno(+) AND e.sal BETWEEN s.losal AND s.hisal ;
4、 列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金、部门名称。(3)
SELECT e.ename,e.sal,d.dname FROM emp e,dept d
WHERE sal > ALL (SELECT sal FROM emp WHERE deptno=30) AND e.deptno=d.deptno;
5、 列出所有部门的详细信息和部门人数。(3)
SELECT d.dname,d.loc,dt.count
FROM dept d,(SELECT deptno,COUNT(*) count FROM emp GROUP BY deptno) dt
WHERE d.deptno=dt.deptno ;
评论
2 楼
chenke
2011-08-02
2. DESCRIBE请求消息处理过程
RTSP服务器收到客户端的DESCRIBE请求后,根据请求URL(rtsp://192.168.0.1/1.mpg),找到对应的流媒体资源,返回响应消息。live555中的ServerMediaSession类用来处理会话中描述,它包含多个(音频或视频)的子会话描述(ServerMediaSubsession)。
RTSP服务器收到客户端的连接请求,建立了RTSPClientSession类,处理单独的客户会话。在建立RTSPClientSession的过程中,将新建立的socket句柄(clientSocket)和RTSP请求处理函数句柄RTSPClientSession::incomingRequestHandler传给任务调度器,由任务调度器对两者进行一对一关联。
当客户端发出RTSP请求后,服务器主循环中的select调用返回,根据socket句柄找到对应的incomingRequestHandler,开始消息处理。先进行消息的解析,如果发现请求是DESCRIBE则进入handleCmd_DESCRIBE函数。根据客户端请求URL的后缀(如1.mpg),调用成员函数DynamicRTSPServer::lookupServerMediaSession查找对应的流媒体信息ServerMediaSession。如果ServerMediaSession不存在,但是本地存在1.mpg文件,则创建一个新的ServerMediaSession。在创建ServerMediaSession过程中,根据文件后缀.mpg,创建媒体MPEG-1or2的解复用器(MPEG1or2FileServerDemux)。再由MPEG1or2FileServerDemux创建一个子会话描述MPEG1or2DemuxedServerMediaSubsession。最后由ServerMediaSession完成组装响应消息中的SDP信息(SDP组装过程见下面的描述),然后将响应消息发给客户端,完成一次消息交互。
SDP消息组装过程:
ServerMediaSession负责产生会话公共描述信息,子会话描述由MPEG1or2DemuxedServerMediaSubsession产生。 MPEG1or2DemuxedServerMediaSubsession在其父类成员函数OnDemandServerMediaSubsession::sdpLines()中生成会话描述信息。在sdpLines()实现里面,创建一个虚构(dummy)的FramedSource(具体实现类为MPEG1or2AudioStreamFramer和MPEG1or2VideoStreamFramer)和RTPSink(具体实现类为MPEG1or2AudioRTPSink和MPEG1or2VideoRTPSink),最后调用setSDPLinesFromRTPSink(...)成员函数生成子会话描述。
RTSP服务器收到客户端的DESCRIBE请求后,根据请求URL(rtsp://192.168.0.1/1.mpg),找到对应的流媒体资源,返回响应消息。live555中的ServerMediaSession类用来处理会话中描述,它包含多个(音频或视频)的子会话描述(ServerMediaSubsession)。
RTSP服务器收到客户端的连接请求,建立了RTSPClientSession类,处理单独的客户会话。在建立RTSPClientSession的过程中,将新建立的socket句柄(clientSocket)和RTSP请求处理函数句柄RTSPClientSession::incomingRequestHandler传给任务调度器,由任务调度器对两者进行一对一关联。
当客户端发出RTSP请求后,服务器主循环中的select调用返回,根据socket句柄找到对应的incomingRequestHandler,开始消息处理。先进行消息的解析,如果发现请求是DESCRIBE则进入handleCmd_DESCRIBE函数。根据客户端请求URL的后缀(如1.mpg),调用成员函数DynamicRTSPServer::lookupServerMediaSession查找对应的流媒体信息ServerMediaSession。如果ServerMediaSession不存在,但是本地存在1.mpg文件,则创建一个新的ServerMediaSession。在创建ServerMediaSession过程中,根据文件后缀.mpg,创建媒体MPEG-1or2的解复用器(MPEG1or2FileServerDemux)。再由MPEG1or2FileServerDemux创建一个子会话描述MPEG1or2DemuxedServerMediaSubsession。最后由ServerMediaSession完成组装响应消息中的SDP信息(SDP组装过程见下面的描述),然后将响应消息发给客户端,完成一次消息交互。
SDP消息组装过程:
ServerMediaSession负责产生会话公共描述信息,子会话描述由MPEG1or2DemuxedServerMediaSubsession产生。 MPEG1or2DemuxedServerMediaSubsession在其父类成员函数OnDemandServerMediaSubsession::sdpLines()中生成会话描述信息。在sdpLines()实现里面,创建一个虚构(dummy)的FramedSource(具体实现类为MPEG1or2AudioStreamFramer和MPEG1or2VideoStreamFramer)和RTPSink(具体实现类为MPEG1or2AudioRTPSink和MPEG1or2VideoRTPSink),最后调用setSDPLinesFromRTPSink(...)成员函数生成子会话描述。
1 楼
chenke
2011-08-02
RTSP服务器实例live555源代码分析2009-04-01 17:431. RTSP连接的建立过程
RTSPServer类用于构建一个RTSP服务器,该类同时在其内部定义了一个RTSPClientSession类,用于处理单独的客户会话。
首先创建RTSP服务器(具体实现类是DynamicRTSPServer),在创建过程中,先建立Socket(ourSocket)在TCP的554端口进行监听,然后把连接处理函数句柄(RTSPServer::incomingConnectionHandler)和socket句柄传给任务调度器(taskScheduler)。
任务调度器把socket句柄放入后面select调用中用到的socket句柄集(fReadSet)中,同时将socket句柄和incomingConnectionHandler句柄关联起来。 接着,主程序开始进入任务调度器的主循环(doEventLoop),在主循环中调用系统函数select阻塞,等待网络连接。
当RTSP客户端输入(rtsp://192.168.0.1/1.mpg)连接服务器时,select返回对应的scoket,进而根据前面保存的对应关系,可找到对应处理函数句柄,这里就是前面提到的incomingConnectionHandler了。在incomingConnectionHandler中创建了RTSPClientSession,开始对这个客户端的会话进行处理。
RTSPServer类用于构建一个RTSP服务器,该类同时在其内部定义了一个RTSPClientSession类,用于处理单独的客户会话。
首先创建RTSP服务器(具体实现类是DynamicRTSPServer),在创建过程中,先建立Socket(ourSocket)在TCP的554端口进行监听,然后把连接处理函数句柄(RTSPServer::incomingConnectionHandler)和socket句柄传给任务调度器(taskScheduler)。
任务调度器把socket句柄放入后面select调用中用到的socket句柄集(fReadSet)中,同时将socket句柄和incomingConnectionHandler句柄关联起来。 接着,主程序开始进入任务调度器的主循环(doEventLoop),在主循环中调用系统函数select阻塞,等待网络连接。
当RTSP客户端输入(rtsp://192.168.0.1/1.mpg)连接服务器时,select返回对应的scoket,进而根据前面保存的对应关系,可找到对应处理函数句柄,这里就是前面提到的incomingConnectionHandler了。在incomingConnectionHandler中创建了RTSPClientSession,开始对这个客户端的会话进行处理。
相关推荐
oarcle java 面试题 答案 Java面试 Oracle面试
对于跳槽换工作,以及学习有很大的帮助,其中有Java基础,ssh面试,spring,oracle数据库,ajax等经典案例
最全的j2EE面试题,题量大、经典,是我面试的整理试题 ...10、Oracle面试题 11、Oracle企业面试题集锦 12、Spring面试题 13、SSH面试题 14、Strut+Spring+Hibernate面试题 15、张孝祥整理Java就业面试题大全
面试Oracle相关职位时,这些知识点通常会被问到,而对Java开发人员来说,了解这些不仅有助于解决实际问题,也是展现专业能力的重要标志。通过不断学习和实践,可以提升在数据库领域的专业知识,为职业发展打下坚实的...
Java面试题及答案整理主要涵盖了Java核心技术、面向对象设计、XML、SQL、JDBC、Web技术、EJB、Spring框架、数据结构与算法、计算机基础知识、C++以及Weblogic和其他附加部分。以下是对这些知识点的详细说明: 1. **...
### JAVA+ORACLE面试题汇总知识点解析 #### 1. Overload、Override与Overloaded的区别是什么? - **Overload(重载)**:在同一个类中可以定义多个方法,只要它们的方法名相同而参数列表不同即可。参数列表的不同...
以下是对"Java+数据库面试题.zip"中可能包含的重要知识点的详细说明: 1. **Java基础**: - **面向对象编程**:包括类、对象、封装、继承、多态等核心概念。 - **异常处理**:理解如何使用try-catch-finally语句...
"Java 面试题及其答案.doc"和"JAVA面试题.doc"提供了大量的面试题及解答,涵盖了从基础知识到高级特性的广泛范围,包括反射、注解、设计模式、Spring框架、数据库操作等。通过这些题目,求职者可以自我评估,了解...
由于提供的【部分内容】信息量非常庞大且部分内容重复、混乱,难以从中准确提取出完整的知识点。但从这些内容片段中,...在实际的面试中,这些问题将帮助面试官评估候选人是否具备带领JAVA项目成功的必要知识和经验。
"Java和Oracle面试题笔试题" 本资源摘要信息涵盖了 Java 和 Oracle 相关的面试题笔试题,涵盖了 SQL 基础、Oracle 数据库操作、数据分析等多个方面的知识点。 SQL 基础 1. 使用 SQL 语句完成输出特定值的问题,...
"2017java面试题"这个压缩包文件提供了丰富的资源,帮助Java开发者准备面试,深化对Java开发的理解。 文档"Java面试宝典2017.doc"可能包含了以下核心Java知识点: 1. **基础语法**:这包括变量、数据类型、运算符...
Java 和 Oracle 面试题笔试题 在本文中,我们将对 Java 和 Oracle 面试题笔试题进行详细的分析和总结。 1. SQL 基础 在第一个问题中,要求使用 SQL 语句完成输出‘C#’、‘C++’、‘Java’、‘Delphi’和‘PL/SQL...
Java SQL Oracle 笔试面试题集锦涵盖了众多技术领域,是评估和提升开发者技能的重要资源。这份资料集合了Google、华为、中软等知名企业的面试题目,为求职者提供了宝贵的准备素材。以下将针对Java、SQL和Oracle以及...
本文将围绕“2020+java开发试题(A)_java面试题_”这一主题,深入解析Java面试中的常见知识点,帮助准备面试的朋友们提升自己的技能。 1. **基础语法**:面试时常会考察Java的基础语法,如数据类型(基本类型与...
Java和Oracle面试题笔试题-.pdf 本资源摘要信息涵盖了Java和 Oracle 相关的面试题笔试题,涵盖了SQL基础、Oracle数据库操作、查询语句等多方面的知识点。 知识点1:SQL基础 * 使用SQL语句完成‘A’输出‘C#’;...
面试题包含了不同技术层面的面试问题,同时也能对一些没有面试开发经验的小白给予不可估量的包装, 让你的薪水绝对翻倍, 本人亲试有效.Java面试题84集、java面试专属及面试必问课程,所有的面试题有视屏讲解, 解答方案....
Oracle常见面试题及答案 Oracle 是一种关系数据库管理系统,广泛应用于各种行业。以下是 Oracle 相关的面试题及答案,涵盖了 Oracle 的基础知识、存储过程、索引、约束、查询等方面。 1. 如何创建一个邮件系统,...
数据库面试题(SQL+ORACLE)@.pdf 0.6MB 史上最全阿里巴巴 JAVA 面试题总览@.pdf 0.6MB 史上最全 69 道 Spring 面试题和答案@.docx 0.5MB 面试专属解压密码.txt 0.0MB 面试专属.rar 1.6GB 经典sql面试题及答案@....