智一面

1、以下程序会输出什么

int a =100,b=50,c=a---b,d=a---b;
 System.out.println(a);
 System.out.println(b);
 System.out.println(c);
 System.out.println(d);
 
正确答案: C 你的答案: C (错误)
100 48 48 49
100 49 48 52
98 50 50 49
98 50 50 48

题解:
自增自减运算符优先级大于加减运算符的优先级
c=a---b,先执行a-b操作,得到c=50,再执行a减1操作,得到a=99,b未改变。
d=a---b,先执行a-b操作,得到d=49,再执行a减1操作,得到a=98,b未改变。

2、以下对选择语句描述错误的是()
正确答案: A 你的答案: A (正确)
根据某一条件重复执行一部分代码直到满足终止条件为止
可以根据条件控制程序流程,改变程序执行的顺序
选择语句可以嵌套使用
当条件满足时就会执行相应的语句

题解:
A答案说的是循环语句
java的4类流程控制语句
循环语句:while,for,do while
选择语句(分支语句):if,switch
跳转语句:break,continue,break,label
异常处理语句:try catch finally,throw

3、关于Java以下描述正确的有( )
正确答案: A 你的答案: A (正确)
native关键字表名修饰的方法是由其它非Java语言编写的
能够出现在import语句前的只有注释语句
接口中定义的方法只能是public
构造方法只能被修饰为public或者default

题解:
A:native是由调用本地方法库(如操作系统底层函数),可以由C,C++实现,A正确
B:import是用于导包语句,其前面可以出现package,用来声明包的,B错误
C:接口方法的修饰符可以是:public,abstract,default,static(后两者需要有{}),C正确
D:构造方法可以用private,protected,default,private,D错误

4、由3 个“1”和 5 个“0”组成的 8 位二进制补码,能表示的最小整数()
正确答案: B 你的答案: B (正确)
-126
-125
-32
-3

题解:
既然求最小整数,那肯定先想到负数,则最高位(符号位)一定为1,原码中肯定是1所在的位数越高,值越小,而补码是由原码取反加1得到的,则在补码中1所在的位数一定要越低,即补码为1000 0011;由补码求得原码:1111 1101=-(64+32+16+8+4+1)=-125

5、看以下代码:
文件名称:forward.jsp

<html>  
     <head><title> 跳转  </title> </head> 
     <body>  
         <jsp:forward page="index.htm"/>     
     </body>
 </html> 
1
2
3
4
5
6
如果运行以上jsp文件,地址栏的内容为
正确答案: A 你的答案: A (正确)
http://127.0.0.1:8080/myjsp/forward.jsp
http://127.0.0.1:8080/myjsp/index.jsp
http://127.0.0.1:8080/myjsp/index.htm
http://127.0.0.1:8080/myjsp/forward.htm

6、下列哪个选项是合法的标识符?()
正确答案: B D 你的答案: B D (正确)
123
_name
class
first

题解:
标识符:
1. 只能由数字,字母,符号(有且仅有_和$两个)组成。
2. 数字不能作为标识符的开头。
3. 不能和关键字,保留字,显式常量一样。关键字都是小写的。
4. null,true,false都不是关键字,属于显式常量。goto,const都是保留关键字。

7、以下表达式中,正确的是()
正确答案: C D 你的答案: C D (正确)
byte i=128
boolean i=null
long i=0xfffL
double i=0.9239d

题解:
A byte ,1字节,值域-128至127
B boolean并非包装对象Boolean,不能赋值为null

8、jdk1.8版本之前的前提下,接口和抽象类描述正确的有( )
正确答案: B C 你的答案: B C (正确)
抽象类没有构造函数
接口没有构造函数
抽象类不允许多继承
接口中的方法可以有方法体

题解:
抽象类可以有构造函数,只是不能实例化
jdk1.8后接口中用static或default修饰的方法可以有方法体

9、以下可以正确获取结果集的有
正确答案: A D 你的答案: A D (正确)
A:Statement sta=con.createStatement();
ResultSet rst=sta.executeQuery(“select * from book”);
B:Statement sta=con.createStatement(“select * from book”); ResultSet rst=sta.executeQuery();
C:PreparedStatement pst=con.prepareStatement();
ResultSet rst=pst.executeQuery(“select * from book”);
D:PreparedStatement pst=con.prepareStatement(“select * from book”);
ResultSet rst=pst.executeQuery();

题解:
A,D是正确的;创建Statement是不传参的,PreparedStatement是需要传入sql语句

10、下列说法正确的是()?
正确答案: A B 你的答案: A B (正确)
A:对于局部内部类,只有在方法的局部变量被标记为final或局部变量是effctively final的,内部类才能使用它们
B:成员内部类位于外部类内部,可以直接调用外部类的所有方法(静态方法和非静态方法)
C:由于匿名内部类只能用在方法内部,所以匿名内部类的用法与局部内部类是一致的
D:静态内部类可以直接访问外部类的非静态成员

题解:
A、对。
B、对。
C、错。匿名内部类用法与局部内部类不一致,首先从定义上就不一样,匿名类用在任何允许存在表达式的地方,而局部内部类用于在任何允许出现局部变量的地方出现。
还有更重要的是匿名类只能使用一次,而局部类则可以在自己的定义域内多次使用。
D、错。静态内部类不能直接访问外部类的非静态成员,但可以通过new外部类().成员的方式访问