4.3 Java选择题知识点汇总
Peng's Blog 只记录和技术相关的东西

4.3 Java选择题知识点汇总


1.语句:char foo=’中’,是否正确?

(假设源文件以GBK2312编码存储,并且以javac – encoding GB2312命令编译)
正确 因为char占两个字节,GBK2312中 中文占两个字节。但是如果换成utf-8,那么就会出错,因为utf-8中,中文占三个字节。

2.下列整型常量 i 的定义中,正确的是( )

enter description here

因为题目说明是要整型,所以必须要用int。排除AD;
被final修饰的必须要赋初值,排除A。

3.String与StringBuffer的区别。

enter description here
ACD没什么好说的,关于B。我的理解是:String的引用类型,引用对象是可以变的,所以不是常量。

4.下面描述属于java虚拟机功能的是?

enter description here
ABC没什么好说的,关于D,D中说的与硬件交互是JVM机器指令与硬件的交互。是对的。

5.下面哪些Java中的流对象是字节流?

enter description here
字节流:
InputStream
|– FileInputStream (基本文件流)
|– BufferedInputStream
|– DataInputStream
|– ObjectInputStream
字符流
Reader
|– InputStreamReader (byte->char 桥梁)
|– BufferedReader (常用)
Writer
|– OutputStreamWriter (char->byte 桥梁)
|– BufferedWriter
|– PrintWriter (常用) 总结:Stream结尾的都是字节流。

6.下面的类哪些可以处理Unicode字符?

enter description here

7.已知如下的命令执行 java MyTest a b c 请问哪个语句是正确的?

enter description here
注意啊,abc是参数啊!!!

重点: 8.检查程序,是否存在问题,如果存在指出问题所在,如果不存在,说明输出结果。

enter description here
答案是: 0
解析:

jvm里面有两个存储区,一个是暂存区(是一个堆栈,以下称为堆栈),另一个是变量区。jvm会这样运行这条语句, JVM把count值(其值是0)拷贝到临时变量区。 步骤2 count值加1,这时候count的值是1。 步骤3 返回临时变量区的值,注意这个值是0,没修改过。 步骤4 返回值赋值给count,此时count值被重置成0。 c/c++ 中没有另外设置一个临时变量或是临时空间来保存i,所有操作都是在一个内存空间中完成的,所以在c/c++中是1。

9.局部变量,全局变量,静态变量。

enter description here
最后输出的结果是: 3
解析:

1、静态语句块中x是局部变量,不影响静态变量x的值
2、x和y为静态变量,默认初始值为0,属于当前类,其值的改变会影响整个类运行。
3、x+y+ ++x,先执行x+y,再执行++x,最后再加到一起。


Comments

评论功能暂停使用,如需跟作者讨论请联系底部的GitHub