亲宝软件园·资讯

展开

Java十道入门易踩坑题分析

/少司命 人气:0

1,java基本类型

下面属于java基本数据类型的有( )

A.String

B.byte

C.char

D.Array

Java基本数据类型分为三种,数值型,字符型,布尔型

数值型:

整型:byte、short、int、long

浮点型:double、float

字符型:char

布尔型:boolean

Array String属于引用数据类型,选择BC

2,java包装类

下面属于java包装类的是( )

A.String

B.Long

C.Character

D.Short

Java包装类就是基本类型对应的类类型,基本类型为八种基本数据类型,所以String不属于Java包装类。选择BCD

3,Java编译

下列语句哪一个正确 ( ) 

A.Java程序经编译后会产生machine code

B.Java程序经编译后会产生byte code

C.Java程序编译使用命令javac 运行使用 java 命令

D.以上都不正确

Java编译后产生的是字节码文件,Java程序编译使用命令javac 运行使用 java 命令 选择BC

4,JDK,JVM,JRE

下列有关JDK, JRE, JVM三者的叙述,正确的是:( ) 

A.JDK是Java开发工具包 ,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)

B.JRE是运行基于Java语言编写的程序所不可缺少的运行环境。也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。

C.JVM是整个Java实现跨平台的最核心的部分,所有的Java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行

D.JDK中包含了JRE,JRE又包含JVM

JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。 在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。

JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

ABCD均正确

5,类型转换

基本数据类型均可任意互相转换( )

A.对

B.错

boolean也属于基本数据类型,但不能和其他类型转换

6,转义字符

在Java中表示换行符的转义字符是:( )

A.\n

B.\f

C.'n'

D.\dd

 选择A

7,标识符

在java中,下列标识符不合法的有( )

A.new

B.$Usdollars

C.1234

D.car.taxi

Java标识符由数字,字母和下划线(_),美元符号($)或人民币符号(¥)组成。在Java中是区分大小写的,而且还要求首位不能是数字。最重要的是,Java关键字不能当作Java标识符。new属于关键字。选择ACD

8,类型转换

经过强制类型转换以后,变量a,b的值分别为多少( )

short a =128;
 
byte b =(byte) a;

A.128 127

B.128 - 128

C.128 128

D.编译错误

Java 作为一个强类型编程语言, 当不同类型之间的变量相互赋值的时候, 会有教严格的校验. 先看以下几个代码场景:

int 和 long/double 相互赋值

int a = 10; 
long b = 20; 
a = b; // 编译出错, 提示可能会损失精度. 
b = a; // 编译通过. 
 
int a = 10; 
double b = 1.0; 
a = b; // 编译出错, 提示可能会损失精度. 
b = a; // 编译通过.

long 表示的范围更大, 可以将 int 赋值给 long, 但是不能将 long 赋值给 int.

double 表示的范围更大, 可以将 int 赋值给 double, 但是不能将 double 赋值给 int.

结论: 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型, 反之则不行

128赋值给a,a=128,byte为一个字节,大小范围-128-127,所以b=-128

选择B

9,赋值符号

以下哪一个不是赋值符号( )

A.+=

B.<<=

C.<<<=

D.>>>=

增量赋值运算符

+=  -=  *=  /=  %=

无符号右移 >>>: 最右侧位不要了, 最左侧补 0

int a = 0xffffffff; 
System.out.printf("%x\n", a >>> 1); 

输出: 

// 运行结果(注意, 是按十六进制打印的)
7fffffff

不存在无符号左移,选择C

10,打印一个字符串

如果要打印一个字符串,需要使其输出结果为:\"hello\",则以下哪种方式可以正确输出:( )

A.System.out.println("\\\"hello\\\"");

B.System.out.println("\\"hello\\"");

C.System.out.println("/\"hello/\"");

\\指打印一个\, \''指打印一个'',所以选择A

加载全部内容

相关教程
猜你喜欢
用户评论