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

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

18
DSN ที่ระบุมีสถาปัตยกรรมที่ไม่ตรงกันระหว่างไดรเวอร์และแอปพลิเคชัน JAVA
ฉันพยายามเชื่อมต่อกับฐานข้อมูลที่สร้างโดย MS Access โดยใช้ Java แต่ดูเหมือนจะไม่สามารถจัดการได้ ฉันใช้ ODBC และได้รับข้อยกเว้นนี้: java.sql.SQLException: [Microsoft] [ODBC Driver Manager] DSN ที่ระบุมีสถาปัตยกรรมที่ไม่ตรงกันระหว่างไดรเวอร์และโปรแกรมประยุกต์ Java ของฉัน: package javaapplication2; import java.sql.Statement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; /** * * @author Owner */ public class JavaApplication2 { /** * @param args the command line arguments * */ …
86 java  odbc 

8
กรณีสวิตช์ Java: มีหรือไม่มีวงเล็บปีกกา?
พิจารณาสองตัวอย่างต่อไปนี้โดยใช้วงเล็บปีกกา: switch (var) { case FOO: { x = x + 1; break; } case BAR: { y = y + 1; break; } } โดยไม่ต้องจัดฟัน: switch (var) { case FOO: x = x + 1; break; case BAR: y = y + 1; break; } ฉันรู้ว่าในตัวอย่างข้อมูลที่มีวงเล็บปีกกาจะมีการสร้างขอบเขตใหม่โดยการใส่วงเล็บปีกกาแต่ละกรณี อย่างไรก็ตามหากแต่ละกรณีไม่จำเป็นต้องใช้ขอบเขตใหม่ (เช่นไม่มีการใช้ชื่อตัวแปร) จะมีการลงโทษด้านประสิทธิภาพในการใช้วงเล็บปีกกากับเคสหรือไม่?

8
การโอนย้ายสำหรับ Java
ฉันใช้ทั้งทับทิมบนรางและ Java ฉันสนุกกับการใช้การโยกย้ายเมื่อฉันทำงานในโครงการราง ดังนั้นฉันจึงสงสัยว่ามีการโยกย้ายเช่นเครื่องมือสำหรับ Java หรือไม่? หากไม่มีเครื่องมือดังกล่าวเป็นความคิดที่ดีที่จะใช้การโอนย้ายเป็นเครื่องมือในการควบคุมฐานข้อมูลที่โปรเจ็กต์ Java ใช้?

10
อัปเดต Android Gradle 5.0: สาเหตุ: org.jetbrains.plugins.gradle.tooling.util
ในการอัปเดตเวอร์ชันโครงการของฉันเป็นเวอร์ชันgradle5.0 ฉันได้รับข้อผิดพลาดในสตูดิโอ Android ว่าใช้งานได้ดีgradle 5.0 rc 3และ4ปล่อย ต่อไปนี้เป็นรายละเอียดข้อผิดพลาด: สาเหตุ: org.jetbrains.plugins.gradle.tooling.util.ModuleComponentIdentifierImpl.getModuleIdentifier () Lorg / gradle / api / artifacts / ModuleIdentifier; นี่คือบันทึกรายละเอียด: java.lang.AbstractMethodError: org.jetbrains.plugins.gradle.tooling.util.ModuleComponentIdentifierImpl.getModuleIdentifier()Lorg/gradle/api/artifacts/ModuleIdentifier; at org.gradle.api.internal.artifacts.ivyservice.resolutionstrategy.DefaultCachePolicy.mustRefreshModule(DefaultCachePolicy.java:205) at org.gradle.api.internal.artifacts.ivyservice.resolutionstrategy.DefaultCachePolicy.mustRefreshMissingModule(DefaultCachePolicy.java:188) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository$LocateInCacheRepositoryAccess.resolveComponentMetaDataFromCache(CachingModuleComponentRepository.java:198) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository$LocateInCacheRepositoryAccess.resolveComponentMetaData(CachingModuleComponentRepository.java:189) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.lambda$resolveComponentMetaData$3(ErrorHandlingModuleComponentRepository.java:153) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.lambda$tryResolveAndMaybeBlacklist$15(ErrorHandlingModuleComponentRepository.java:222) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.tryResolveAndMaybeBlacklist(ErrorHandlingModuleComponentRepository.java:236) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.tryResolveAndMaybeBlacklist(ErrorHandlingModuleComponentRepository.java:221) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.performOperationWithRetries(ErrorHandlingModuleComponentRepository.java:214) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.resolveComponentMetaData(ErrorHandlingModuleComponentRepository.java:152) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ComponentMetaDataResolveState.process(ComponentMetaDataResolveState.java:69) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ComponentMetaDataResolveState.resolve(ComponentMetaDataResolveState.java:48) at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.findBestMatch(RepositoryChainComponentMetaDataResolver.java:138) at …

11
ฉันจะเพิ่มรายการในอาร์เรย์ Java แบบไดนามิกได้อย่างไร
ใน PHP คุณสามารถเพิ่มองค์ประกอบในอาร์เรย์แบบไดนามิกได้ดังต่อไปนี้: $x = new Array(); $x[] = 1; $x[] = 2; หลังจากนี้จะเป็นอาร์เรย์เช่นนี้$x{1,2} มีวิธีทำคล้าย ๆ กันใน Java หรือไม่?


19
แสดงรายการไฟล์ทั้งหมดจากไดเร็กทอรีแบบวนซ้ำด้วย Java
ฉันมีฟังก์ชันนี้ที่พิมพ์ชื่อของไฟล์ทั้งหมดในไดเร็กทอรีแบบวนซ้ำ ปัญหาคือรหัสของฉันช้ามากเพราะต้องเข้าถึงอุปกรณ์เครือข่ายระยะไกลด้วยการทำซ้ำทุกครั้ง แผนของฉันคือก่อนอื่นให้โหลดไฟล์ทั้งหมดจากไดเร็กทอรีแบบวนซ้ำจากนั้นไปที่ไฟล์ทั้งหมดด้วย regex เพื่อกรองไฟล์ทั้งหมดที่ฉันไม่ต้องการ ใครมีคำแนะนำที่ดีกว่านี้ไหม public static printFnames(String sDir){ File[] faFiles = new File(sDir).listFiles(); for(File file: faFiles){ if(file.getName().matches("^(.*?)")){ System.out.println(file.getAbsolutePath()); } if(file.isDirectory()){ printFnames(file.getAbsolutePath()); } } } นี่เป็นเพียงการทดสอบในภายหลังฉันจะไม่ใช้รหัสแบบนี้ แต่ฉันจะเพิ่มเส้นทางและวันที่แก้ไขของทุกไฟล์ที่ตรงกับ regex ขั้นสูงกับอาร์เรย์
86 java  file-io 

17
วิธีแก้ไข Uns SatisfiedLinkError (ไม่พบไลบรารีที่อ้างอิง) ในโครงการ JNI
ฉันกำลังทำงานกับโปรเจ็กต์ Java ที่ใช้ JNI JNI เรียกไลบรารีแบบกำหนดเองที่ฉันเขียนขึ้นเองสมมติว่า mylib.dll และขึ้นอยู่กับไลบรารีของบุคคลที่สาม libsndfile-1.dll เมื่อฉันเรียกใช้โปรแกรมของฉันมันขัดข้องด้วย java.lang.UnsatisfiedLinkError: C:\...path...\mylib.dll: Can't find dependent libraries. ฉันได้ค้นหาไซต์นี้ (และอื่น ๆ ) และฉันได้ลองแก้ไขหลายอย่าง: ฉันวิ่งวอล์คเกอร์แบบพึ่งพา DW ให้คำเตือนสองสามไลบรารีสองไลบรารีที่ libsndfile ต้องการ MPR.DLL และ SHLWAPI.DLL มี "การนำเข้าที่ไม่ได้รับการแก้ไข" - แต่คำถามที่พบบ่อยของ DWกล่าวว่าคำเตือนเหล่านี้สามารถละเว้นได้อย่างปลอดภัย ฉันคงชื่อวิธีการใน MYLIB.dll ตามที่แนะนำที่นี่ ชื่อเมธอดถูกคอมไพเลอร์ยุ่งเหยิง แต่ฉันเพิ่มแฟล็ก linker และตอนนี้ชื่อเมธอด dll ตรงกับชื่อในไฟล์ส่วนหัว jni ของฉันทุกประการ ฉันใส่ DLL เหล่านี้ทั้งหมดไว้ในไดเร็กทอรีเดียวกัน - ไดเร็กทอรีเดียวกับ. …

5
ความจุและปัจจัยโหลดที่เหมาะสมที่สุดสำหรับ HashMap ขนาดคงที่คืออะไร?
ฉันกำลังพยายามหาค่าความจุและโหลดแฟกเตอร์ที่เหมาะสมที่สุดสำหรับบางกรณี ฉันคิดว่าฉันมีส่วนสำคัญของมัน แต่ฉันก็ยังขอบคุณสำหรับคำยืนยันจากคนที่มีความรู้มากกว่าฉัน :) ถ้าฉันรู้ว่า HashMap ของฉันจะเติมเต็มให้มีวัตถุ 100 ชิ้นและจะใช้เวลาส่วนใหญ่ในการมีวัตถุ 100 ชิ้นฉันเดาว่าค่าที่เหมาะสมที่สุดคือความจุเริ่มต้น 100 และปัจจัยการโหลด 1? หรือฉันต้องการความจุ 101 หรือมี gotcha อื่น ๆ ? แก้ไข: ตกลงฉันตั้งเวลาไว้สองสามชั่วโมงและทำการทดสอบบางอย่าง นี่คือผลลัพธ์: อยากรู้อยากเห็นความจุความจุ +1 ความจุ +2 ความจุ -1 และแม้แต่ความจุ -10 ทั้งหมดให้ผลลัพธ์ที่เหมือนกันทุกประการ ฉันคาดหวังว่าอย่างน้อยความจุ -1 และความจุ -10 จะให้ผลลัพธ์ที่แย่ลง การใช้ความจุเริ่มต้น (ซึ่งตรงข้ามกับการใช้ค่าเริ่มต้นคือ 16) ช่วยให้การปรับปรุง put () ที่สังเกตเห็นได้ - เร็วขึ้นถึง 30% การใช้โหลดแฟกเตอร์ 1 …
86 java  hashmap 

