Java十道入门易踩坑题分析
/少司命 人气:01,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
加载全部内容