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

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

30
ฉันจะสร้างสตริง Java จากเนื้อหาของไฟล์ได้อย่างไร
ฉันใช้สำนวนข้างล่างมาระยะหนึ่งแล้ว และดูเหมือนจะเป็นเว็บไซต์ที่มีการแพร่กระจายกว้างที่สุดอย่างน้อยก็ในเว็บไซต์ที่ฉันเคยเข้าชม มีวิธีที่ดีกว่า / แตกต่างในการอ่านไฟล์ในสตริงใน Java หรือไม่? private String readFile(String file) throws IOException { BufferedReader reader = new BufferedReader(new FileReader (file)); String line = null; StringBuilder stringBuilder = new StringBuilder(); String ls = System.getProperty("line.separator"); try { while((line = reader.readLine()) != null) { stringBuilder.append(line); stringBuilder.append(ls); } return stringBuilder.toString(); } finally { …
1513 java  string  file  file-io  io 


27
Java 'สำหรับแต่ละ' ทำงานอย่างไร
Наэтотвопросестьответына กองมากเกินнарусском : Какработаетцикл foreach в Java? พิจารณา: List<String> someList = new ArrayList<String>(); // add "monkey", "donkey", "skeleton key" to someList for (String item : someList) { System.out.println(item); } forลูปที่เทียบเท่าจะมีลักษณะอย่างไรโดยไม่ใช้สำหรับแต่ละไวยากรณ์


30
วิธีที่เร็วที่สุดในการตรวจสอบว่าสแควร์รูทของจำนวนเต็มเป็นจำนวนเต็มหรือไม่
ฉันกำลังมองหาวิธีที่เร็วที่สุดในการพิจารณาว่าlongค่าเป็นจตุรัสที่สมบูรณ์แบบหรือไม่ (เช่นสแควร์รูทเป็นจำนวนเต็มอีกตัว): ฉันได้ทำมันเป็นวิธีที่ง่ายโดยใช้ในตัว Math.sqrt() ฟังก์ชั่นแต่ฉันสงสัยว่ามีวิธีที่จะทำได้เร็วขึ้นหรือไม่โดยการ จำกัด ตัวเองเป็นโดเมนจำนวนเต็มเท่านั้น การบำรุงรักษาตารางการค้นหาไม่สามารถใช้งานได้ (เนื่องจากมีจำนวนเต็มประมาณ31.5 2 ซึ่งมีค่าน้อยกว่า 2 63 ) นี่เป็นวิธีที่ง่ายและตรงไปตรงมาที่ฉันทำตอนนี้: public final static boolean isPerfectSquare(long n) { if (n < 0) return false; long tst = (long)(Math.sqrt(n) + 0.5); return tst*tst == n; } หมายเหตุ: ฉันกำลังใช้ฟังก์ชั่นนี้ในหลายปัญหาของProject Euler ดังนั้นไม่มีใครจะต้องรักษารหัสนี้ และการเพิ่มประสิทธิภาพขนาดเล็กแบบนี้สามารถสร้างความแตกต่างได้จริงเนื่องจากส่วนหนึ่งของความท้าทายคือการทำอัลกอริทึมทุกอย่างในเวลาน้อยกว่าหนึ่งนาทีและฟังก์ชั่นนี้จะต้องถูกเรียกว่าหลายล้านครั้งในปัญหาบางอย่าง ฉันได้ลองวิธีแก้ไขปัญหาต่าง ๆ แล้ว: หลังจากการทดสอบอย่างละเอียดถี่ถ้วนฉันพบว่า0.5ไม่จำเป็นต้องเพิ่มผลลัพธ์ของ Math.sqrt () …


30
“ ไม่สามารถค้นหาหรือโหลดคลาสหลัก” หมายความว่าอะไร
ปัญหาทั่วไปที่นักพัฒนา Java ใหม่พบคือโปรแกรมของพวกเขาล้มเหลวในการทำงานพร้อมกับข้อความแสดงข้อผิดพลาด: Could not find or load main class ... สิ่งนี้หมายความว่าอะไรเป็นสาเหตุและคุณควรแก้ไขอย่างไร
1370 java  class  main 


23
Apache Camel คืออะไร
ฉันไม่เข้าใจสิ่งที่อูฐทำ หากคุณสามารถให้คำแนะนำแก่อูฐได้ 101 คำ: มันคืออะไรกันแน่? มันทำงานอย่างไรกับแอปพลิเคชันที่เขียนด้วย Java? มันเป็นสิ่งที่ไปพร้อมกับเซิร์ฟเวอร์หรือไม่ มันเป็นโปรแกรมอิสระหรือไม่? โปรดอธิบายว่าอูฐคืออะไร

7
ทำไมการรันโค้ด Java ในความคิดเห็นที่มีอักขระ Unicode บางตัวอนุญาต
รหัสต่อไปนี้สร้างผลลัพธ์ "Hello World!" (ไม่จริงลองดู) public static void main(String... args) { // The comment below is not a typo. // \u000d System.out.println("Hello World!"); } เหตุผลนี้คือคอมไพเลอร์ Java วิเคราะห์อักขระ Unicode \u000dเป็นบรรทัดใหม่และได้รับการแปลงเป็น: public static void main(String... args) { // The comment below is not a typo. // System.out.println("Hello World!"); } จึงส่งผลให้ความคิดเห็นถูก "ดำเนินการ" ตั้งแต่นี้สามารถใช้เพื่อ "ซ่อน" …
1356 java  unicode  comments 


30
วิธีการปัดเศษทศนิยมเป็นทศนิยมใน Java
สิ่งที่ฉันต้องการคือวิธีการแปลง double เป็น string ซึ่งปัดโดยใช้ half-up method เช่นถ้าทศนิยมที่จะปัดเศษเป็น 5 มันจะปัดเศษเป็นตัวเลขถัดไปเสมอ นี่เป็นวิธีมาตรฐานในการปัดเศษที่คนส่วนใหญ่คาดหวังในสถานการณ์ส่วนใหญ่ ฉันต้องการให้แสดงเฉพาะตัวเลขที่สำคัญเท่านั้น - นั่นคือไม่ควรมีเลขศูนย์ต่อท้าย ฉันรู้วิธีหนึ่งในการทำเช่นนี้คือการใช้String.formatวิธีการ: String.format("%.5g%n", 0.912385); ผลตอบแทน: 0.91239 อันไหนดี แต่มันจะแสดงตัวเลขที่มีทศนิยม 5 ตำแหน่งเสมอแม้ว่ามันจะไม่สำคัญ: String.format("%.5g%n", 0.912300); ผลตอบแทน: 0.91230 วิธีอื่นคือใช้DecimalFormatter: DecimalFormat df = new DecimalFormat("#.#####"); df.format(0.912385); ผลตอบแทน: 0.91238 อย่างไรก็ตามอย่างที่คุณเห็นนี่ใช้การปัดเศษแบบครึ่งคู่ นั่นคือมันจะปัดเศษหากตัวเลขก่อนหน้านี้เป็นเลขคู่ สิ่งที่ฉันต้องการคือ: 0.912385 -> 0.91239 0.912300 -> 0.9123 วิธีที่ดีที่สุดในการบรรลุสิ่งนี้ใน Java คืออะไร?
1259 java  decimal  rounding  digits 

12
ข้อผิดพลาด 'ต้องแทนที่วิธี Superclass' หลังจากนำเข้าโครงการลงใน Eclipse
เมื่อใดก็ตามที่ฉันต้องนำเข้าโครงการของฉันอีกครั้งใน Eclipse (ถ้าฉันติดตั้ง Eclipse อีกครั้งหรือเปลี่ยนตำแหน่งของโครงการ) วิธีการที่แทนที่ของฉันเกือบทั้งหมดจะไม่ได้รับการจัดรูปแบบอย่างถูกต้องทำให้เกิดข้อผิดพลาด: วิธีการนั้นจะต้องแทนที่วิธี superclass มันอาจเป็นเรื่องสำคัญที่จะกล่าวถึงสิ่งนี้กับโครงการ Android ไม่ว่าด้วยเหตุผลใดก็ตามค่าอาร์กิวเมนต์ของวิธีการนั้นไม่ได้บรรจุอยู่เสมอดังนั้นฉันจึงต้องใส่ค่าด้วยตนเอง ตัวอย่างเช่น list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { //These arguments have their correct names public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { } }); จะมีประชากรเริ่มต้นเช่นนี้: list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() { //This methods arguments were not automatically provided public void onCreateContextMenu(ContextMenu arg1, View arg2, ContextMenuInfo …

30
ความแตกต่างระหว่าง wait () และ sleep ()
ความแตกต่างระหว่าง a wait()และsleep()ในเธรดคืออะไร? ฉันเข้าใจหรือไม่ว่าwait()-ing Thread ยังคงอยู่ในโหมดใช้งานและใช้รอบ CPU แต่sleep()-ing ไม่ได้ใช้ CPU รอบใดถูกต้องหรือไม่ เหตุใดเราจึงมีทั้ง wait()และsleep(): การใช้งานของพวกเขาแตกต่างกันในระดับที่ต่ำกว่าอย่างไร

30
การติดตั้ง Android SDK ไม่พบ JDK
ฉันกำลังพยายามติดตั้ง Android SDK บนระบบ Windows 7 x64 ของฉัน jdk-6u23-windows-x64.exeติดตั้งแล้ว แต่การตั้งค่าAndroid SDKปฏิเสธที่จะดำเนินการต่อเพราะไม่พบการติดตั้งJDK นี่เป็นปัญหาที่ทราบหรือไม่? และมีทางออกหรือไม่?
1199 java  android  sdk  windows-7-x64  jdk6 

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