2
VisualVM - สถานะเธรด
ใครจะกรุณาอธิบายให้ฉันความแตกต่างระหว่างSleeping, Wait, ParkและMonitorรัฐตั้งกระทู้ใน VisualVM นี่คือสิ่งที่ฉันพบ: Running: thread ยังคงทำงานอยู่ Sleeping: thread is sleeping (method yield () ถูกเรียกบนอ็อบเจ็กต์เธรด) Wait: เธรดถูกบล็อกโดย mutex หรือสิ่งกีดขวางและกำลังรอให้เธรดอื่นคลายการล็อก Parkเธรดที่จอดอยู่จะถูกระงับจนกว่าจะได้รับอนุญาต โดยปกติแล้วการยกเลิกการจอดเธรดทำได้โดยการเรียกเมธอด uncark () บนอ็อบเจ็กต์เธรด Monitor: เธรดกำลังรอเงื่อนไขที่จะเป็นจริงเพื่อดำเนินการต่อ สิ่งที่ฉันไม่เข้าใจคือสวนสาธารณะสิ่งที่ระงับเธรดจริงหรือ? ฉันจะตรวจจับโค้ดที่ทำให้เธรดระงับการทำงานได้อย่างไร ใครช่วยแนะนำฉันในเรื่องนี้ ขอบคุณ.
86 java  jvm  visualvm  jvisualvm 

