问题标签 [scjp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4894 浏览

java - 关于设计的scjp问题

一个程序员团队正在为新的实用程序类审查提议的 API。经过一番讨论,他们意识到他们可以在不丢失任何功能的情况下减少 API 中的方法数量。如果他们实施新设计,他们将推广哪两个 OO 原则?

有人可以告诉我答案是什么吗?

0 投票
2 回答
207 浏览

scjp - SCJP v6 (Sierra,Bates) 第 2 章,问题 12 构造函数调用的解释

我可以对此有一些反馈吗

鉴于“new House(“x”)”发送了一个字符串,我预计“House(String name)”构造函数会调用 Building 超类构造函数“Building(String name)”。在这种情况下,答案将是“bn xh hn x”。但是答案是“bh hn x”(是的,它确实与该输出一起运行)。

问题 1. 除了调用 "new Building("string_value")" 之外,House 还会调用 "Building(String name)" 构造函数吗?(即除了 House 构造函数中的附加代码?2.为什么调用无参数 Building 构造函数,而不是重载 Building (String name) 构造函数?我正在寻找的是可能有许多 Building 构造函数和可能需要从子类调用特定的超级构造函数。如何确保调用哪个构造函数(给定两个或多个选项)?

包含代码以方便参考。

答案是“bh hn x”

问候斯科特

0 投票
1 回答
818 浏览

scjp - SCJP Sierra Bates 第 2 章问题 2 默认构造函数调用

背景信息 我对 Sierra & Bates, SCJP v6 书中的问题有疑问。即第2章问题2。给出的答案是“编译失败”。但是,当我在 neBeans 中尝试此操作时,代码编译并运行没有错误。它还返回了“D”的输出,这不是替代方案之一。在各种论坛中,关于是否需要插入 super() 等,关于这个问题还有一些其他的讨论。但是似乎没有人认识到它可以编译。

这一点非常重要,因为我正在为 SCJP 学习,我发现并非所有问题都可以在 netBeans 中复制。在这种情况下,我可能会学会相信某些代码在(出于考试目的)不起作用时会起作用。

包含代码以方便参考。

0 投票
4 回答
1939 浏览

java - SCJP 模拟问题:有多少对象有资格进行垃圾回收?

有人问了我一个问题(在此站点http://scjptest.com/上):在此代码示例中,有多少对象符合垃圾回收条件,位于 // some code goes here?

正确答案是:“a 和 b 引用的对象符合垃圾回收条件。”。但为什么?它们包含相互的循环引用,它们可以相互访问。

谢谢!

0 投票
3 回答
3599 浏览

java - SCJP - 数字格式

鉴于:

在第 4 行插入的哪个代码片段产生输出| 12.345|

printf 语句的解释是什么,为什么是 |%7d| 正在给illegalFormatConversionException ?

谢谢

0 投票
7 回答
45102 浏览

java - Java unreachable catch 块编译器错误

为什么在 Java 中Exception即使它没有被抛出,我们也能捕捉到它,但我们不能捕捉到它的子类(“unchecked” RuntimeExceptions 和它的子类除外)。示例代码:

有任何想法吗?

0 投票
4 回答
698 浏览

java - 类是泛型时的 Java 通配符奇怪行为

我认为我对 Java 泛型有一些很好的理解。

这段代码不能编译,我知道为什么。

我们只能将动物类型或其超类型的列表(如对象列表)传递给测试方法

但奇怪的部分来了(至少对我来说)。

如果我们仅通过添加 <T> 将类 Test 声明为泛型,那么它会编译!并抛出 java.lang.ClassCastException:

,

我的问题是为什么添加泛型类类型 <T> (不在任何地方使用)会导致类编译并改变通配符行为?

0 投票
6 回答
396 浏览

java - java数组是如何真正工作的

有人可以解释一下数组在 Java 中是如何工作的吗?

我对以下代码感到惊讶:

只有 test2 不是 Object[][] 的实例

运行时有什么区别?

编辑:我看到了一些答案。Jon Skeet,请注意我可以:

test instanceof Object[] 返回 true,并且在演员表运行时不会引发异常。根据 Sierra & Bates 的 SCJP 书,测试 IS-A Object[][] 但也测试 Object[]

但是当试图用“test4[0] = “blaaa”;”重新分配一个新值时,我得到一个异常:线程“main”中的异常 java.lang.ArrayStoreException: java.lang.String at Main.main(Main.爪哇:24)

所以在运行时,test 和 test2 似乎都是 IS-A Object[],并且都包含对象数组,但其中只有一个 IS-A Object[][]

0 投票
3 回答
3051 浏览

java - 在 Java 中重新定义静态方法是什么意思?

我一直在阅读 SCJP 学习指南中有关静态的部分,其中提到了以下内容:

静态方法不能被覆盖,但可以重新定义

重新定义实际上意味着什么?是否有一个静态方法存在于父级和子级中,具有相同的签名,但是它们由它们的类名单独引用?如 :

引用为 :Parent.doSomething();Child.doSomething();?

此外,这同样适用于静态变量,还是仅适用于静态方法?

0 投票
3 回答
573 浏览

java - 同步线程和锁定

有人可以在对象锁定的上下文中解释这两个示例之间的区别:

我知道第一个示例将获得this实例上的锁,第二个示例将获得 aStringBufferObject 实例的锁。但我真的不明白两者的效果或区别是什么。

例如,在第二个示例中,线程是否仍然能够执行同步块中的代码,因为锁与“this”实例无关?

我知道同步方法或代码块可以防止多个线程同时访问该块/方法,但是指定要锁定的对象的目的是什么以及指定对象的方式有什么区别上面的例子?