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

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

13
C # vs Java Enum (สำหรับผู้ที่เพิ่งเริ่มใช้ C #)
ฉันเคยเขียนโปรแกรมใน Java มาระยะหนึ่งแล้วเพิ่งถูกโยนลงในโปรเจ็กต์ที่เขียนด้วยภาษา C # ทั้งหมด ฉันพยายามที่จะเพิ่มความเร็วใน C # และสังเกตว่า enums ใช้ในหลาย ๆ ที่ในโครงการใหม่ของฉัน แต่จากการมองเห็นครั้งแรก Enums ของ C # ดูเหมือนจะง่ายกว่าการใช้ Java 1.5+ ใครสามารถระบุความแตกต่างระหว่าง C # และ Java enums และวิธีการเอาชนะความแตกต่าง? (ฉันไม่ต้องการที่จะเริ่มสงครามภาษาเปลวไฟฉันแค่อยากรู้วิธีทำบางสิ่งใน C # ที่ฉันเคยทำใน Java) ตัวอย่างเช่นใครบางคนสามารถโพสต์คู่ C # ให้กับตัวอย่างที่เป็นที่นิยมของ Planet ได้หรือไม่? public enum Planet { MERCURY (3.303e+23, 2.4397e6), VENUS (4.869e+24, 6.0518e6), …

