当前位置:   article > 正文

Java错题集(十二)_关于java编译和运行命令叙述不正确的是

关于java编译和运行命令叙述不正确的是

目录

下面有关JDK中的包和他们的基本功能,描述错误的是?

编译java程序的命令文件是( )

在委托事件模型中,源生成事件并把它发送给一个或多个监听器,每个监听器必须向事件源注册。

Math.round(11.5) 等于多少 (). Math.round(-11.5) 等于多少 (  ).

J2EE中,当把来自客户机的HTTP请求委托给servlet时,会调用HttpServlet的(    )方法

下面叙述那个是正确的?()

关于java编译和运行命令叙述不正确的是?  ( )

假设 a 是一个由线程 1 和线程 2 共享的初始值为 0 的全局变量,则线程 1 和线程 2 同时执行下面的代码,最终 a 的结果不可能是()

Which four statements are true ?


下面有关JDK中的包和他们的基本功能,描述错误的是?

正确答案: C   你的答案: A (错误)

java.awt: 包含构成抽象窗口工具集的多个类,用来构建和管理应用程序的图形用户界面
java.io:  包含提供多种输出输入功能的类
java.lang: 包含执行与网络有关的类,如URL,SCOKET,SEVERSOCKET
java.util:  包含一些实用性的类

来源:https://www.nowcoder.com/questionTerminal/adde31d35f894b2f94958ab4a2ccb5f9

1. java.awt提供了绘图和图像类,主要用于编写GUI程序,包括按钮、标签等常用组件以及相应的事件类。

2. java.langjava的语言包,是核心包,默认导入到用户程序,包中有object类,数据类型包装类,数学类,字符串类,系统和运行时类,操作类,线程类,错误和异常处理类,过程类。

3. java.io包含提供多种输出输入功能的类。

4. java.net 包含执行与网络有关的类,如URL,SCOKET,SEVERSOCKET等。

5. java.applet包含java小应用程序的类。

6. java.util包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。集合类、时间处理模式、日期时间工具等各类常用工具包。
7. java.sql提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。

 

编译java程序的命令文件是( )

正确答案: B   你的答案: B (正确)

java.exe
javac.exe
applet.exe

来源:https://www.nowcoder.com/questionTerminal/a5eaa743f4db48de8399dce240552b2d

javac.exe是编译功能javaCompiler
java.exe是执行程序,用于执行编译好的.class文件
javadoc.exe用来制作java文档
jdb.exe是java的调试器
javaprof.exe是剖析工具

 

在委托事件模型中,源生成事件并把它发送给一个或多个监听器,每个监听器必须向事件源注册。

正确答案: A   你的答案: A (正确)

T
F

来源:https://www.nowcoder.com/questionTerminal/487868c83ddb49179f4e28f03d2fa555

学习博客:https://www.jianshu.com/p/cac99c0f172b

 

Math.round(11.5) 等于多少 (). Math.round(-11.5) 等于多少 (  ).

正确答案: C   你的答案: A (错误)

11 ,-11
11 ,-12
12 ,-11
12 ,-12

来源:https://www.nowcoder.com/questionTerminal/380131bb026149b9a2157ec1b624036a

Math类中提供了三个与取整有关的方法:ceil,floor,round,这些方法的作用于它们的英文名称的含义相对应,例如:

ceil的英文意义是天花板,该方法就表示向上取整,Math.ceil(11.3)的结果为12,Math.ceil(-11.6)的结果为-11

floor的英文是地板,该方法就表示向下取整,Math.floor(11.6)的结果是11,Math.floor(-11.4)的结果-12

最难掌握的是round方法,round函数是取最接近整数,如果遇到一样近,则取最大值。

 

J2EE中,当把来自客户机的HTTP请求委托给servlet时,会调用HttpServlet的(    )方法

正确答案: A   你的答案: D (错误)

service
doget
dopost
init

来源:https://www.nowcoder.com/questionTerminal/1154e372a20141e3abb7e8e5de132f79

HttpServlet容器响应Web客户请求流程如下:

1)Web客户向Servlet容器发出Http请求;

2)Servlet容器解析Web客户的Http请求;

3)Servlet容器创建一个HttpRequest对象,在这个对象中封装Http请求信息;

4)Servlet容器创建一个HttpResponse对象;

5)Servlet容器调用HttpServlet的service方法,这个方法中会根据request的Method来判断具体是执行doGet还是doPost,把HttpRequest和HttpResponse对象作为service方法的参数传给HttpServlet对象;

6)HttpServlet调用HttpRequest的有关方法,获取HTTP请求信息;

7)HttpServlet调用HttpResponse的有关方法,生成响应数据;

8)Servlet容器把HttpServlet的响应结果传给Web客户。

doGet() 或 doPost() 是创建HttpServlet时需要覆盖的方法.

 

下面叙述那个是正确的?()

正确答案: B   你的答案: B (正确)

java中的集合类(如Vector)可以用来存储任何类型的对象,且大小可以自动调整。但需要事先知道所存储对象的类型,才能正常使用。
在java中,我们可以用违例(Exception)来抛出一些并非错误的消息,但这样比直接从函数返回一个结果要更大的系统开销。
java接口包含函数声明和变量声明。
java中,子类不可以访问父类的私有成员和受保护的成员。