7
ย้อนกลับธุรกรรมหลังจาก @Test
ก่อนอื่นฉันพบเธรดจำนวนมากใน StackOverflow เกี่ยวกับเรื่องนี้ แต่ไม่มีสิ่งใดที่ช่วยฉันได้จริงๆขอโทษที่ถามคำถามที่อาจซ้ำกัน ฉันกำลังทำการทดสอบ JUnit โดยใช้การทดสอบสปริงโค้ดของฉันมีลักษณะเช่นนี้ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {}) public class StudentSystemTest { @Autowired private StudentSystem studentSystem; @Before public void initTest() { // set up the database, create basic structure for testing } @Test public void test1() { } ... } ปัญหาของฉันคือฉันต้องการให้การทดสอบของฉันไม่มีผลต่อการทดสอบอื่น ๆ ดังนั้นฉันต้องการสร้างบางสิ่งเช่นย้อนกลับสำหรับการทดสอบแต่ละครั้ง ฉันค้นหาสิ่งนี้มามากมาย แต่ฉันไม่พบอะไรเลย ฉันใช้ Hibernate …

5
วิธีที่มีประสิทธิภาพที่สุดในการสร้าง InputStream จาก OutputStream
หน้านี้: http://blog.ostermiller.org/convert-java-outputstream-inputstream อธิบายวิธีการสร้าง InputStream จาก OutputStream: new ByteArrayInputStream(out.toByteArray()) ทางเลือกอื่นคือการใช้ PipedStreams และเธรดใหม่ซึ่งยุ่งยาก ฉันไม่ชอบแนวคิดในการคัดลอกเมกะไบต์จำนวนมากไปยังหน่วยความจำใหม่ในอาร์เรย์ไบต์หน่วยความจำ มีห้องสมุดที่มีประสิทธิภาพมากกว่านี้หรือไม่? แก้ไข: ตามคำแนะนำจาก Laurence Gonsalves ฉันลองใช้ PipedStreams และปรากฎว่าพวกเขาไม่ยากที่จะจัดการ นี่คือโค้ดตัวอย่างใน clojure: (defn #^PipedInputStream create-pdf-stream [pdf-info] (let [in-stream (new PipedInputStream) out-stream (PipedOutputStream. in-stream)] (.start (Thread. #(;Here you write into out-stream))) in-stream))

6
Java 8 Lambda Expressions - วิธีการหลายอย่างในคลาสที่ซ้อนกัน
ฉันกำลังอ่านเกี่ยวกับคุณสมบัติใหม่ที่: http://www.javaworld.com/article/2078836/java-se/love-and-hate-for-java-8.html ฉันเห็นตัวอย่างด้านล่าง: การใช้คลาส Anonymous: button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { System.out.println("Action Detected"); } }); ด้วย Lambda: button.addActionListener(e -> { System.out.println("Action Detected"); }); บางคนจะทำอย่างไรกับ a MouseListenerถ้าพวกเขาต้องการใช้หลายวิธีในคลาสที่ไม่ระบุตัวตนเช่น public void mousePressed(MouseEvent e) { saySomething("Mouse pressed; # of clicks: " + e.getClickCount(), e); } public void mouseReleased(MouseEvent e) { saySomething("Mouse released; …

3
ความสำคัญของคุณสมบัติ log4j.rootLogger ในไฟล์ log4j.properties คืออะไร? จะเกิดอะไรขึ้นถ้าฉันไม่ใช้คุณสมบัตินี้?
ความสำคัญของlog4j.rootLoggerคุณสมบัติในlog4j.propertiesไฟล์คืออะไร? จะเกิดอะไรขึ้นถ้าฉันไม่ใช้คุณสมบัตินี้? ตัวอย่าง : # Set root logger level to DEBUG and its only appender to A1. log4j.rootLogger=DEBUG, A1 # A1 is set to be a ConsoleAppender. log4j.appender.A1=org.apache.log4j.ConsoleAppender จะเกิดอะไรขึ้นถ้าฉันตั้งค่าคุณสมบัตินี้เป็นERRORโหมด

24
ข้อดีข้อเสียของเว็บเฟรมเวิร์ก Java แบบต่างๆคืออะไร? [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน9 ปีที่ผ่านมา ฉันกำลังพิจารณาสร้างเว็บไซต์ของตัวเองโดยใช้ Java และกำลังพยายามตัดสินใจว่าจะใช้กรอบงานใด อย่างไรก็ตามการค้นหาเฟรมเวิร์ก Java อย่างรวดเร็วมีผลตอบแทนมากกว่า 50 รายการให้เลือก! เว็บไซต์ของฉันเป็นเพียงเพื่อความเพลิดเพลินของตัวเองในการสร้างมันในตอนแรก แต่ถ้ามันเป็นที่นิยมมันก็จะดีที่จะมีความสามารถในการปรับขนาดได้บ้างหรืออย่างน้อยก็สามารถออกแบบใหม่ได้ อะไรคือความแตกต่างที่สำคัญระหว่างเฟรมเวิร์กที่เป็นที่นิยมมากขึ้น? มีบางกรณีที่มีประสิทธิภาพเหนือกว่ากรณีอื่น ๆ อย่างมีนัยสำคัญหรือไม่? ตัวอย่างเช่นแอปพลิเคชันระดับองค์กรที่มีปริมาณการใช้งานสูงเทียบกับแอปพลิเคชันขนาดเล็กที่มีปริมาณการใช้งานน้อย ฉันยังสงสัยว่าบางอย่างเรียนรู้และใช้งานได้ง่ายกว่าคนอื่น ๆ หรือไม่ มีใครมีประสบการณ์เกี่ยวกับ framework เหล่านี้บ้างช่วยแนะนำหน่อยครับ? จำนวนตัวเลือกที่แท้จริงเป็นเพียงการเตือนล่วงหน้าเพื่อหลีกเลี่ยงการพัฒนาเว็บที่ใช้ Java หากเป็นไปได้หรือไม่?

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