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

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

30
คุณสมบัติที่ซ่อนอยู่ของ Eclipse [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน9 ปีที่ผ่านมา ล็อค คำถามนี้และคำตอบถูกล็อกเนื่องจากคำถามไม่ตรงประเด็น แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ยังไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ เอาล่ะอาจเป็นคำถามง่อย ๆ แต่ทุกคนใช้สิ่งเหล่านี้ไม่เหมือนกัน อะไรคือตัวช่วยประหยัดเวลาที่ดีที่สุดสำหรับ IDE นี้ ทอม
97 java  eclipse  ide 

14
ทำไมต้องหลีกเลี่ยงการหล่อ? [ปิด]
ปิด . คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เน้นไปที่ปัญหาเดียวโดยแก้ไขโพสต์นี้เท่านั้น ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ โดยทั่วไปฉันจะหลีกเลี่ยงการแคสต์ประเภทให้มากที่สุดเนื่องจากฉันรู้สึกว่ามีการฝึกฝนการเขียนโค้ดที่ไม่ดีและอาจได้รับโทษด้านประสิทธิภาพ แต่ถ้ามีคนขอให้ฉันอธิบายว่าทำไมถึงเป็นเช่นนั้นฉันก็คงมองพวกเขาเหมือนกวางในไฟหน้า แล้วทำไม / เมื่อไหร่หล่อไม่ดี? เป็นเรื่องทั่วไปสำหรับ java, c #, c ++ หรือทุกสภาพแวดล้อมรันไทม์ที่แตกต่างกันจัดการกับเงื่อนไขของมันเองหรือไม่? ยินดีต้อนรับเฉพาะสำหรับภาษาใด ๆ เช่นทำไมภาษา c ++ จึงไม่ดี
97 c#  java  c++  casting 

22
อัลกอริทึมสำหรับการกำหนดเกม Tic Tac Toe Over
ฉันได้เขียนเกม tic-tac-toe ใน Java และวิธีการปัจจุบันของฉันในการกำหนดจุดสิ้นสุดของบัญชีเกมสำหรับสถานการณ์ที่เป็นไปได้ต่อไปนี้สำหรับการจบเกม: กระดานเต็มแล้วและยังไม่มีการประกาศผู้ชนะ: เกมเสมอกัน ครอสได้รับชัยชนะ Circle ได้รับรางวัล น่าเสียดายที่ในการทำเช่นนั้นจะอ่านชุดของสถานการณ์เหล่านี้ที่กำหนดไว้ล่วงหน้าจากตาราง สิ่งนี้ไม่ได้แย่เสมอไปเมื่อพิจารณาว่ามีช่องว่างเพียง 9 ช่องบนกระดานดังนั้นตารางจึงค่อนข้างเล็ก แต่มีวิธีอัลกอริทึมที่ดีกว่าในการพิจารณาว่าเกมจบลงหรือไม่? การตัดสินว่าใครได้รับรางวัลหรือไม่เป็นเนื้อของปัญหาเนื่องจากการตรวจสอบว่าช่องว่าง 9 ช่องเต็มเป็นเรื่องเล็กน้อยหรือไม่ วิธีตารางอาจเป็นวิธีแก้ปัญหา แต่ถ้าไม่คืออะไร? แล้วถ้าบอร์ดไม่ได้ขนาดn=9ล่ะ? อะไรถ้ามันถูกคณะกรรมการที่มีขนาดใหญ่, การพูดn=16, n=25และอื่น ๆ ที่ก่อให้เกิดจำนวนรายการที่วางไว้อย่างต่อเนื่องที่จะชนะจะเป็นx=4, x=5etc? อัลกอริทึมทั่วไปที่จะใช้สำหรับทุกคนn = { 9, 16, 25, 36 ... }?

14
ไม่สามารถนำเข้าโครงการ Gradle ใหม่: ไม่พบการแก้ไข Build Tools * .0.0
เมื่อฉันบูต Android Studio และเลือก "โครงการใหม่ ... " และดำเนินการสร้างโครงการใหม่ฉันได้รับข้อผิดพลาดป๊อปอัปนี้: ไม่สามารถนำเข้าโปรเจ็กต์ Gradle ใหม่: ไม่พบการแก้ไข Build Tools 17.0.0 ดูบันทึก IDE สำหรับรายละเอียดเพิ่มเติม (วิธีใช้ | แสดงบันทึก) ฉันชอบที่จะปรึกษาบันทึก IDE แต่ฉันไม่สามารถเข้าถึงแอปพลิเคชันเพื่อทำอะไรได้มากมาย ฉันได้ตรวจสอบการตั้งค่าหลายครั้งเพื่อดูว่าฉันสามารถกำหนดเส้นทางสำหรับ Build Tools ได้หรือไม่ แต่ฉันไม่พบอะไรมากนัก ฉันจะแก้ไขปัญหานี้ได้อย่างไรหรือฉันจะเข้าสู่แอปพลิเคชันโดยไม่ต้องเปิดโครงการได้อย่างไรอย่างน้อยฉันก็สามารถดูบันทึกได้

6
แทนที่ String ด้วยอีกอันใน java
ฟังก์ชันใดที่สามารถแทนที่สตริงด้วยสตริงอื่นได้ ตัวอย่าง # 1: จะแทนที่"HelloBrother"ด้วย"Brother"อะไร? ตัวอย่าง # 2: จะแทนที่"JAVAISBEST"ด้วย"BEST"อะไร?
97 java  string 

9
ความเข้ากันได้ของ Java 32 บิตเทียบกับ 64 บิต
โค้ด Java ที่สร้างและคอมไพล์เทียบกับ JDK 32 บิตเป็นโค้ดไบต์ 32 บิตทำงานใน JVM 64 บิตหรือไม่ หรือ JVM 64 บิตต้องการรหัส 64 บิตไบต์? เพื่อให้รายละเอียดเพิ่มเติมเล็กน้อยฉันมีโค้ดที่ทำงานในสภาพแวดล้อม Solaris ที่ใช้ JVM 32 บิต แต่ตอนนี้ฉันได้รับปัญหาหลังจากอัปเกรด JDK และ Weblogic Server เป็น 64 บิต

3
Java เป็น Clojure เขียนใหม่
ฉันเพิ่งถูก บริษัท ขอให้เขียนแอปพลิเคชัน Java ขนาดใหญ่ (50,000 บรรทัดเดียว) ใหม่ (เว็บแอปที่ใช้ JSP และ servlets) ใน Clojure มีใครมีคำแนะนำเกี่ยวกับสิ่งที่ฉันควรระวังอีกบ้าง? โปรดจำไว้ว่าฉันรู้จักทั้ง Java และ Clojure ค่อนข้างดี อัปเดต ฉันเขียนใหม่และเริ่มผลิต มันค่อนข้างแปลกเพราะการรีไรท์จบลงเร็วมากจนเสร็จภายใน 6 สัปดาห์ เนื่องจากไม่จำเป็นต้องมีฟังก์ชั่นการใช้งานจำนวนมาก แต่ก็จบลงด้วย Clojure 3000 บรรทัด ฉันได้ยินว่าพวกเขามีความสุขกับระบบและมันทำในสิ่งที่พวกเขาต้องการ ข้อเสียเพียงอย่างเดียวคือผู้ชายที่ดูแลระบบต้องเรียนรู้ Clojure ตั้งแต่เริ่มต้นและเขาก็ถูกลากเข้าไปเตะและกรีดร้อง ฉันได้รับโทรศัพท์จากเขาเมื่อวันก่อนบอกว่าเขารัก Lisp ตอนนี้ .. ตลกดี :) นอกจากนี้ฉันควรพูดถึง Vaadin ให้ดี การใช้ Vaadin อาจจะช่วยประหยัดเวลาได้มากและความสั้นของโค้ดเหมือนกับที่ Clojure ทำ .. Vaadin …
97 java  clojure  vaadin 

