java基础10题

1.`下列代码中的错误原因是()

(1) public class Test

(2) {

(3) public static void main(String [] args)

(4) {

(5) int i;

(6) i+=1;

(7) }
(8) }
`
A.非法的表达式 i+=1
B.找不到符号i
C.类不应为public
D.尚未初始化变量i
2.下面有关JVM内存,说法错误的是?
A.程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的
B.虚拟机栈描述的是Java方法执行的内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的
C.方法区用于存储JVM加载的类信息、常量、静态变量、以及编译器编译后的代码等数据,是线程隔离的
D.原则上讲,所有的对象都在堆区上分配内存,是线程之间共享的
3.下面有关servlet和cgi的描述,说法错误的是?
A.servlet处于服务器进程中,它通过多线程方式运行其service方法
B.CGI对每个请求都产生新的进程,服务完成后就销毁
C.servlet在易用性上强于cgi,它提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等
D.cgi在移植性上高于servlet,几乎所有的主流服务器都直接或通过插件支持cgi
4.下面哪些类实现或继承了 Collection 接口?
A.HashMap
B.ArrayList
C.Vector
D.Iterator
5.实现或继承了Collection接口的是()
A.Map
B.List
C.Vector
D.Iterator
E.Set
6.以下哪项不是java基础类型()
A.int
B.boolean
C.String
D.float
7.下列叙述中,错误的是( )
A.File类能够存储文件属性
B.File类能够读写文件
C.File类能够建立文件
D.File类能够获取文件目录信息
8.已知x >= y and y >= z 为真,那么x > z or y = z 值为
A.真
B.假
C.无法确定
D.x y z同为正数时为真
9.已知String a=“a”,String b=“b”,String c=a+b,String d=new String(“ab”) 以下操作结果为true的是
A.(a+b).equals©
B.a+b==c
C.c == d
D,c.equals(d)
10.
如下哪些是 java 中有效的关键字()
A.native
B.NULL
C.false
D.this

(1)D
局部变量没有默认值
(2)C
方法区在JVM中也是一个非常重要的区域,它与堆一样,是被 线程共享 的区域。 在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。
(3)选择D,servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
(4)正确答案: B C
Java集合框架主要由Collection和Map两个根接口及其子接口、实现类组成。 collection 的子接口包括List,set,queue。而Map包括三个实现类HashMap,HashTable,LinkeHashMap
(5)答案:BCE
A,Map接口未实现Collection接口
B,List接口的定义为
public interface Listextends Collection
C,Vector定义为
public class Vectorextends AbstractListimplements List, RandomAccess, Cloneable, Serializable
Vector实现了List接口自然实现了Collection接口
D,Iterator接口未实现Collection接口
E,
public interface Setextends Collection
Set接口继承自Collection接口
(6)Java基本数据类型共有八大类,这八大数据类型又可分为四小类,分别是整数类型(byte/short/int/long)、浮点类型(float、double)、字符类型(char)和布尔类型(boolean),其中并不包括String。
(7)B
(8)答案应该是C
条件可以简单分析为数学不等式 x>=y>=z,那么x>z不一定为true
当x>z为true,后面的条件忽略,结果为真;
当x == z,x>z为fslae,继续判断后一个条件
如果z==0,则y=z为false,结果为假;
如果z!=0,则y=z为true,结果为真;
所以,最后的结果是不确定的。
(9)A

1.==equals():
(1)==” 用于比较基本数据类型时比较的是值,用于比较引用类型时比较的是引用指向的地址。
(2)Object 中的equals() 与 “==” 的作用相同,但String类重写了equals()方法,比较的是对象中的内容。
    
public boolean equals(Object anObject) {  if (this == anObject) {
      return true;    } else { if (anObject instanceof String) {
                String aString = (String)anObject;
       if (this.coder() == aString.coder()) { return this.isLatin1() ? StringLatin1.equals(this.value, aString.value) : StringUTF16.equals(this.value, aString.value); 
       }
        } return false;  }
}

2.String对象的两种创建方式:
(1)第一种方式: String str1 = "aaa";  是在常量池中获取对象("aaa" 属于字符串字面量,因此编译时期会在常量池中创建一个字符串对象,如果常量池中已经存在该字符串对象则直接引用)
(2)第二种方式: String str2 = new String("aaa") ; 一共会创建两个字符串对象一个在堆中,一个在常量池中(前提是常量池中还没有 "aaa" 象)。
        System.out.println(str1==str2);//false

3.String类型的常量池比较特殊。它的主要使用方法有两种:
(1)直接使用双引号声明出来的String对象会直接存储在常量池中。
(2)如果不是用双引号声明的String对象,可以使用 String 提供的 intern 方法。 String.intern() 是一个 Native 方法,它的作用是: 如果运行时常量池中已经包含一个等于此 String 对象内容的字符串,则返回常量池中该字符串的引用; 如果没有,则在常量池中创建与此 String 内容相同的字符串,并返回常量池中创建的字符串的引用。
    String s1 = new String("AAA");
    String s2 = s1.intern();
    String s3 = "AAA";
    System.out.println(s2);//AAA
    System.out.println(s1 == s2);//false,因为一个是堆内存中的String对象一个是常量池中的String对象,
    System.out.println(s2 == s3);//true, s1,s2指向常量池中的”AAA“
4字符串拼接:
    String a = "a";
    String b = "b";
         
    String str1 = "a" + "b";//常量池中的对象
    String str2 = a + b; //在堆上创建的新的对象     
    String str3 = "ab";//常量池中的对象
    System.out.println(str1 == str2);//false
    System.out.println(str1 == str3);//true 
    System.out.println(str2 == str3);//false

(10)如下哪些是 java 中有效的关键字()
A.native
B.NULL
C.false
D.this

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nicholas_giao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值