我正在查看旧的考试问题(目前是大学的第一年).我想知道是否有人能够更彻底地解释为什么以下for
循环在它应该结束时不会结束.为什么会这样?我知道它因为四舍五入错误而跳过100.0,但为什么呢?
for(double i = 0.0; i != 100; i = i +0.1){
System.out.println(i);
}
Run Code Online (Sandbox Code Playgroud) 代码如下:
<p class="downloadBoks" onclick="location.href='Prosjektplan.pdf'">Prosjektbeskrivelse</p>
Run Code Online (Sandbox Code Playgroud)
像这样工作正常,但它在同一窗口中打开文件.我想应用target ="_ blank".但经过一些谷歌后,我仍然无法弄明白.
标题可能会令人困惑,但我会尝试用一些例子来解释。这是我现在的表达方式。
^([A-ZÆØÅ][a-zæøå]+[\s-]{1}){2,20}$
Run Code Online (Sandbox Code Playgroud)
我想要一个与这些相匹配的表达式:所以一般规则是,
- 每个单词必须以大写字母开头
- 大写字母后面只能是小写字母
- 最多可以有一个 - 或彼此之间有空格
最困难的部分是,在这些的每一个组合中,我希望最后一行最多包含 20 个字符
我想要一个与这些相匹配的表达式:
April-Can Æøå
An-An-An An An-An
Aaaaabbbbbcccccddddd
Aaa
Run Code Online (Sandbox Code Playgroud)
不匹配
andkas
Andfak-lkakad
AppleApple
Carrotcarrotcarrotcarrotcarrotcarrot
Banana- Banana
Apple-apple-apple-apple-apple banana banana apple carrot
Run Code Online (Sandbox Code Playgroud) Laerer laerer = (Laerer) session.getAttribute("laererInnlogget");
List<Spoerreskjema> ss = laerer.getSkjemaliste();
if(ss == null)
System.out.println("1");
if(ss != null)
System.out.println("2");
if(ss.isEmpty())
System.out.println("3");
if(!ss.isEmpty())
System.out.println("4");
Run Code Online (Sandbox Code Playgroud)
if循环用于显示问题所在.
控制台将显示2,然后在到达ss.isEmpty()时抛出NullPointerException
laerer对象不为null,但包含一个应为null(或至少为空)的List
所有这些都存储在postgresql数据库中或从postgresql数据库中获取.
知道问题可能是什么?
顺便说一句,调用ss.size()也会导致NullPointerException
我本质上希望能够检查列表是否为空.
SEVERE: Servlet.service() for servlet [no.hib.prosjekt01.controllers.laerer.LaererHjemServlet] in context with path [/prosjekt01] threw exception
java.lang.NullPointerException
at org.apache.openjpa.enhance.no$hib$prosjekt01$models$Laerer$pcsubclass.pcReplaceField(Unknown Source)
at org.apache.openjpa.kernel.StateManagerImpl.replaceField(StateManagerImpl.java:3254)
at org.apache.openjpa.kernel.StateManagerImpl.storeObjectField(StateManagerImpl.java:2681)
at org.apache.openjpa.kernel.StateManagerImpl.storeObject(StateManagerImpl.java:2671)
at org.apache.openjpa.jdbc.meta.strats.StoreCollectionFieldStrategy.load(StoreCollectionFieldStrategy.java:596)
at org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java:934)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:681)
at org.apache.openjpa.kernel.DelegatingStoreManager.load(DelegatingStoreManager.java:117)
at org.apache.openjpa.kernel.ROPStoreManager.load(ROPStoreManager.java:78)
at org.apache.openjpa.kernel.StateManagerImpl.loadFields(StateManagerImpl.java:3146)
at org.apache.openjpa.kernel.StateManagerImpl.loadField(StateManagerImpl.java:3226)
at org.apache.openjpa.kernel.StateManagerImpl.fetchObjectField(StateManagerImpl.java:2468)
at org.apache.openjpa.kernel.StateManagerImpl.fetchField(StateManagerImpl.java:890)
at org.apache.openjpa.kernel.StateManagerImpl.fetch(StateManagerImpl.java:852)
at org.apache.openjpa.enhance.RedefinitionHelper$1.invoke(RedefinitionHelper.java:230)
at com.sun.proxy.$Proxy68.isEmpty(Unknown Source)
at no.hib.prosjekt01.controllers.laerer.LaererHjemServlet.doGet(LaererHjemServlet.java:35)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at …
Run Code Online (Sandbox Code Playgroud) 代码如下:
public class Main {
public static void main(String[] args) {
Student a = new Student(10, "Ole");
Student b = new Student(10, "Ole");
System.out.println(a.hashCode());
System.out.println(b.hashCode());
}
}
Run Code Online (Sandbox Code Playgroud)
对象看起来像这样:
public class Student {
private int snr;
private String namn;
public Student(int snr, String namn) {
this.snr = snr;
this.namn = namn;
}
}
Run Code Online (Sandbox Code Playgroud)
这些是运行代码时的结果:
57651960
441366923
Run Code Online (Sandbox Code Playgroud)
我已经阅读了一些javadoc,但我找不到原因,有人可以解释为什么会这样吗?还有什么我必须做的才能使结果相同?(如果可能的话)
谢谢你的解释:)!现在有道理;)
java ×3
for-loop ×1
hashcode ×1
html ×1
httpsession ×1
javascript ×1
list ×1
object ×1
onclick ×1
regex ×1
regex-group ×1