对于B,因为object是String的父类,所以不能这样使用,不能把父类对象赋值给子类,只能是Object x = new String();
对于C,因为String是Object的子类,所以可以将子类赋值给父类。
对于D,因为在声明变量时不需要指定容量,例如int a[] = new int[11];这样是正确的,但是像D选项这样是错误的
选C。该题考查的是数据类型转换以及转换原则和取值范围。 A选项属于赋值和算术运算的转换:byte取值范围-128~127,所以byte y = 11正确;byte x = y +y基本就是先转换为高位数据类型,再参加运算,结果也是最高位的数据类型, byte short char运算会转换为int,所以错误。 B选项是多态的条件应用:1.要有继承;2.要有重写;3.父类引用指向子类对象。Object是一切类的基类,正确的写法应该是:Object x=new String()。所以B选项错误。 D选项声明数组变量的错误,正确的应该是int a []或者int[] a。所以D错误。
考点3:
This调用语句必须是构造函数中的第一个可执行语句。
A 正确
B 错误
显示答案/隐藏答案正确答案: B
this()才必须是构造函数中的第一个可执行语句,用this调用语句并不需要。
考点4:
下列哪些语句关于内存回收的说明是正确的? ( )
A 程序员必须创建一个线程来释放内存
B 内存回收程序负责释放无用内存
C 内存回收程序允许程序员直接释放内存
D 内存回收程序可以在指定的时间释放内存对象
显示答案/隐藏答案正确答案: B
A : JVM会自己创建垃圾回收线程; B :内存回收线程的作用,正确; C :程序员无法释放内存,程序员最多是使用System.gc()和Runtime.getRuntime().gc()通知系统释放内存; D:系统释放内存时间是不确定的,会根据当前程序的内存使用情况而定。
考点5:
下列语句中,正确的是
A float x=0.0
B boolean b=3>5
C char c=”A”
D double =3.14
显示答案/隐藏答案正确答案: B
在java里面 float类型数据类型初始化时必须使用后缀f 因为java默认浮点型是double 用后缀f表示为float类型;
A应为:float x = 0.0f;
布尔值可以是一个表达式的值,但必须是一个true或者false值
B正确
char只能是一个字符 而不是一个字符串
C应为:char c='A';
D没变量名...没变量名...没变量名...重要的事情说三遍
考点6:
1 2 3 4 5 6 7 8 9 10
publicclassCharToString { publicstaticvoidmain(String[] args) { charmyChar='g'; StringmyStr= Character.toString(myChar); System.out.println("String is: "+myStr); myStr = String.valueOf(myChar); System.out.println("String is: "+myStr); } }
此代码片段输出正确的值是()
A
1 2
String is: g String is: g
B
1 2
String is: 103 String is: g
C
1 2
String is: g String is: 103
D
1 2
String is: 103 String is: 103
显示答案/隐藏答案正确答案: A
1 2 3 4 5 6 7 8
publicstatic String toString(char c) { return String.valueOf(c); }
PreparedStatement是预编译的,使用PreparedStatement有几个好处 a. 在执行可变参数的一条SQL时,PreparedStatement比Statement的效率高,因为DBMS预编译一条SQL当然会比多次编译一条SQL的效率要高。 b. 安全性好,有效防止Sql注入等问题。 c. 对于多次重复执行的语句,使用PreparedStament效率会更高一点,并且在这种情况下也比较适合使用batch; d. 代码的可读性和可维护性。
SELECT Adep,SUM(Score) FROM ATHLETE,SCORE WHERE ATHLETE.Ano=SCORE.Ano GROUPBY Adep HAVINGSUM(Score) >=ANY (SELECTSUM(Score) FROM ATHLETE,SCORE WHERE ATHLETE.Ano=SCORE.Ano GROUPBY Adep)
B
1 2 3
SELECT Adep,SUM(Score) FROM ATHLETE,SCORE WHERE ATHLETE.Ano=SCORE.Ano GROUPBY Adep HAVINGSUM(Score) >=SOME (SELECTSUM(Score) FROM ATHLETE,SCORE WHERE ATHLETE.Ano=SCORE.Ano GROUPBY Adep)
C
1 2 3
SELECT Adep,SUM(Score) FROM ATHLETE,SCORE WHERE ATHLETE.Ano=SCORE.Ano GROUPBY Adep HAVINGSUM(Score) IN (SELECTSUM(Score) FROM ATHLETE,SCORE WHERE ATHLETE.Ano=SCORE.Ano GROUPBY Adep)
D
1 2 3
SELECT Adep,SUM(Score) FROM ATHLETE,SCORE WHERE ATHLETE.Ano=SCORE.Ano GROUPBY Adep HAVINGSUM(Score) >=ALL (SELECTSUM(Score) FROM ATHLETE,SCORE WHERE ATHLETE.Ano=SCORE.Ano GROUPBY Adep)
A.SELECT sum(score) / count(*) FROM score WHERE cno = 2; B.SELECT sum(score) / count(id) FROM score WHERE cno = 2; C.SELECT sum(score) / count(sno) FROM score WHERE cno = 2; D.SELECT sum(score) / count(score) FROM score WHERE cno = 2; E.SELECT sum(score) / count(1) FROM score WHERE cno = 2; F.SELECT avg(score) FROM score WHERE cno = 2;
B SELECT S# FROM SC GROUP BY S# HAVING COUNT(*)> 3
C SELECT S# FROM SC ORDER BY S# WHERE COUNT(*)> 3
D SELECT S# FROM SC ORDER BY S# HAVING COUNT(*)> 3
显示答案/隐藏答案正确答案: B
count(*)计算了有多少行,由于group by学号,则count(*)计算了每个学号有多少行
order by排序
1.order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。
group by必须搭配聚合函数使用
2.group by 从英文里理解就是分组。必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段。 注意:聚合函数是—sum()、count()、avg()等都是“聚合函数”
having子句
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。 HAVING 子句可以让我们筛选分组后的各组数据。 SQL HAVING语法如下:
1 2 3 4 5
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUPBY column_name HAVING aggregate_function(column_name) operator value;
SELECT Adep,SUM(Score) FROM ATHLETE,SCORE WHERE ATHLETE.Ano=SCORE.Ano GROUPBY Adep HAVINGSUM(Score)>=ANY (SELECTSUM(Score) FROM ATHLETE,SCORE WHERE ATHLETE.Ano=SCORE.Ano GROUPBY Adep);
B
1 2 3
SELECT Adep,SUM(Score) FROM ATHLETE,SCORE WHERE ATHLETE.Ano=SCORE.Ano GROUPBY Adep HAVINGSUM(Score)>=SOME (SELECTSUM(Score) FROM ATHLETE,SCORE WHERE ATHLETE.Ano=SCORE.Ano GROUPBY Adep);
C
1 2
SELECT Adep,SUM(Score) FROM ATHLETE,SCORE WHERE ATHLETE.Ano=SCORE.Ano GROUPBY Adep HAVINGSUM(Score) IN (SELECTSUM(Score) FROM ATHLETE,SCORE WHERE ATHLETE.Ano=SCORE.Ano GROUPBY Adep);
D
1 2
SELECT Adep,SUM(Score) FROM ATHLETE,SCORE WHERE ATHLETE.Ano=SCORE.Ano GROUPBY Adep HAVINGSUM(Score)>=ALL (SELECTSUM(Score) FROM ATHLETE,SCORE WHERE ATHLETE.Ano=SCORE.Ano GROUPBY Adep);
A 显示在10和30部门工作并且工资大于5500元的雇员的姓名和工资,列标题显示为Employee和Monthly Salary 语句:SELECT ENAME EMPLOYEE ,SAL “MONTHLY SALARY” FROM EMP WHERE DEPTNO IN(10,30)AND SAL>5500;
B 显示受雇时间在2010年1月1日和2012年12月31日之间的雇员的姓名、工资、及受雇时间,并以受雇时间升序排列。 语句:SELECT ENAME,SAL,HIREDATE FROM EMP WHERE HIREDATE BETWEEN ‘2010-01-01’ AND ‘2012-12-31’ ORDER BY HIREDATE;
C 显示奖金比工资多10%以上的雇员的姓名、工资及奖金。 语句:SELECT ENAME,SAL ,COMM FROM EMP WHERE COMM>SAL*1.1;
D 查询没有奖金且工资低于6500并工作岗位是经理、普通员工、销售员的所有员工信息。 语句:SELECT * FROM EMP WHERE SAL<6500 AND COMM IS NULL AND JOB IN (‘经理’,‘普通员工’,‘销售员’);