5
Eclipse: เปิดใช้งานการยืนยัน
ฉันใช้ Eclipse Galileo ฉันจะเปิดใช้งานการยืนยันใน Eclipse ได้อย่างไร ตามที่ไซต์อื่นแนะนำฉันได้ลองเพิ่มอาร์กิวเมนต์: -ea. ฉันได้ลองเปลี่ยนระดับการปฏิบัติตามข้อกำหนดของคอมไพเลอร์เป็น1.4. คำแนะนำเหล่านั้นไม่ได้ผล

11
ประสิทธิภาพของการกลับมาก่อนกำหนดในฟังก์ชัน
นี่เป็นสถานการณ์ที่ฉันพบบ่อยในฐานะโปรแกรมเมอร์ที่ไม่มีประสบการณ์และฉันสงสัยว่าโดยเฉพาะอย่างยิ่งสำหรับโครงการที่มีความทะเยอทะยานและใช้ความเร็วสูงของฉันฉันกำลังพยายามเพิ่มประสิทธิภาพ สำหรับภาษาหลัก ๆ เช่น C (C, objC, C ++, Java, C # ฯลฯ ) และคอมไพเลอร์ตามปกติฟังก์ชันทั้งสองนี้จะทำงานได้อย่างมีประสิทธิภาพหรือไม่ มีความแตกต่างในโค้ดที่คอมไพล์หรือไม่? void foo1(bool flag) { if (flag) { //Do stuff return; } //Do different stuff } void foo2(bool flag) { if (flag) { //Do stuff } else { //Do different stuff } } โดยทั่วไปแล้วจะมีโบนัส / …

10
แปลง float เป็นสองเท่าโดยไม่สูญเสียความแม่นยำ
ฉันมีลูกลอยดั้งเดิมและฉันต้องการเป็นคู่ดั้งเดิม เพียงแค่การลอยตัวเป็นสองเท่าทำให้ฉันมีความแม่นยำเป็นพิเศษ ตัวอย่างเช่น: float temp = 14009.35F; System.out.println(Float.toString(temp)); // Prints 14009.35 System.out.println(Double.toString((double)temp)); // Prints 14009.349609375 อย่างไรก็ตามหากแทนที่จะทำการแคสต์ฉันจะส่งออก float เป็นสตริงและแยกวิเคราะห์สตริงเป็นคู่ฉันจะได้สิ่งที่ต้องการ System.out.println(Double.toString(Double.parseDouble(Float.toString(temp)))); // Prints 14009.35 มีวิธีที่ดีกว่าการไปที่ String และย้อนกลับหรือไม่?

3
กำลังอ่าน InputStream เป็น UTF-8
ฉันพยายามอ่านจากtext/plainไฟล์ทางอินเทอร์เน็ตทีละบรรทัด รหัสที่ฉันมีตอนนี้คือ: URL url = new URL("http://kuehldesign.net/test.txt"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); LinkedList<String> lines = new LinkedList(); String readLine; while ((readLine = in.readLine()) != null) { lines.add(readLine); } for (String line : lines) { out.println("> " + line); } ไฟล์test.txtมี¡Hélló!ซึ่งฉันใช้เพื่อทดสอบการเข้ารหัส เมื่อผมตรวจสอบOutputStream( out) > ¬°H√©ll√≥!ผมเห็นว่ามันเป็น ฉันไม่เชื่อว่านี่เป็นปัญหาOutputStreamเนื่องจากฉันสามารถทำได้out.println("é");โดยไม่มีปัญหา มีแนวคิดในการอ่านแบบInputStreamUTF-8 หรือไม่? ขอบคุณ!

9
เหตุใด i ++ จึงไม่ใช่ปรมาณู
เหตุใดi++อะตอมจึงไม่อยู่ใน Java เพื่อให้ลึกลงไปอีกนิดใน Java ฉันพยายามนับความถี่ในการดำเนินการลูปในเธรด ดังนั้นฉันจึงใช้ไฟล์ private static int total = 0; ในคลาสหลัก ฉันมีสองกระทู้ หัวข้อ 1: พิมพ์ System.out.println("Hello from Thread 1!"); หัวข้อ 2: พิมพ์ System.out.println("Hello from Thread 2!"); และฉันนับบรรทัดที่พิมพ์ด้วยเธรด 1 และเธรด 2 แต่บรรทัดของเธรด 1 + บรรทัดของเธรด 2 ไม่ตรงกับจำนวนบรรทัดทั้งหมดที่พิมพ์ออกมา นี่คือรหัสของฉัน: import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.logging.Level; import java.util.logging.Logger; public class Test …


4
ความแตกต่างระหว่าง ProcessBuilder และ Runtime.exec ()
ฉันกำลังพยายามเรียกใช้คำสั่งภายนอกจากรหัส java แต่มีความแตกต่างที่ฉันสังเกตเห็นระหว่างRuntime.getRuntime().exec(...)และnew ProcessBuilder(...).start(). เมื่อใช้Runtime: Process p = Runtime.getRuntime().exec(installation_path + uninstall_path + uninstall_command + uninstall_arguments); p.waitFor(); exitValue คือ 0 และคำสั่งถูกยกเลิกตกลง อย่างไรก็ตามด้วยProcessBuilder: Process p = (new ProcessBuilder(installation_path + uninstall_path + uninstall_command, uninstall_arguments)).start(); p.waitFor(); ค่าออกคือ 1001 และคำสั่งจะสิ้นสุดตรงกลางแม้ว่าจะwaitForส่งคืน สิ่งที่ฉันควรทำอย่างไรเพื่อแก้ไขปัญหาด้วยProcessBuilder?

6
Handler เป็นนามธรรมไม่สามารถสร้างอินสแตนซ์ได้
ฉันกำลังพยายามใช้Handlerแอปในแอปของฉัน แต่เมื่อฉันยกตัวอย่างเช่นนี้: Handler handler = new Handler(); ฉันได้รับข้อผิดพลาดต่อไปนี้ Gradle: error: Handler is abstract; cannot be instantiated และเมื่อฉันตรวจสอบวิธีแก้ปัญหาก็ขอให้ฉันใช้วิธีเหล่านี้: Handler handler = new Handler() { @Override public void close() { } @Override public void flush() { } @Override public void publish(LogRecord record) { } }; ฉันไม่เคยใช้มาHandlersก่อนและฉันใช้มันเพื่อเรียกใช้เมธอดหลังจากล่าช้าไปบ้าง เพื่อให้บรรลุสิ่งนั้นฉันได้ใช้: handler.postDelayed(new Runnable() { @Override public …

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