问题标签 [ocpjp]
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.
java - 当布尔值不是开关支持的数据类型时,为什么布尔表达式在 case 块中有效?
昨晚阅读了一些 SCJP 认证后,我开始思考 switch 语句以及表达式是如何计算的,我对一些事情感到有些困惑。
Java 不会让你打开一个布尔值,所以下面的代码不会编译:
但是,如果您尝试在 case 块中使用计算结果为布尔值的表达式,编译器不会抱怨,例如:
最终,我永远无法进入这个案例('c' | 'd')
,因为它可能会评估为布尔值......
所以我的问题是:
- 为什么使用类似的东西是合法的
('c' | 'd')
? - 那怎么可能有用,因为那将无法到达
- 如果您想要对多个值进行大小写,但不使用默认值,那么您唯一的选择是重新实现为 if-else 语句吗?
java - Slight confusion regarding overriding where variables are concerned
I'm preparing for the SCJP (recently rebranded as OCPJP by Oracle) and one particular question that I got wrong on a mock exam has confused me, the answer description doesn't explain things clear enough.
This is the question :
The answer is 5
, but I chose 6
.
I understand that overriding applies to methods at runtime, and not variables, but the way my mind interpreted that println
was :
- call getObject on c1
- c1 is actually a
SubCovariantTest
object, and has a valid override forgetObject()
, so use the overridden method - The override returns B, so grab x from B which is 6
Is it a case of the JVM ignoring the getObject()
part, and always taking x
from c1
as variables are associated at compile time?
scjp - 树集子集
嗨,我无法理解为什么这段代码的输出是 'ex [6, 7, b, d] [6, 7, b]'。请有人建议子集如何处理数字和字母?谢谢
java - 如何以编程方式测试断言是否启用?
OCP Java SE 6 程序员实践考试的正确答案之一是:
您可以以编程方式测试是否已启用断言,而无需抛出
AssertionError
.
我怎样才能做到这一点?
java - 我们怎么不能用'<'比较两个枚举值?
如果枚举实现了 Comparable 那么为什么不能与 < 或 > 进行比较?
java - 为什么我不能使用 toString().length() 作为 hashCode() 返回?
我错过了什么?由于默认的 toString() 方法,是否会经常调用 hashCode() 方法?
java - 为什么我不能添加两个字节并获得一个 int,而我可以添加两个最终字节获得一个字节?
如果涉及任何 int 大小或更小的表达式的结果始终是 int,即使两个字节的总和适合一个字节。
当我们添加两个适合一个字节的最终字节时,为什么会发生这种情况? 没有编译器错误。
java - 在接口中声明的匿名内部类:什么是外部类?
考虑以下:
InnerClass 不是静态的,必须针对其外部类的实例创建。
new OuterClass().new InnerClass()
常规的内部类包含对创建它的外部类的引用,可以使用Outer.this.myAttribute
(在存在“命名冲突”的情况下特别有用
创建匿名内部类时也是一样:创建的匿名内部类持有对外部类的引用,这就是为什么在方法内部声明谓词(匿名方法局部内部类)时,我们仍然可以在内部类内部访问外部类的变量,而不必将它们声明为 final(而我们应该将变量作为方法参数传递。
最后,我们可以在接口中声明常量,这些常量被隐式标记为 public static final。一个对象可以是一个常数。因此,作为匿名内部类创建的对象是接口的合法常量。
例如,在使用 Guava 时,我通常在我的接口函数和谓词中声明,这允许我利用有用的 Guava 函数,例如Maps.uniqueIndex(...)
.
所以你可能会问自己我的问题是什么?这里是:
当将匿名类声明为接口常量时(请参阅我的上一个代码示例),匿名内部类对哪个外部类持有引用?
java - ocpjp 示例问题中的比较器问题
我目前正在准备 Java SE 7 程序员考试,并尝试解决 Oracle 站点上的示例问题。我被困在这个:
结果是什么?
一)2 3 5 7
B) 2 7 5 3
三)7 5 3 2
D) 编译失败。
E) 运行时抛出异常。
问题可以在这里找到:http ://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=303&p_certName=SQ1Z0_804
网站上显示的正确答案是 C。我测试了代码,发现它没有编译,因为 Comparator 是参数化的,并且在给定的代码中没有指明类型,因此编译器期望 Object 参数用于 compare 方法。当我将 Comparator 更改为 时Comparator<Integer>
,错误已解决,并且按预期工作。
我的问题是原始代码中的声明是否尊重 Java 7 的标准并且应该编译。
java - Java中垃圾收集的合格变量
我正在准备OCPJP,但遇到了以下模拟考试问题:
鉴于:
当到达第 14 行时,有多少对象符合垃圾收集器的条件?
A. 0
B. 1
C. 2
D. 3
E. 4
F. 6
他们的正确答案是 E,即四个物体,但我不知道为什么。从我的角度来看,i2 及其权重将有资格进行垃圾收集。也许我错过了一些东西,请指教。