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;

Line 3 and Line 4

Line 1 only

Line 3 only

Line 4 only

解析:高位向低位直接转化会报错,byte、char、short参与运算都会变成int类型

正确答案:A

3.下面哪一项不是加载驱动程序的方法?

通过DriverManager.getConnection方法加载

调用方法 Class.forName

通过添加系统的jdbc.drivers属性

通过registerDriver方法注册

解析:

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中,下列说法错误的有( )

数组是一种对象

数组属于一种原生类

int number = []{31,23,33,43,35,63};

数组的大小可以任意改变

解析:

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));

true,false

true,true

false,true

false,false

对于不同的环境结果不同

程序无法执行

解析:自动装箱与拆箱

正确答案 B

7.下列说法正确的有( )

环境变量可在编译source code时指定

在编译程序时,所能指定的环境变量不包括class path

javac一次可同时编译数个Java源文件

javac.exe能指定编译结果要置于哪个目录(directory)

解析:

a选项-d即可设置系统属性

c选项一次编译多个java文件用javac *.java. 即可编译当前目录下的所有java文件

d选项-s指定存放生成的源文件的位置

正确答案 ACD

8.下面有关forward和redirect的描述,正确的是() ?

forward是服务器将控制权转交给另外一个内部服务器对象,由新的对象来全权负责响应用户的请求

执行forward时,浏览器不知道服务器发送的内容是从何处来,浏览器地址栏中还是原来的地址

执行redirect时,服务器端告诉浏览器重新去请求地址

forward是内部重定向,redirect是外部重定向

redirect默认将产生301 Permanently moved的HTTP响应

解析:

1.从地址栏显示来说

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.

redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.

2.从数据共享来说

forward:转发页面和转发到的页面可以共享request里面的数据.

redirect:不能共享数据.

3.从运用地方来说

forward:一般用于用户登陆的时候,根据角色转发到相应的模块.

redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.

4.从效率来说

forward:高.

redirect:低.

正确答案 BCD

Java堆描述正确的是_Java面试题 每日一练(4.9)相关推荐

  1. java类加载器正确的是_Java面试题:面向对象,类加载器,JDBC, Spring 基础概念

    1. 为什么说Java是一门平台无关语言? 平台无关实际的含义是"一次编写到处运行".Java 能够做到是因为它的字节码(byte code)可以运行在任何操作系统上,与底层系统无 ...

  2. 以下对java中的接口的描述错误的是_Java笔试题

    所有内容都是在网上查找的 1.下面哪些是Thread类的方法? A.Start() B.run()方法 C.exit()方法 D. getPriority()方法 解析:exit()方法 是 Syst ...

  3. java中必检异常有哪些_Java面试题经典面试题220道(附答案)

    Java基础: 1.JDK 和 JRE 有什么区别? 2. == 和 equals 的区别是什么?== 解读 3. 两个对象的 hashCode() 相同, 那么 equals() 也一定为 true ...

  4. java堆和栈的区别_JAVA中堆和栈的区别

    在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配. 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配 ...

  5. 关于java结构中描述正确的是_下列关于Java中类的构造方法的描述,正确的是()...

    A:构造函数没有返回值,也不能用void修饰.如果不小心给构造函数前面添加了返回值类型,那么这将使这个构造函数变成一个普通的方法,在运行时将产生找不到构造方法的错误. C:super(参数):调用父类 ...

  6. java正确的代码_对文件名为Test.java的java代码描述正确的是()

    选C 父类没有无参的构造函数,所以子类需要在自己的构造函数中显式调用父类的构造函数, 添加 super("nm"); 否则报错: Implicit super constructo ...

  7. Java面试社保系统负责模块_java面试题与答案:SAPSD面试问题、回答与注解-问题5-10...

    [www.gywlwh.com--百科大全] Question 5: Scale price Condition I have a fixed amount discount condition ty ...

  8. Java面试题记不了怎么办_java面试题怎么记?java面试要注意什么?

    学习完java之后,大家肯定是要出去找java相关的工作的,并且找工作都要面试,为了能够在面试中显示出自己的能力,很多小伙伴都想知道java面试题怎么记?那么接下来,我们就来给大家讲解一下这方面的内容 ...

  9. java set删除第一个元素_Java面试题10(如何取到set集合的第一个元素)

    1.如何取到set集合的第一个元素. public static voidmain(String[] args) { Set set= newHashSet(); set.add("xixi ...

  10. java的死锁是什么意思_Java面试题:什么是死锁?如何手写一个死锁(Dead Lock)...

    要想实现一个死锁,首先要明白什么是死锁,我们看一下死锁的定义: 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去.此时称 ...

最新文章

  1. 在网页中动态的生成一个gif图片
  2. ELK 搭建 TB 级海量日志监控系统,这个太强了!
  3. CCNP交换实验(3) -- STP
  4. 反置页表(1__操作系统)
  5. 计算机视觉:基于YOLO-V3林业病虫害目标检测
  6. 基于 Apache Flink + Hologres 的实时推荐系统架构解析
  7. 安卓案例:利用SQLiteOpenHelper操作数据库及表
  8. array_keys_PHP array_keys()函数与示例
  9. ThinkPHP6项目基操(20.实战部分 数据库操作返回值总结)
  10. Swift 枚举简单使用
  11. string转成对象_非常简单的string驻留池,你对它真的了解吗
  12. mysql group日期_MySQL GROUP BY使用datetime时的日期?
  13. Javascript脚本之清除浏览器历史数据
  14. java朴素贝叶斯_java实现朴素贝叶斯算法
  15. 我的在校项目:校园类app
  16. 高云FPGA系列教程(2):FPGA点灯工程创建、程序下载和固化
  17. 重试利器之Guava Retrying
  18. 【Unity】Unity下载器下载不下IOS/Android等模块的解决办法
  19. Linux使用本地光盘制作yum源
  20. Installing Oracle11g R2 RAC on RedHat Linux AS 5.5

热门文章

  1. 力扣-274 H 指数
  2. Vue项目部署到服务器上路由无法访问的问题
  3. js 正则表达式详细基础教程
  4. HTML—讲解分割线标签、文字居中、背景图片充满全图
  5. 2017-2018-1 20155320 嵌入式C语言——时钟
  6. vue.js 调用iOS原生方法,JavaScriptCore
  7. 移动 web 1px 边框解决方案
  8. .net在当前日期的基础上加一天
  9. MySQL数据库(七)
  10. IPv6 gre隧道、路由协议综合实验(华为设备)