คำถามติดแท็ก java

Java เป็นภาษาการเขียนโปรแกรมระดับสูงที่เป็นที่นิยม ใช้แท็กนี้เมื่อคุณมีปัญหาในการใช้หรือทำความเข้าใจภาษานั้น ๆ แท็กนี้ไม่ค่อยได้ใช้คนเดียวและมักใช้ร่วมกับ [สปริง], [สปริงบูต], [jakarta-ee], [android], [javafx], [gradle] และ [maven]

8
เหตุใดจึงต้องใช้ ReentrantLock ถ้าใครสามารถใช้ข้อมูลให้ตรงกัน (นี่)
synchronized (this)ฉันพยายามที่จะเข้าใจสิ่งที่ทำให้ล็อคในการทำงานพร้อมกันที่สำคัญดังนั้นหากสามารถใช้ ในรหัสจำลองด้านล่างฉันสามารถทำอย่างใดอย่างหนึ่ง: ทำข้อมูลให้ตรงกันทั้งวิธีหรือประสานพื้นที่เสี่ยง ( synchronized(this){...}) หรือล็อคพื้นที่โค้ดที่มีช่องโหว่ด้วย ReentrantLock รหัส: private final ReentrantLock lock = new ReentrantLock(); private static List<Integer> ints; public Integer getResult(String name) { . . . lock.lock(); try { if (ints.size()==3) { ints=null; return -9; } for (int x=0; x<ints.size(); x++) { System.out.println("["+name+"] "+x+"/"+ints.size()+". values >>>>"+ints.get(x)); } } …

30
วิธีที่ดีที่สุดในการสร้างสตริงของรายการที่มีการคั่นใน Java คืออะไร?
ในขณะที่ทำงานในแอพพลิเคชั่น Java เมื่อเร็ว ๆ นี้ฉันจำเป็นต้องรวบรวมรายการค่าที่คั่นด้วยเครื่องหมายจุลภาคเพื่อส่งต่อไปยังบริการเว็บอื่นโดยไม่ทราบว่าจะมีองค์ประกอบกี่รายการล่วงหน้า สิ่งที่ดีที่สุดที่ฉันสามารถทำได้ด้วยการปิดส่วนหัวของฉันคือสิ่งนี้: public String appendWithDelimiter( String original, String addition, String delimiter ) { if ( original.equals( "" ) ) { return addition; } else { return original + delimiter + addition; } } String parameterString = ""; if ( condition ) parameterString = appendWithDelimiter( parameterString, "elementName", …
317 java  string  algorithm 

7
การจัดการ InterruptedException ใน Java
ความแตกต่างระหว่างวิธีการจัดการต่อไปนี้InterruptedExceptionคืออะไร? วิธีที่ดีที่สุดที่จะทำคืออะไร? try{ //... } catch(InterruptedException e) { Thread.currentThread().interrupt(); } หรือ try{ //... } catch(InterruptedException e) { throw new RuntimeException(e); } แก้ไข: ฉันต้องการที่จะรู้ว่าในสถานการณ์เหล่านี้ใช้ทั้งสอง

29
วิธีรับอินพุตผู้ใช้ใน Java
ฉันพยายามที่จะสร้างเครื่องคิดเลข, แต่ฉันไม่สามารถได้รับมันในการทำงานเพราะผมไม่ทราบว่าจะได้รับการป้อนข้อมูลของผู้ใช้ ฉันจะรับอินพุตผู้ใช้ใน Java ได้อย่างไร
317 java  input 


12
วิธีเพิ่มขีด จำกัด หน่วยความจำ IDE ใน IntelliJ IDEA บน Mac
ฉันใช้ IDEA 12 Leda กับ Mountain Lion ฉันต้องการเพิ่มหน่วยความจำสูงสุดที่ IDE สามารถใช้ได้ ฉันตั้งค่า VMOptions ในไฟล์ Info.plist ให้เป็น -Xmx2048m -ea -XX:+HeapDumpOnOutOfMemoryError -Xverify:none -Xbootclasspath/a:../lib/boot.jar เมื่อฉันเปิด IDEA ฉันยังคงเห็นหน่วยความจำสูงสุดที่ 711m jps -v แสดง VMOptions ของฉันโหลดแล้ว แต่มันถูกแทนที่ด้วยตัวเลือกต่อไปนี้ 29388 **-Xmx2048m** -ea -XX:+HeapDumpOnOutOfMemoryError -Xverify:none -Xbootclasspath/a:../lib/boot.jar -Xms128m **-Xmx800m** -XX:MaxPermSize=350m -XX:ReservedCodeCacheSize=64m -XX:+UseCodeCacheFlushing -XX:+UseCompressedOops -Didea.paths.selector=IdeaIC12 -Dsun.java2d.noddraw=true -Didea.max.intellisense.filesize=2500 -Didea.dynamic.classpath=false -Didea.jars.nocopy=false -Dsun.java2d.d3d=false -Dapple.awt.fullscreencapturealldisplays=false -Dapple.laf.useScreenMenuBar=true …

11
แปลงจาก enum ordinal เป็น enum type
ฉันเป็นประเภท enum ReportTypeEnumที่ได้รับการส่งระหว่างเมธอดในคลาสทั้งหมดของฉัน แต่ฉันต้องผ่านค่านี้ใน URL ดังนั้นฉันจึงใช้เมธอดลำดับเพื่อรับค่า int หลังจากที่ฉันได้รับมันในหน้า JSP อื่นของฉันฉันต้องแปลงมันกลับไปที่หน้าReportTypeEnumเพื่อให้ฉันสามารถผ่านมันต่อไปได้ ฉันจะแปลงลำดับไปReportTypeEnum? ใช้ Java 6 SE
316 java  enums 

11
ประกาศ int ที่ไม่ได้ลงนามใน Java
มีวิธีการประกาศ int ไม่ได้ลงนามใน Java? หรือคำถามอาจมีกรอบเช่นนี้เช่นกัน: อะไรคือ Java เทียบเท่าของไม่ได้ลงนาม? เพียงแค่จะบอกคุณบริบทที่ผมกำลังมองไปที่การใช้ Java String.hashcode()ของ ฉันต้องการทดสอบความเป็นไปได้ของการชนถ้าจำนวนเต็มเป็น 32 ที่ไม่ได้ลงนาม int
316 java  integer  unsigned 

15
“ String args []” คืออะไร? พารามิเตอร์ในวิธีการหลัก Java
ฉันเพิ่งเริ่มเขียนโปรแกรมใน Java รหัส Java ต่อไปนี้หมายความว่าอย่างไร public static void main(String[] args) คือString[] argsอะไร คุณจะใช้สิ่งเหล่านี้เมื่อargsใด รหัสที่มาและ / หรือตัวอย่างเป็นที่ต้องการมากกว่าคำอธิบายที่เป็นนามธรรม

11
ฉันจะยืนยันข้อความแสดงข้อยกเว้นด้วยคำอธิบายประกอบการทดสอบ JUnit ได้อย่างไร
ฉันได้เขียนการทดสอบ JUnit สองสาม@Testฉบับพร้อมคำอธิบายประกอบ หากวิธีทดสอบของฉันมีข้อยกเว้นที่ตรวจสอบและหากฉันต้องการยืนยันข้อความพร้อมกับข้อยกเว้นจะมีวิธีการทำ@TestคำอธิบายประกอบJUnit หรือไม่? AFAIK, JUnit 4.7 ไม่ได้มีคุณสมบัตินี้ แต่มีรุ่นอื่น ๆ ในอนาคตหรือไม่ ฉันรู้ใน. NET คุณสามารถยืนยันข้อความและชั้นยกเว้น กำลังมองหาคุณสมบัติที่คล้ายกันในโลก Java นี่คือสิ่งที่ฉันต้องการ: @Test (expected = RuntimeException.class, message = "Employee ID is null") public void shouldThrowRuntimeExceptionWhenEmployeeIDisNull() {}

5
Java - ไม่สามารถเข้าถึงอินสแตนซ์ของประเภท Foo ได้
ฉันมีรหัสต่อไปนี้: class Hello { class Thing { public int size; Thing() { size = 0; } } public static void main(String[] args) { Thing thing1 = new Thing(); System.out.println("Hello, World!"); } } ฉันรู้ว่าThingไม่ทำอะไรเลย แต่ Hello, World ของฉันโปรแกรมรวบรวมได้โดยไม่ต้อง เป็นคลาสที่ฉันกำหนดไว้เท่านั้นที่ทำให้ฉันล้มเหลว และมันก็ปฏิเสธที่จะรวบรวม ฉันไปNo enclosing instance of type Hello is accessible."ที่บรรทัดที่สร้างสิ่งใหม่ ฉันเดาทั้ง: ฉันมีปัญหาระดับระบบ (ทั้งใน …

24
ผลกระทบของประสิทธิภาพการใช้งานอินสแตนซ์ใน Java
ฉันกำลังทำงานกับแอปพลิเคชันและแนวทางการออกแบบหนึ่งวิธีนั้นเกี่ยวข้องกับการใช้งานตัวinstanceofดำเนินการอย่างหนักมาก ในขณะที่ฉันรู้ว่าการออกแบบ OO โดยทั่วไปพยายามหลีกเลี่ยงการใช้instanceofนั่นเป็นเรื่องราวที่แตกต่างและคำถามนี้เกี่ยวข้องกับการแสดงอย่างหมดจด ฉันสงสัยว่ามีผลกระทบต่อประสิทธิภาพการทำงานหรือไม่? เร็วแค่==ไหน? ตัวอย่างเช่นฉันมีคลาสฐานที่มี 10 คลาสย่อย ในฟังก์ชั่นเดียวที่ใช้คลาสพื้นฐานฉันจะตรวจสอบว่าคลาสเป็นอินสแตนซ์ของคลาสย่อยและดำเนินการตามปกติ อีกวิธีหนึ่งที่ฉันคิดว่าการแก้มันคือการใช้จำนวนเต็ม "type id" ดั้งเดิมแทนและใช้ bitmask เพื่อแสดงหมวดหมู่ของคลาสย่อยและจากนั้นก็ทำการเปรียบเทียบรูปแบบบิตของ subclasses "type id" กับ a หน้ากากคงที่เป็นตัวแทนของหมวดหมู่ เป็นที่instanceofที่ดีที่สุดอย่างใดโดย JVM ที่จะได้เร็วขึ้นกว่าที่? ฉันต้องการติดกับ Java แต่ประสิทธิภาพของแอพมีความสำคัญอย่างยิ่ง มันจะเจ๋งถ้ามีคนที่เคยไปตามถนนนี้มาก่อนจะได้รับคำแนะนำ ฉันกำลัง nitpicking มากเกินไปหรือเน้นสิ่งผิดเพื่อเพิ่มประสิทธิภาพหรือไม่

5
คีย์เวิร์ดที่ซิงโครไนซ์ของ Java เวอร์ชัน C # หรือไม่
c # มีคีย์เวิร์ด "ซิงโครไนซ์" ของ Java เวอร์ชันของตัวเองหรือไม่ เช่นใน java มันสามารถระบุได้ทั้งฟังก์ชั่นวัตถุหรือบล็อกของรหัสเช่น: public synchronized void doImportantStuff() { // dangerous code goes here. } หรือ public void doImportantStuff() { // trivial stuff synchronized(someLock) { // dangerous code goes here. } }

13
สิ่งที่อาจทำให้เกิด java.lang.reflect.InvocationTargetException?
ฉันพยายามทำความเข้าใจและอ่านสิ่งที่อาจทำให้เกิด แต่ฉันไม่สามารถทำได้: ฉันมีสิ่งนี้ในรหัสของฉัน: try{ .. m.invoke(testObject); .. } catch(AssertionError e){ ... } catch(Exception e){ .. } สิ่งนั้นคือเมื่อมันพยายามเรียกใช้วิธีการบางอย่างมันจะโยน InvocationTargetExceptionแทนที่จะเป็นข้อยกเว้นที่คาดหวังอื่น ๆ (โดยเฉพาะArrayIndexOutOfBoundsException) ในฐานะที่เป็นจริงผมรู้ว่าสิ่งที่วิธีการที่จะเรียกผมเดินตรงไปยังรหัสวิธีนี้และเพิ่มลองจับบล็อกบรรทัดที่คิดว่าจะโยน ArrayIndexOutOfBoundsExceptionและมันจริงๆโยนArrayIndexOutOfBoundsExceptionตามที่คาดไว้ แต่เมื่อขึ้นไปก็เปลี่ยนไปInvocationTargetExceptionและในรหัสข้างต้นcatch(Exception e) e คือInvocationTargetExceptionและไม่ArrayIndexOutOfBoundsException เป็นไปตามที่คาดไว้ สิ่งใดที่อาจทำให้เกิดพฤติกรรมดังกล่าวหรือฉันจะตรวจสอบสิ่งนั้นได้อย่างไร

2
จะใช้ IntelliJ IDEA เพื่อค้นหารหัสที่ไม่ได้ใช้ทั้งหมดได้อย่างไร
เมื่อฉันอยู่ในไฟล์. java รหัสที่ไม่ได้ใช้มักจะเป็นสีเทาหรือมีขีดเส้นใต้สีเขียวบอกว่ารหัสนี้อาจจะเป็นไปได้ (อาจเป็นเพราะมีบางกรณี JNI / Reflection corner แปลก ๆ ) ที่ไม่ได้ใช้ แต่ฉันมีโครงการนี้ที่มีไฟล์ Java นับพันไฟล์และฉันต้องการค้นหารหัสทั้งหมดที่ไม่ได้ใช้ซึ่งอาจเป็นไปได้ทั้งหมด ฉันจะทำสิ่งนั้นใน IntelliJ IDEA ได้อย่างไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.