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

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



11
สตริงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เป็นคีย์ HashMap
ฉันต้องการใช้สตริงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เป็นคีย์ HashMap ด้วยเหตุผลดังต่อไปนี้ ในระหว่างการเริ่มต้นโปรแกรมของฉันสร้าง HashMap ด้วย String ที่ผู้ใช้กำหนด ขณะประมวลผลเหตุการณ์ (ปริมาณการใช้เครือข่ายในกรณีของฉัน) ฉันอาจได้รับ String ในกรณีอื่น แต่ฉันควรจะสามารถค้นหา <key, value>จาก HashMap โดยไม่สนใจกรณีที่ฉันได้รับจากปริมาณการใช้งาน ฉันได้ทำตามวิธีนี้แล้ว CaseInsensitiveString.java public final class CaseInsensitiveString { private String s; public CaseInsensitiveString(String s) { if (s == null) throw new NullPointerException(); this.s = s; } public boolean equals(Object o) { return o …

9
การหาคำอธิบายที่ชัดเจนเกี่ยวกับความขัดแย้งที่เห็นได้ชัดเกี่ยวกับภาษาที่พิมพ์อย่างอ่อน
ฉันคิดว่าฉันเข้าใจการพิมพ์ที่รัดกุมแต่ทุกครั้งที่ฉันมองหาตัวอย่างสำหรับการพิมพ์ที่อ่อนแอฉันจะพบตัวอย่างของภาษาการเขียนโปรแกรมที่บังคับ / แปลงชนิดโดยอัตโนมัติ ตัวอย่างเช่นในบทความนี้ชื่อTyping: Strong vs. Weak, Static vs. Dynamicบอกว่า Python นั้นถูกพิมพ์อย่างมากเพราะคุณได้รับการยกเว้นถ้าคุณพยายามที่จะ: หลาม 1 + "1" Traceback (most recent call last): File "", line 1, in ? TypeError: unsupported operand type(s) for +: 'int' and 'str' อย่างไรก็ตามสิ่งดังกล่าวเป็นไปได้ใน Java และใน C # และเราไม่พิจารณาว่าพวกเขาพิมพ์เพียงเล็กน้อยเพื่อสิ่งนั้น ชวา int a = 10; String b = …
178 c#  java  python  perl  weakly-typed 

8
Spring AOP กับ AspectJ
ฉันอยู่ภายใต้การแสดงผลที่ Spring AOP ใช้ดีที่สุดสำหรับงานเฉพาะแอปพลิเคชันเช่นความปลอดภัยการบันทึกธุรกรรม ฯลฯ เนื่องจากใช้หมายเหตุประกอบ Java5 ที่กำหนดเองเป็นเฟรมเวิร์ก อย่างไรก็ตาม AspectJ ดูเหมือนจะเป็นมิตรกับรูปแบบการออกแบบที่ฉลาดกว่า ทุกคนสามารถเน้นข้อดีและข้อเสียต่าง ๆ ของการใช้ Spring AOP กับ AspectJ ในแอปพลิเคชัน Spring ได้หรือไม่?

11
เหตุผลที่ดีที่จะห้ามการสืบทอดใน Java?
มีเหตุผลอะไรที่ดีที่จะห้ามการสืบทอดใน Java เช่นโดยใช้คลาสสุดท้ายหรือคลาสที่ใช้คอนสตรัคเตอร์แบบไม่มีพารามิเตอร์ตัวเดียว? อะไรคือเหตุผลที่ดีในการทำให้วิธีการเป็นที่สิ้นสุด?
178 java  inheritance  final 

7
เรียกใช้กับพารามิเตอร์ได้หรือไม่
ฉันต้องการ "Runnable ที่ยอมรับพารามิเตอร์" แม้ว่าฉันรู้ว่า runnable ดังกล่าวไม่มีอยู่จริง สิ่งนี้อาจชี้ไปที่ข้อบกพร่องพื้นฐานในการออกแบบแอพของฉันและ / หรือบล็อกจิตในสมองที่เหนื่อยล้าของฉันดังนั้นฉันหวังว่าจะได้รับคำแนะนำเกี่ยวกับวิธีการทำสิ่งต่อไปนี้โดยไม่ละเมิดหลักการพื้นฐานของ OO: private Runnable mOneShotTask = new Runnable(String str) { public void run(String str) { someFunc(str); } }; ความคิดวิธีการทำสิ่งที่ต้องการข้างต้น?
178 java  runnable 



5
การเพิ่ม BigDecimals โดยใช้ Streams
ฉันมีคอลเลกชันของ BigDecimals (ในตัวอย่างนี้กLinkedList) ที่ฉันต้องการเพิ่มเข้าด้วยกัน เป็นไปได้ไหมที่จะใช้สตรีมสำหรับสิ่งนี้ ฉันสังเกตเห็นว่าStreamห้องเรียนมีหลายวิธี Stream::mapToInt Stream::mapToDouble Stream::mapToLong ซึ่งแต่ละsum()วิธีมีวิธีที่สะดวก แต่อย่างที่เรารู้floatและdoubleเลขคณิตเป็นความคิดที่เลว ดังนั้นมีวิธีที่สะดวกในการสรุป BigDecimals หรือไม่ นี่คือรหัสที่ฉันมี public static void main(String[] args) { LinkedList<BigDecimal> values = new LinkedList<>(); values.add(BigDecimal.valueOf(.1)); values.add(BigDecimal.valueOf(1.1)); values.add(BigDecimal.valueOf(2.1)); values.add(BigDecimal.valueOf(.1)); // Classical Java approach BigDecimal sum = BigDecimal.ZERO; for(BigDecimal value : values) { System.out.println(value); sum = sum.add(value); } System.out.println("Sum = …

19
ข้อ จำกัด การเข้าถึง: ประเภท 'แอปพลิเคชัน' ไม่ใช่ API (ข้อ จำกัด ในไลบรารีที่จำเป็น rt.jar)
นี่คือรหัส: package mscontroller; import javax.swing.*; import com.apple.eawt.Application; public class Main { public static void main(String[] args) { Application app = new Application(); app.setEnabledAboutMenu(true); AMEListener listener = new AMEListener(); app.addApplicationListener(listener); JFrame mainFrame = new JFrame("Application Menu Example"); mainFrame.setSize(500, 500); mainFrame.setVisible(true); } } นี่คือข้อผิดพลาด: Exception in thread "main" java.lang.Error: Unresolved compilation problems: …
178 java  eclipse  macos  jar 

6
การนำ Singleton ไปใช้กับ Enum (ใน Java)
ฉันได้อ่านว่ามันเป็นไปได้ที่จะนำไปใช้Singletonใน Java โดยใช้Enumเช่น: public enum MySingleton { INSTANCE; } แต่ข้างต้นทำงานอย่างไร โดยเฉพาะObjectจะต้องมีการยกตัวอย่าง ที่นี่วิธีMySingletonการยกตัวอย่าง? ใครกำลังทำnew MySingleton()อะไร

3
การระบุเวอร์ชัน java ใน maven - ความแตกต่างระหว่างคุณสมบัติและปลั๊กอินคอมไพเลอร์
ฉันไม่ได้มีประสบการณ์เกี่ยวกับ Maven มากและในขณะที่การทดสอบกับโครงการหลายโมดูลฉันเริ่มสงสัยว่าฉันจะระบุรุ่น Java สำหรับโมดูลลูกทั้งหมดของฉันใน parent maven pom ได้อย่างไร จนถึงวันนี้ฉันใช้เพียง: <properties> <java.version>1.8</java.version> </properties> แต่เมื่อทำการวิจัยพบว่าคุณยังสามารถระบุรุ่น java ในปลั๊กอินคอมไพเลอร์ maven เช่นนั้น: <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> จากนั้นใส่สิ่งนี้ลงในแท็กการจัดการปลั๊กอินเพื่อเปิดใช้งานการใช้งานลูกปอม ดังนั้นคำถามแรกคือความแตกต่างระหว่างการตั้งค่าเวอร์ชันจาวาในคุณสมบัติและในปลั๊กอินคอมไพเลอร์ maven คืออะไร? ฉันไม่พบคำตอบที่ชัดเจน แต่ในระหว่างการวิจัยฉันพบว่าคุณยังสามารถระบุเวอร์ชันจาวาด้วยวิธีนี้: <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> ซึ่งแนะนำให้คอมไพเลอร์ปลั๊กอินมีแม้ว่าฉันไม่ชัดเจนประกาศ กำลังรันเอาต์พุตแพ็กเกจ mvn ด้วย maven-compiler-plugin:3.1:compile (default-compile) @ testproj --- และปลั๊กอินอื่น ๆ ที่ฉันไม่ได้ประกาศ ดังนั้นปลั๊กอินเหล่านั้นจึงเป็นค่าเริ่มต้นส่วนที่ซ่อนอยู่ของ …

8
วิธีการตั้งค่า -source 1.7 ใน Android Studio และ Gradle
ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อพยายามรวบรวมโครงการของฉันใน Android Studio: Gradle: error: diamond operator is not supported in -source 1.6 ฉันมี 1.7 ชุดเป็นเป้าหมายในการกำหนดลักษณะโครงการทั้งหมดที่ฉันพบ เส้นทางที่แสดงใน SDK โครงการภายใต้ 1.7 SDK นั้นเป็นเส้นทางที่ถูกต้องในการติดตั้ง Java 1.7 แม้ตอนที่ฉันเรียกใช้ java -version ในเทอร์มินัลมันก็บอกฉันว่าฉันกำลังรันบน java 1.7 ฉันได้ลองตั้งค่าตัวแปร env JAVA_HOME เป็น: /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home ข้อผิดพลาดจะไม่หายไป ฉันจะกำจัดข้อผิดพลาดได้อย่างไร

5
เหตุใดจึงไม่มี GIL ใน Java Virtual Machine ทำไมไพ ธ อนถึงต้องการตัวแย่?
ฉันหวังว่าบางคนสามารถให้ข้อมูลเชิงลึกเกี่ยวกับสิ่งที่แตกต่างกันโดยพื้นฐานเกี่ยวกับ Java Virtual Machine ที่อนุญาตให้ใช้เธรดได้อย่างดีโดยไม่จำเป็นต้องใช้ Global Interpreter Lock (GIL) ในขณะที่ Python จำเป็นต้องมีความชั่วร้าย
177 java  python  multithreading  jvm  gil 

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