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

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


7
“ การเชื่อมต่ออักขระ” ในตัวระบุ Java คืออะไร
ฉันกำลังอ่านสำหรับ SCJP และฉันมีคำถามเกี่ยวกับสายนี้: ตัวระบุต้องเริ่มต้นด้วยตัวอักษรตัวอักษรสกุลเงิน ($) หรือตัวเชื่อมต่อเช่นขีดล่าง (_) ตัวระบุไม่สามารถเริ่มต้นด้วยตัวเลขได้! มันระบุว่าชื่อตัวระบุที่ถูกต้องสามารถเริ่มต้นด้วยตัวเชื่อมต่อเช่นขีดล่าง ฉันคิดว่าขีดเส้นใต้เป็นตัวเลือกที่ถูกต้องเท่านั้น? มีอักขระเชื่อมต่ออื่นใดอีกบ้าง
208 java  unicode  identifier  scjp 

30
นำเข้าการพึ่งพา Maven ใน IntelliJ IDEA
ฉันมีคำถามเล็กน้อยเกี่ยวกับ IntelliJ IDEA 11 ฉันเพิ่งนำเข้าโครงการจากการโค่นล้ม - เป็นโครงการ maven แต่ฉันมีปัญหาในการอ้างอิงไลบรารี maven เพื่อให้ฉันไม่สามารถรวมการพึ่งพา maven ทั้งหมดโดยอัตโนมัติ - IDEA แสดงข้อผิดพลาดในการพึ่งพาเฉพาะเมื่อฉันเปิดคลาสนั้น / นั่นคือสิ่งที่ฉันได้รับที่นี่: ดังนั้นฉันต้องการเพิ่มการอ้างอิงทั้งหมดโดยอัตโนมัติ - เป็นไปได้หรือฉันต้องผ่านไฟล์คลาสทั้งหมดเพื่อระบุและเพิ่มการพึ่งพา Maven หรือไม่! UPDATE: หลังจากทำการแก้ไขบางอย่างฉันพบวิธีแก้ไขปัญหาของฉันในทางใดทางหนึ่ง นั่นคือสิ่งที่ฉันทำ: แต่ฉันคิดว่าเหตุผลมันจะไม่รวมและตรวจสอบการอ้างอิงใหม่ล่วงหน้าหรือไม่! ... มีการตั้งค่าใด ๆ สำหรับสิ่งนี้ใน intelliJ - การส่งออกโดยอัตโนมัติไปยัง classpath หรือไม่!