9
ทำไมต้องโยน NullPointerException อย่างชัดเจนแทนที่จะปล่อยให้มันเกิดขึ้นเองตามธรรมชาติ?
เมื่ออ่านซอร์สโค้ดของ JDK ฉันพบว่าเป็นเรื่องธรรมดาที่ผู้เขียนจะตรวจสอบพารามิเตอร์ว่าเป็นโมฆะหรือไม่จากนั้นให้โยน NullPointerException () ใหม่ด้วยตนเอง ทำไมพวกเขาทำมัน ฉันคิดว่าไม่จำเป็นต้องทำเช่นนั้นเพราะมันจะโยน NullPointerException ใหม่ () เมื่อเรียกวิธีการใด ๆ (นี่คือซอร์สโค้ดของ HashMap ตัวอย่างเช่น :) public V computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction) { if (remappingFunction == null) throw new NullPointerException(); Node<K,V> e; V oldValue; int hash = hash(key); if ((e = …

5
ทำไมการเปรียบเทียบ == กับ Integer.valueOf (String) จึงให้ผลลัพธ์ที่แตกต่างกันสำหรับ 127 และ 128
ฉันไม่รู้ว่าเพราะเหตุใดบรรทัดโค้ดเหล่านี้จึงส่งกลับค่าที่ต่างกัน: System.out.println(Integer.valueOf("127")==Integer.valueOf("127")); System.out.println(Integer.valueOf("128")==Integer.valueOf("128")); System.out.println(Integer.parseInt("128")==Integer.valueOf("128")); ผลลัพธ์คือ: true false true ทำไมคนแรกถึงกลับมาtrueและคนที่สองกลับมาfalse? มีอะไรที่แตกต่างที่ฉันไม่รู้ระหว่าง127และ128? (แน่นอนฉันรู้ว่า127< 128.) นอกจากนี้ทำไมหนึ่งในสามกลับมาtrue? ฉันได้อ่านคำตอบของคำถามนี้แล้ว แต่ฉันยังไม่เข้าใจว่ามันจะกลับมาได้trueอย่างไรและทำไมโค้ดในบรรทัดที่สองจึงกลับfalseมา
182 java  integer  comparison 


4
การใช้พารามิเตอร์ HeapDumpOnOutOfMemoryError สำหรับดัมพ์ฮีพสำหรับ JBoss
ฉันบอกว่าฉันสามารถเพิ่ม-XX:+HeapDumpOnOutOfMemoryErrorพารามิเตอร์ในตัวเลือกการเริ่มต้น JVM ของฉันไปที่สคริปต์เริ่มต้น JBoss ของฉันเพื่อรับการถ่ายโอนข้อมูลฮีปเมื่อเราได้รับข้อผิดพลาดหน่วยความจำไม่เพียงพอในแอปพลิเคชันของเรา ฉันสงสัยว่าข้อมูลนี้ถูกทิ้งที่ไหน มันเป็นเพียงคอนโซลหรือไฟล์บันทึกบางอย่าง? หากเป็นเพียงคอนโซลจะเกิดอะไรขึ้นถ้าฉันไม่ได้ลงชื่อเข้าใช้เซิร์ฟเวอร์ Unix ผ่านคอนโซล
182 java  jboss  memory-leaks  heap 

10
การประสานเทียบกับล็อค
java.util.concurrentAPI จัดให้มีคลาสที่เรียกว่าLockซึ่งโดยทั่วไปจะเรียงลำดับการควบคุมเพื่อเข้าถึงทรัพยากรที่สำคัญ มันทำให้วิธีการดังกล่าวเป็นและ park()unpark() เราสามารถทำสิ่งที่คล้ายกันถ้าเราสามารถใช้synchronizedคำหลักและการใช้wait()และnotify() notifyAll()วิธีการ ฉันสงสัยว่าหนึ่งในสิ่งเหล่านี้ดีกว่าในการปฏิบัติและทำไม?

13
การแปลงจำนวนเต็มเป็นสตริงด้วยเครื่องหมายจุลภาคเป็นหลัก
ฉันต้องการแปลงจำนวนเต็ม 35634646 เพื่อให้มีค่าเป็นพัน "," ดังนั้นควรเป็น 35,634,646 อะไรจะเป็นวิธีที่รวดเร็วที่สุดในการทำสิ่งนั้น?
182 java  string  integer 

11
การใช้ JMS / message ในโลกแห่งความเป็นจริง? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันเพิ่งอ่าน abit เกี่ยวกับ JMS และ Apache ActiveMQ และสงสัยว่าสิ่งที่ใช้ในโลกแห่งความเป็นจริงมีคนที่นี่ใช้ JMS หรือเทคโนโลยีคิวข้อความที่คล้ายกันหรือไม่
182 java  jms  message-queue 

30
ไม่สามารถระบุตำแหน่ง tools.jar
ฉันกำลังสร้างโครงการใน Java ฉันมีข้อผิดพลาดนี้: Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar ฉันได้ติดตั้ง JDK และโฟลเดอร์: C:\Program Files\Java\jre6\libอยู่ในระบบของฉัน แต่ไฟล์tools.jarไม่อยู่ที่นั่น
182 java  tools.jar 

3
อักขระรูปแบบไม่ถูกต้อง 'T' เมื่อวิเคราะห์สตริงวันที่ไปยัง java.util.Date
ฉันมีสตริงวันที่และฉันต้องการแยกเป็นวันที่ปกติให้ใช้ Java Date API ต่อไปนี้คือรหัสของฉัน: public static void main(String[] args) { String date="2010-10-02T12:23:23Z"; String pattern="yyyy-MM-ddThh:mm:ssZ"; SimpleDateFormat sdf=new SimpleDateFormat(pattern); try { Date d=sdf.parse(date); System.out.println(d.getYear()); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } อย่างไรก็ตามฉันได้รับข้อยกเว้น: java.lang.IllegalArgumentException: Illegal pattern character 'T' ดังนั้นฉันสงสัยว่าฉันต้องแยกสตริงและแยกมันด้วยตนเองหรือไม่ BTW ฉันพยายามเพิ่มอักขระเครื่องหมายคำพูดเดี่ยวที่ด้านใดด้านหนึ่งของ T: String pattern="yyyy-MM-dd'T'hh:mm:ssZ"; มันยังไม่ทำงาน

13
การแปลงสตริงเป็นจำนวนเต็มบน Android
ฉันจะแปลงสตริงเป็นจำนวนเต็มได้อย่างไร ฉันมีกล่องข้อความฉันมีผู้ใช้ป้อนหมายเลขลงใน: EditText et = (EditText) findViewById(R.id.entry1); String hello = et.getText().toString(); helloและความคุ้มค่าที่ได้รับมอบหมายสตริง ฉันต้องการแปลงเป็นจำนวนเต็มเพื่อให้ได้จำนวนที่พิมพ์ มันจะถูกใช้ในภายหลังในรหัส มีวิธีการรับEditTextจำนวนเต็มหรือไม่ นั่นจะข้ามชายกลาง ถ้าไม่ใช่สตริงถึงจำนวนเต็มจะใช้ได้


3
แลมบ์ดานิพจน์สร้างวัตถุบนฮีปทุกครั้งที่ถูกประมวลผลหรือไม่?
เมื่อฉันทำซ้ำคอลเลกชันโดยใช้น้ำตาล syntactic ใหม่ของ Java 8 เช่น myStream.forEach(item -> { // do something useful }); นี่ไม่เทียบเท่ากับตัวอย่าง 'ไวยากรณ์เก่า' ด้านล่างใช่หรือไม่ myStream.forEach(new Consumer<Item>() { @Override public void accept(Item item) { // do something useful } }); สิ่งนี้หมายความว่ามีการสร้างConsumerวัตถุนิรนามใหม่บน heap ทุกครั้งที่ทำซ้ำคอลเลกชันหรือไม่ ใช้พื้นที่ของกองมากเท่าไร ความหมายของประสิทธิภาพการทำงานมีอะไรบ้าง มันหมายความว่าฉันควรใช้รูปแบบเก่าสำหรับลูปเมื่อวนซ้ำโครงสร้างข้อมูลหลายระดับขนาดใหญ่หรือไม่?
182 java  lambda  java-8 

27
วิธีสร้างแฮชคีย์ Facebook Facebook
ฉันไม่เข้าใจกระบวนการนี้เลย ฉันสามารถนำทางไปยังโฟลเดอร์ที่มี keytool ใน Java SDK ได้ แม้ว่าฉันจะได้รับข้อผิดพลาด openssl ไม่ได้รับการยอมรับว่าเป็นคำสั่งภายในหรือภายนอก ปัญหาคือแม้ว่าฉันจะสามารถทำงานได้ฉันจะทำอะไรและทำอะไรต่อไป
182 java  android  facebook 

18
Intellij IDEA Java classes ไม่ได้รวบรวมการบันทึกอัตโนมัติ
เมื่อวานนี้ฉันเปลี่ยนเป็น IntelliJ IDEA จาก Eclipse ฉันกำลังใช้ JRebel กับ WebSphere Server 7 เช่นกัน ตอนนี้ดูเหมือนว่าทุกอย่างจะทำงานได้ดียกเว้นว่าเมื่อฉันแก้ไขไฟล์ Java และกดบันทึก IntelliJ จะไม่รวบรวมไฟล์อีกครั้งเพื่อให้ JRebel หยิบมันขึ้นมา คุณลักษณะ " สร้างโดยอัตโนมัติ " ของEclipse สามารถแก้ไขปัญหานี้ได้ ในความคิด IntelliJ ผมต้องตีCTRL+ SHIFT+ 9รวบรวมอีกครั้งระดับที่เกี่ยวข้องสำหรับ JRebel หยิบมันขึ้นมา หากมีการเปลี่ยนแปลงในสองไฟล์ฉันจะต้องทำสิ่งนี้กับแต่ละไฟล์และเนื่องจาก IntelliJ ใช้กลไกการบันทึกทั้งหมดมันค่อนข้างยากที่จะรู้ว่าจะต้องคอมไพล์ใหม่ด้วยตนเองซึ่งฉันไม่ได้สนใจทำเช่นนั้น ไม่มีวิธีที่จะทำให้ IntelliJ ทำสิ่งนี้ด้วยตัวเองได้หรือไม่?

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