问题标签 [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.
java - 自Java5 +菱形运算符以来初始化通用集合的方法
据我所知,泛型仅在编译时有用。
因此可以声明:
然后,在这个字符串哈希集中,将狗或任何东西添加到该集合中,没有任何问题,因为在运行时没有像数组 (ArrayStoreException...) 那样的任何检查(但是当你使用它时,你可能会遇到类转换之类的问题放...
所以我想说的是,我们通常这样实例化泛型集合:
我的问题是,为什么我们要放置 HashSet 的类型,因为只有变量引用的类型才是真正重要的(我认为)。
我的意思是,我们可以简单地写:
它的工作原理完全相同吗?那么为什么我们通常在实例化的时候写类型呢?(这不是强制性的)
编辑
我知道用于类型推断的“钻石运算符”,但为什么我们甚至需要它!!!因为类型推断已经开始工作了!
以下代码:
产生输出:
测试添加字符串 1 测试添加字符串 2
因此,现在您将类型推断作为 Java7 的一项功能进行讨论,但它已经对我有用了……
使用 java7 我将不得不更换我的
经过
做完全相同的事情仍然需要 2 个额外的字符,不是吗?(除非泛型不仅是 Java7 的编译时间?我不知道)
java - Java中的运算符优先级
在http://leepoint.net/notes-java/data/expressions/precedence.html的一个例子中
下面的表达式
被评估为
然后我从http://www.roseindia.net/java/master-java/operator-precedence.shtml看到了另一个例子
下面的表达式
被评估为
我对如何决定在涉及 * 和 / 时首先评估哪个感到有些困惑。在上面的示例中,两者似乎有所不同。
第一个示例正在评估3*5/5
为((3*4)/5)
而第二个示例正在评估5*6/3 as (5*(6/3))
我知道 * 和 / 优先于 + 和 - 但是当表达式同时包含 * 和 / 时呢?还有为什么上面两个例子显示了不同的方法?其中一个是错的吗?
编辑
上面的程序产生输出
如果第一个产生相同的输出,为什么最后两个输出不一样。
java - 调用构造函数后从 main 调用私有包方法
我正在学习SCJP,在学习的过程中发现了一个一开始看起来很简单的练习,但是我没有解决它,我不明白答案。该练习(取自OCP Java SE 6 Programmer Practice Exams、Bert Bates 和 Kathy Sierra)说明如下:
鉴于:
答案是:
我的猜测是 C,因为 doStuff 方法在 MyPancake 类中,所以 main 方法应该可以访问它。
重新考虑这个问题,当从静态上下文调用 new 时,如果 doStuff 是私有的,它可能无法访问私有方法。这是真的?我不确定。
但无论如何,我仍然认为它可以访问包私有的 doStuff 方法。我想我错了,但我不知道为什么。
你可以帮帮我吗?
谢谢!
java - 自 oracle 接管以来,sun SCJP/SCJA/SCEA 轨道有哪些变化?
上下文:
似乎简单的 scjp ->scja->.... 用于 sun 认证的轨道已与其他 oracle 样式认证合并...作为开发人员,我最近花了一些时间试图找出新的“途径”用于认证。
现有资源:
这里有一个非常密集但信息丰富的页面:http ://en.wikipedia.org/wiki/Sun_Certified_Professional 当然,Oracle 网站也充满了不同认证事实的链接和图表。
我的问题:
尚不清楚是否有新的 Java 认证范式或途径正在出现,因此旧的 SCJP 风格的认证是否仍然存在(尽管名称不同),也不清楚整个认证管道的样子:例如,此图(来自较早的 sun 认证)http://www.whizlabs.com/images/jwhiz.png以清晰易懂的图表清楚地关联了无数的认证和培训计划。但是我没有看到任何此类资源来解释和比较现代 Oracle Java 认证。
问题:
新的 Oracle 认证之间有什么关系?它们与最初的 SCJP、SCJD 和 SCEA 考试有何关系?
java - 对实例变量的初始化感到困惑
我正在为 SCJP 考试做准备,在做一些模拟测试时,我遇到了这个:
它询问以下内容的输出:
我认为它会是21 20
,因为 ti 会调用 getInt,然后将 k 递增到 21。
然而,答案是1 20
。我不明白为什么会是1,有人可以对此有所了解吗?
java - 由方法创建的字符串对象
我正在为我的 Oracle Certified Java Programmer 认证做一些模拟测试。我在测试中发现的问题之一是:
问题是“调用此方法时将创建多少个 String 对象?”。我数的是 5:“Fred”、“47”、“Fred47”、子字符串“ed4”和大写字符串“ED4”,但问题答案是 3 个对象(并且测试所在的文档没有解释部分)。你能指出我的错误在哪里吗?
java - 对正则表达式贪婪运算符和终止字符的困惑
我正在准备 SCJP 考试,下面的模拟题让我措手不及。该工具中的解释不是很好,所以我希望SO的知识渊博的人能够解释它。
使用 的正则表达式C.*L
,识别它将从中捕获的单词CooLooLCuuLooC
我选择了CooL and CuuL
。我选择这个的原因是因为我相信它会寻找 C 的起始匹配,然后取任何字符零次或多次,直到找到一个L
,然后终止。
然而,答案其实是CooLooLCuuL
。我很困惑前 2 是如何L
通过的?
谁能帮我解决这个问题?
谢谢
java - 异常和错误报告顺序
哪些规则适用于以下代码:
资产已启用。
为什么会报 IllegalArgumentException 而不是 AssertionError?是否有适用于这种情况的规则?
编辑: 对不起!在这个例子中应该有 assert ( false )
java - 为什么这段代码不是线程安全的?
在下面的代码片段中,将 doThings() 方法声明为静态将使类成为线程安全的。这是因为如果启动了多个 TestSeven 线程并且由于 x 是静态变量,可能会发生竞争条件吗?