7
การปลุกกลอุบายใน Java เกิดขึ้นจริงหรือไม่?
เห็นคำถามที่เกี่ยวข้องกับการล็อคต่าง ๆ และ (เกือบ) มักจะหาคำว่า 'ห่วงเพราะของการปลุกซ้ำ' 1ฉันสงสัยว่ามีใครเคยมีประสบการณ์การปลุกดังกล่าวบ้าง (สมมติว่าเป็นตัวอย่างของฮาร์ดแวร์ / ซอฟต์แวร์ที่เหมาะสม) ฉันรู้ว่าคำว่า 'ปลอม' หมายถึงไม่มีเหตุผลที่ชัดเจน แต่อะไรคือสาเหตุของเหตุการณ์ดังกล่าว ( 1หมายเหตุ: ผมไม่ได้ตั้งคำถามการปฏิบัติวนลูป.) แก้ไข:คำถามที่ผู้ช่วย (สำหรับผู้ที่ชอบตัวอย่างโค้ด): หากฉันมีโปรแกรมต่อไปนี้และฉันเรียกใช้: public class Spurious { public static void main(String[] args) { Lock lock = new ReentrantLock(); Condition cond = lock.newCondition(); lock.lock(); try { try { cond.await(); System.out.println("Spurious wakeup!"); } catch (InterruptedException …


13
แยกตัวเลขจากสตริงใน Java
ฉันมีStringวัตถุJava ฉันต้องการแยกเฉพาะตัวเลขจากมัน ฉันจะให้ตัวอย่าง: "123-456-789" ฉันต้องการ "123456789" มีฟังก์ชั่นห้องสมุดที่แยกตัวเลขเท่านั้นหรือไม่ ขอบคุณสำหรับคำตอบ ก่อนที่ฉันจะลองสิ่งเหล่านี้ฉันต้องรู้ว่าฉันจะต้องติดตั้งห้องสมุดเพิ่มเติมหรือไม่?
207 java  string 

24
Android Eclipse - ไม่พบ * .apk
ฉันรู้ว่าคำถามนี้เคยถูกถามมาก่อนและฉันได้เห็นวิธีแก้ไขปัญหามากมายเหลือเกิน ฉันสามารถสร้าง apk ของฉันได้โดยไม่มีปัญหาจนกว่าข้อผิดพลาดนี้จะเริ่มหมดลง ฉันได้ลองทำความสะอาดโครงการของฉันแล้วลบมันออกจากพื้นที่ทำงานและนำเข้าอีกครั้งโดยลบ "Java Builder" ออกจาก Builders ของฉันสำหรับโครงการสร้างโครงการด้วยตนเองโดยเรียงลำดับเส้นทางการสร้าง java ของฉันใหม่ ฉันไม่มีปัญหาคอมไพเลอร์ที่มองเห็นได้และไม่มีปัญหาในพื้นที่ทำงานของฉัน ฉันเคยประสบปัญหานี้มาก่อนและแก้ไขมันครั้งเดียวโดยการลบโครงการออกจากพื้นที่ทำงานของฉันและนำเข้าอีกครั้งและอีกครั้งที่ฉันแก้ไขได้โดยลบ "Java Builder" ออกจากเส้นทางการสร้าง Java ของฉัน ดูเหมือนจะไม่มีใครทำงานในครั้งนี้ ขณะนี้ฉันมีการตั้งค่าส่วนใหญ่ตั้งค่ากลับเป็นค่าเริ่มต้น (เช่นการตรวจสอบการสร้าง Java อีกครั้ง) ฉันใช้ windows 7 (64 บิต) และใช้ jdk1.6.0_21 ผ่าน Eclipse 3.6 ข้อเสนอแนะใด ๆ จะได้รับการชื่นชมอย่างมากเพราะฉันได้สูญเสียเวลาในการพัฒนาแก้ไขปัญหานี้แล้ว [อัปเดต] สถานที่ของฉันเป็นภาษาอังกฤษและฉันได้ลองลบ debug.keystore, สหรัฐอเมริกาตามที่เกี่ยวข้องกับปัญหา 834
207 java  android  eclipse 

4
เหตุใดคลาส Java จึงคอมไพล์แตกต่างกับบรรทัดว่าง
ฉันมีคลาส Java ต่อไปนี้ public class HelloWorld { public static void main(String []args) { } } เมื่อฉันรวบรวมไฟล์นี้และเรียกใช้ sha256 กับไฟล์คลาสที่ได้รับ 9c8d09e27ea78319ddb85fcf4f8085aa7762b0ab36dc5ba5fd000dccb63960ff HelloWorld.class ต่อไปฉันแก้ไขคลาสและเพิ่มบรรทัดว่างแบบนี้: public class HelloWorld { public static void main(String []args) { } } อีกครั้งฉันรัน sha256 บนผลลัพธ์ที่คาดหวังว่าจะได้ผลลัพธ์เดียวกัน แต่กลับได้ 11f7ad3ad03eb9e0bb7bfa3b97bbe0f17d31194d8d92cc683cfbd7852e2d189f HelloWorld.class ฉันได้อ่านบทความ TutorialsPoint นี้แล้วว่า: บรรทัดที่มีช่องว่างเท่านั้นอาจมีความคิดเห็นเป็นที่รู้จักกันเป็นบรรทัดว่างและ Java ละเว้นทั้งหมด ดังนั้นคำถามของฉันคือเนื่องจาก Java ละเว้นบรรทัดว่างเหตุใด bytecode ที่คอมไพล์จึงแตกต่างกันสำหรับทั้งสองโปรแกรม …

14
ทำไม x == (x = y) ไม่เหมือนกับ (x = y) == x
ลองพิจารณาตัวอย่างต่อไปนี้: class Quirky { public static void main(String[] args) { int x = 1; int y = 3; System.out.println(x == (x = y)); // false x = 1; // reset System.out.println((x = y) == x); // true } } ฉันไม่แน่ใจว่ามีรายการใน Java Language Specification ที่สั่งให้โหลดค่าก่อนหน้าของตัวแปรเพื่อเปรียบเทียบกับด้านขวา (x = y ) ซึ่งควรจะคำนวณตามลำดับโดยนัยโดยวงเล็บ ทำไมนิพจน์แรกถึงประเมินfalseแต่อันดับที่สองประเมินได้trueอย่างไร …

4
e.printStackTrace เทียบเท่าในหลาม
ฉันรู้ว่าprint(e)(โดยที่ e เป็นข้อยกเว้น) พิมพ์ข้อยกเว้นที่เกิดขึ้น แต่ฉันพยายามค้นหา python ที่เทียบเท่าของ Java e.printStackTrace()ที่มีร่องรอยข้อยกเว้นตรงกับบรรทัดที่มันเกิดขึ้นและพิมพ์ร่องรอยทั้งหมดของมัน ใครช่วยกรุณาบอกฉันเทียบเท่าe.printStackTrace()ใน Python?

13
Java“ Virtual Machine” กับ Python“ Interpreter” parlance?
ดูเหมือนว่าเป็นการยากที่จะอ่าน Python "virtual machine" ในขณะที่ใน Java "virtual machine" นั้นถูกใช้งานตลอดเวลา ทั้งตีความรหัสไบต์; ทำไมเรียกหนึ่งเครื่องเสมือนและอื่น ๆ เป็นล่าม
207 java  python  jvm 

16
คุณจะค้นหาคลาสย่อยทั้งหมดของคลาสที่กำหนดใน Java ได้อย่างไร?
มีวิธีการอย่างไรและพยายามค้นหาคลาสย่อยทั้งหมดของคลาสที่กำหนด (หรือผู้พัฒนาระบบทั้งหมดของอินเตอร์เฟสที่กำหนด) ใน Java? ณ ตอนนี้ฉันมีวิธีการทำเช่นนี้ แต่ฉันพบว่ามันค่อนข้างไม่มีประสิทธิภาพ (ที่จะพูดน้อย) วิธีการคือ: รับรายการชื่อคลาสทั้งหมดที่มีอยู่บนเส้นทางคลาส โหลดแต่ละคลาสและทดสอบเพื่อดูว่าเป็นคลาสย่อยหรือตัวดำเนินการของคลาสหรืออินเตอร์เฟสที่ต้องการ ใน Eclipse มีคุณสมบัติที่ดีที่เรียกว่าลำดับชั้นของประเภทที่จัดการเพื่อแสดงสิ่งนี้ได้อย่างมีประสิทธิภาพ วิธีการหนึ่งไปและทำโดยทางโปรแกรม?

11
เกิดอะไรขึ้นเมื่อมีหน่วยความจำไม่เพียงพอที่จะโยน OutOfMemoryError
ฉันทราบว่าวัตถุทุกชิ้นต้องการหน่วยความจำฮีปและการอ้างอิงดั้งเดิมบนสแต็กทั้งหมดต้องใช้หน่วยความจำสแต็ก เมื่อฉันพยายามที่จะสร้างวัตถุบนกองและมีหน่วยความจำไม่เพียงพอที่จะทำเช่นนั้น JVM สร้างjava.lang.OutOfMemoryErrorบนกองและโยนมันมาให้ฉัน โดยปริยายนั่นหมายความว่ามีหน่วยความจำบางส่วนที่สงวนไว้โดย JVM เมื่อเริ่มต้น จะเกิดอะไรขึ้นเมื่อหน่วยความจำที่สงวนไว้นี้จะใช้ขึ้น (มันแน่นอนจะนำมาใช้ขึ้นอ่านการอภิปรายด้านล่าง) และ JVM ไม่ได้มีหน่วยความจำเพียงพอในกองเพื่อสร้างตัวอย่างของjava.lang.OutOfMemoryError ? มันแขวนไหม หรือเขาจะขว้างฉันnullตั้งแต่ไม่มีความทรงจำเกี่ยวกับnewตัวอย่างของ OOM? try { Object o = new Object(); // and operations which require memory (well.. that's like everything) } catch (java.lang.OutOfMemoryError e) { // JVM had insufficient memory to create an instance of java.lang.OutOfMemoryError to …

16
ใน log4j การตรวจสอบ isDebugEnabled ก่อนการบันทึกปรับปรุงประสิทธิภาพหรือไม่
ฉันใช้Log4Jในแอปพลิเคชันของฉันเพื่อบันทึก ก่อนหน้านี้ฉันใช้การโทรดีบั๊กเช่น: ตัวเลือกที่ 1: logger.debug("some debug text"); แต่บางลิงค์แนะนำว่าควรตรวจสอบisDebugEnabled()ก่อนดีกว่าเช่น: ตัวเลือก 2: boolean debugEnabled = logger.isDebugEnabled(); if (debugEnabled) { logger.debug("some debug text"); } ดังนั้นคำถามของฉันคือ " ตัวเลือก 2 ปรับปรุงประสิทธิภาพหรือไม่ " เพราะในกรณีใด ๆ กรอบ Log4J มีการตรวจสอบเดียวกันสำหรับ debugEnabled สำหรับตัวเลือกที่ 2 อาจเป็นประโยชน์ถ้าเราใช้คำสั่ง debug หลายคำสั่งในวิธีการเดียวหรือคลาสที่กรอบไม่จำเป็นต้องเรียกisDebugEnabled()วิธีการหลายครั้ง (ในการโทรแต่ละครั้ง); ในกรณีนี้จะเรียกisDebugEnabled()ใช้เมธอดเพียงครั้งเดียวและหาก Log4J ได้รับการกำหนดค่าให้ดีบั๊กระดับจริง ๆ แล้วมันจะเรียกisDebugEnabled()เมธอดสองครั้ง: ในกรณีที่กำหนดค่าให้กับตัวแปร debugEnabled และ เรียกจริงโดยวิธี logger.debug () …
207 java  logging  log4j 

9
Spring Boot กำหนดค่าและใช้แหล่งข้อมูลสองแห่ง
ฉันจะกำหนดค่าและใช้แหล่งข้อมูลสองแหล่งได้อย่างไร ตัวอย่างเช่นนี่คือสิ่งที่ฉันมีสำหรับแหล่งข้อมูลแรก: application.properties #first db spring.datasource.url = [url] spring.datasource.username = [username] spring.datasource.password = [password] spring.datasource.driverClassName = oracle.jdbc.OracleDriver #second db ... คลาสแอปพลิเคชัน @SpringBootApplication public class SampleApplication { public static void main(String[] args) { SpringApplication.run(SampleApplication.class, args); } } ฉันจะแก้ไขapplication.propertiesเพื่อเพิ่มแหล่งข้อมูลอื่นได้อย่างไร ฉันจะตอบกลับอัตโนมัติเพื่อใช้ที่เก็บข้อมูลอื่นได้อย่างไร

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