1.下列Java代码中的变量a、b、c分别在内存的____存储区存放。
class` `A {
``private` `String a = “aa”;
``public` `boolean methodB() {
``String b = “bb”;
``final String c = “cc”;
``}
}
解析:
当一个方法执行时,每个方法都会建立自己的内存栈,在这个方法内定义的变量将会逐个放入这块栈内存里,随着方法的执行结束,这个方法的内存栈也将自然销毁。因此,所有在方法中定义的局部变量都是放在栈内存中的;在程序中创建一一个对象时,这个对象将被保存到运行时数据区中,以便反复利用(因为对象的创建成本通常较大),这个运行时数据区就是堆内存。堆内存中的对象不会随方法的结束而销毁,即使方法结束后, 这个对象还可能被另一个引用变量所引用(在方法的参数传递时很常见),则这个对象依然不会被销毁。只有当一个对象没有任何引用变量引用它时,系统的垃圾回收器才会在合适的时候回收它。
正确答案:C
2.Which lines of the following will produce an error?
byte a1 = 2, a2 = 4, a3;
short s = 16;
a2 = s;
a3 = a1 * a2;
解析:高位向低位直接转化会报错,byte、char、short参与运算都会变成int类型
正确答案:A
3.下面哪一项不是加载驱动程序的方法?
解析:
DriverManager.getConnection方法返回一个Connection对象,这是加载驱动之后才能进行的
加载驱动方法示例:
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
System.setProperty(“jdbc.drivers”, “com.mysql.jdbc.Driver”);
正确答案:A
4.在Java线程状态转换时,下列转换不可能发生的有()?
正确答案:AC
5.在Java中,下列说法错误的有( )
解析:
A:数组是对象,int float char这些基本类型不是对象。关于如何判断基本类型和对象,参考下面的:
行为:
基本类型只是一个值,没有任何行为
对象类型有自己的行为
内存分配:
基本类型在栈内分配
对象在堆内分配
对象引用保存在栈内
引用与值:
基本类型是值类型,仅表示一个值,保存在栈内
引用类型分两部分,对象引用保存在栈内,对象保存在堆内,
访问变量,是使用的引用找对象
B:不是,属于引用数据类型,因为声明数组需要分配堆栈空间
D:大小一旦指定,不能改变
正确答案 BCD
6.在jdk1.5之后,下列 java 程序输出结果为______。
int` `i=``0``;
Integer j = ``new` `Integer(``0``);
System.out.println(i==j);
System.out.println(j.equals(i));
解析:自动装箱与拆箱
正确答案 B
7.下列说法正确的有( )
解析:
a选项-d即可设置系统属性
c选项一次编译多个java文件用javac *.java. 即可编译当前目录下的所有java文件
d选项-s指定存放生成的源文件的位置
正确答案 ACD
8.下面有关forward和redirect的描述,正确的是() ?
解析:
1.从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.
2.从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
3.从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
4.从效率来说
forward:高.
redirect:低.
正确答案 BCD