来源:https://www.nowcoder.com/questionTerminal/b310b8bdf2b7485fa8b1c0d39a0a7a6e
A选项不需要知道对象的存储类型,都是以Object存储。


B选项说的情况就是我们自定义异常的情况,请仔细读:我们可以用违例(Exception)来抛出一些并非错误的消息,可以,并非错误的消息。比如我自定义一个异常,若一个变量大于10就抛出一个异常,这样就对应了B选项说的情况,我用抛出异常说明这个变量大于10,而不是用一个函数体(函数体内判断是否大于10,然后返回true或false)判断,因为函数调用是入栈出栈,栈是在寄存器之下的速度最快,且占的空间少,而自定义异常是存在堆中,肯定异常的内存开销大!所以B对。


C选项说的是接口包含方法声明和变量声明。因为接口中方法默认是 abstract public,所以在接口只写函数声明是符合语法规则。但是变量默认是用public final static 修饰的,意思它是静态常量,常量不管在接口中还是类中必须在声明时初始化!所以C的后半句是错的,必须在声明时并给出初始化!

 

关于java编译和运行命令叙述不正确的是?  ( )

 

正确答案: A   你的答案: B (错误)

运行“java Scut.class”
运行“java Scut”
运行“javac Scut.java”的输出文件是Scut.class
java这个命令的运行对象是Scut.class

来源:https://www.nowcoder.com/questionTerminal/767e6d59501342f5b4f5d6224e02b2a0

A  错误 运行命令是 java + 你的 Java 程序的名字但是不加后缀 所以这道题错在多了 .class这个后缀

B  正确

C  javac 是编译命令,后跟 你的 Java 程序名字加后缀,也就是 YourClassName.java 所以答案正确

D JVM (Java 虚拟机)运行的是编译后的字节码文件(以.class为后缀的文件),也就是 YourClassName.class 所以答案正确

 

假设 a 是一个由线程 1 和线程 2 共享的初始值为 0 的全局变量,则线程 1 和线程 2 同时执行下面的代码,最终 a 的结果不可能是()

  1. boolean isOdd = false;
  2. for(int i=1;i<=2;++i){
  3. if(i%2==1)isOdd = true
  4. else isOdd = false
  5. a+=i*(isOdd?1:-1);
  6. }

正确答案: D   你的答案: B (错误)

-1
-2
0
1

来源:https://www.nowcoder.com/questionTerminal/2be86af464c04b9c9d7895d62dd46732

易知:每个线程对a 均做了两次读写操作,分别是 “ +1 ” 和 “ -2 ”

而题目问了是最终a 的结果,所以 a 的结果取决于各自线程对 a 的先后读写的顺序

结论:a的可能取值为-1、0、-2

如图:

 

  1. class A {}
  2. class B extends A {}
  3. class C extends A {}
  4. class D extends B {}

Which four statements are true ?

正确答案: A C D G   你的答案: A B D E (错误)

The type List<A>is assignable to List.
The type List<B>is assignable to List<A>.
The type List<Object>is assignable to List<?>.
The type List<D>is assignable to List<?extends B>.
The type List<?extends A>is assignable to List<A>.
The type List<Object>is assignable to any List reference.
The type List<?extends B>is assignable to List<?extends A>.

来源:https://www.nowcoder.com/questionTerminal/9bc2d446173147b3b28b31568a6c4706

1. 只看尖括号里边的!!明确点和范围两个概念

2. 如果尖括号里的是一个类,那么尖括号里的就是一个点,比如List<A>,List<B>,List<Object>

3. 如果尖括号里面带有问号,那么代表一个范围,<? extends A> 代表小于等于A的范围,<? super A>代表大于等于A的范围,<?>代表全部范围

4. 尖括号里的所有点之间互相赋值都是错,除非是俩相同的点

5. 尖括号小范围赋值给大范围,对,大范围赋值给小范围,错。如果某点包含在某个范围里,那么可以赋值,否则,不能赋值

6. List<?>和List 是相等的,都代表最大范围

----------------------------------------------------------------------------------

7.补充:List既是点也是范围,当表示范围时,表示最大范围

  1. public static void main(String[] args) {
  2. List<A> a;
  3. List list;
  4. list = a; //A对,因为List就是List<?>,代表最大的范围,A只是其中的一个点,肯定被包含在内
  5. List<B> b;
  6. a = b; //B错,点之间不能相互赋值
  7. List<?> qm;
  8. List<Object> o;
  9. qm = o; //C对,List<?>代表最大的范围,List<Object>只是一个点,肯定被包含在内
  10. List<D> d;
  11. List<? extends B> downB;
  12. downB = d; //D对,List<? extends B>代表小于等于B的范围,List<D>是一个点,在其中
  13. List<?extends A> downA;
  14. a = downA; //E错,范围不能赋值给点
  15. a = o; //F错,List<Object>只是一个点
  16. downA = downB; //G对,小于等于A的范围包含小于等于B的范围,因为B本来就比A小,B时A的子类嘛
  17. }

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/339570
推荐阅读
相关标签
  

闽ICP备14008679号