JAVA面试题(5)

1、 JAVA所定义的版本中不包括:( )

A、 JAVA2 EE
B、 JAVA2 Card
C、 JAVA2 ME
D、 JAVA2HE
E、 JAVA2 SE
答案:D
解析:
Java企业版:JEE 适用于创建服务器应用程序和服务的Java 平台企业版 Java标准版: JSE 适用于桌面系统的Java 平台标准版
JME:适用于小型设备和智能卡的Java 平台Micro版 Java
Card技术主要是让智能卡或与智能卡相近的设备上,以具有安全防护性的方式来运行小型的Java
Applet,此技术也被广泛运用在SIM卡、提款卡上。

2、 下列说法正确的是( )

A、 JAVA程序的main方法必须写在类里面
B、 JAVA程序中可以有多个main方法
C、 JAVA程序中类名必须与文件名一样
D、JAVA程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来
答案:A
解析:
A:main()方法必须都写在类里面,在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方
法有很大的不同,比如方法的名字必须是main,方法必须是public static void 类型的,方法必须接收一个字符串数组的参数等等。
B:这个之前没用过多个main方法,自己试一下,可以用多个mian为方法名的方法,但是只能有一个publi 0static void
main(String[] args){}这个方法
C:只有标记为public的类,名字才必须与文件名相同,public外部类必须与文件名相同,这样的类有且只有一个,public 内部类
名字不与文件名相同 D: JAVA程序的main方法中,不管有多少条语句都必须用{}(大括号)括起来

3、 变量命名规范说法正确的是( )

A、 变量由字母、下划线、数字、$符号随意组成;
B、 变量不能以数字作为开头;
C、 A和a在java中是同一个变量;
D、不同类型的变量,可以起相同的名字;
答案:B
解析: 变量名只能是字母(a-z
A-Z),数字(0-9),下划线(_)的组合,并且之间不能包含空格,数字不能放在变量名首位。 不要在同一个类的不同上下文中重用相同的变量名

4、 下列javaDoc注释正确的是( )

A、 /* 我爱北京天安门 /
B、 // 我爱北京天安门 /
C、 /
* 我爱北京天安门 */
D、 / 我爱北京天安门 /
答案:C
解析: 对于Java注释我们主要了解两种:
// 注释一行   /
/ 注释若干行   但还有第三种,文档注释:   /
… */ 注释若干行,并写入
javadoc 文档

5、 为一个boolean类型变量赋值时,可以使用( )方式

A、 boolean = 1;
B、 boolean a = (9 >= 10);
C、 boolean a=”真”;
D、 boolean a = = false;
答案:B boolean即java中的基本类型——布尔类型,值只有true和false两种。 分析:
A是对int类型的赋值方式。
B中(9>=10)的值是false,因为有关系运算符是用来比较运算,结果只有对(true)与错(false)两种,是boolean类型,所以B正确
C的赋值方式根本不对,既不符合char类型,也不符合String类型
D中“”是关系运算符,不能用来赋值,如果“”改成“=”就是正确的

6、 以下( )不是合法的标识符

A、 STRING
B、 x3x;
C、 void
D、 de f 答 案 : C v o i d 属 于 j a v a 中 的 关 键 字 [ 1 ] J a v a 标 识 符 只 能 由 数 字 、 字 母 、 下 划 线 “ ” 或 “ f 答案:C void属于java中的关键字 [1]Java标识符只能由数字、字母、下划线“”或“ fCvoidjava[1]Java线”符号以及Unicode字符集组成
[2]Java标识符必须以字母、下划线“”或“$”符号以及Unicode字符集开头
[3]Java标识符不可以是Java关键字、保留字(const、goto)和字面量(true、false、null)
[4]Java标识符区分大小写,是大小写敏感的

7、 表达式(11+3*8)/4%3的值是( )

A、 31
B、 0
C、 1
D、 2
答案: D 先乘除后加减,有括号先按括号算 3*8=24 11+24=35 35/4=8
8%3=2 结果是2

8. 什么是java 序列化,如何实现java 序列化?

答:序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题;序列化的实现:将需要被序列化的类实现Serializable
接口,该接口没有需实现的方法,implements Serializable
只是为了标注该对象是可被序列化的,然后使用一个输出流(如FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream
对象的writeObject(Object obj)方法就可以将参数为obj 的对象写出(即保存其状态),要恢复的话则用输入流。

9、java 中有几种类型的流?JDK 为每种类型的流提供了一些抽象类以供继承,
请说出他们分别是哪些类?

InputStream、OutputStream,字符流继承于Reader、Writer。在java.io
包中还有许多其他的流,主要是为了提高性能和使用方便。

10 java中栈和堆得区别?

功能不同 栈内存用来存储局部变量和方法调用。
而堆内存用来存储Java中的对象。无论是成员变量,局部变量,还是类变量,它们指向的对象都存储在堆内存中。 共享性不同 栈内存是线程私有的。
堆内存是所有线程共有的。
3.异常错误不同 如果栈内存或者堆内存不足都会抛出异常。 栈空间不足:java.lang.StackOverFlowError。 堆空间不足:java.lang.OutOfMemoryError。
4.空间大小 栈的空间大小远远小于堆的。

如果觉得我写的还行,请关注我的公众号,每天定时推送干货.
JAVA面试题(5)_第1张图片

你可能感兴趣的:(Java)