Java十道入门易踩坑题分析前篇

网友投稿 209 2022-08-30


Java十道入门易踩坑题分析前篇

目录1,java基本类型2,java包装类3,Java编译4,JDK,JVM,JRE5,类型转换6,转义字符7,标识符8,类型转换9,赋值符号10,打印一个字符串

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语言编写xdtQCI的程序所不可缺少的运行环境。也是通过它,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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Django(part1)--Django介绍与安装(django的安装)
下一篇:Django(part4)--练习及re_path方法(django的path函数和url函数)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~