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

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

3
เมื่อใดที่เราควรใช้อินเตอร์เฟซแบบอนุกรม
public class Contact implements Serializable { private String name; private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } } ฉันควรใช้Serializableส่วนต่อประสานเมื่อใด ทำไมเราทำเช่นนั้น? มันให้ข้อดีหรือความปลอดภัยหรือไม่?



12
การอ่าน Android จากสตรีมอินพุตอย่างมีประสิทธิภาพ
ฉันกำลังสร้าง HTTP รับคำขอไปยังเว็บไซต์สำหรับแอปพลิเคชัน Android ที่ฉันกำลังทำ ฉันใช้ DefaultHttpClient และใช้ HttpGet เพื่อออกคำขอ ฉันได้รับการตอบสนองเอนทิตีและจากนี้รับวัตถุ InputStream สำหรับรับ html ของหน้า จากนั้นฉันจะวนรอบการตอบกลับโดยทำดังนี้: BufferedReader r = new BufferedReader(new InputStreamReader(inputStream)); String x = ""; x = r.readLine(); String total = ""; while(x!= null){ total += x; x = r.readLine(); } อย่างไรก็ตามเรื่องนี้ช้าลงอย่างน่ากลัว มันไม่มีประสิทธิภาพไหม? ฉันไม่ได้โหลดหน้าเว็บขนาดใหญ่ - www.cokezone.co.ukดังนั้นขนาดไฟล์ไม่ใหญ่ มีวิธีที่ดีกว่าในการทำเช่นนี้? ขอบคุณ แอนดี้

11
อาร์เรย์ Java String: มีวิธีการขนาดหรือไม่
ฉันมาจากพื้นหลัง php และใน php มีarray_size()ฟังก์ชั่นที่จะบอกคุณว่ามีองค์ประกอบจำนวนเท่าใดในอาร์เรย์ที่ใช้ มีวิธีการที่คล้ายกันสำหรับString[]อาร์เรย์หรือไม่? ขอบคุณ
152 java  arrays  string 

6
log4j vs logback [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ เรากำลังใช้ log4j ที่อยู่เบื้องหลังเสื้อคลุมตัวเอง เราวางแผนที่จะใช้คุณสมบัติอื่น ๆ อีกมากมายในตอนนี้ เราควรอัพเดทเป็น logback หรือไม่? (ฉันหมายถึงกรอบไม่ใช่ซุ้มเช่น SLF4J)
152 java  logging  log4j  logback 

11
จะส่ง stacktrace ไปยัง log4j ได้อย่างไร?
สมมติว่าคุณตรวจพบข้อยกเว้นและรับสิ่งต่อไปนี้ในเอาต์พุตมาตรฐาน (เช่นพูดคอนโซล) หากคุณทำe.printStackTrace () : java.io.FileNotFoundException: so.txt at java.io.FileInputStream.<init>(FileInputStream.java) at ExTest.readMyFile(ExTest.java:19) at ExTest.main(ExTest.java:7) ตอนนี้ฉันต้องการส่งสิ่งนี้แทนคนตัดไม้เช่น, พูด, log4j เพื่อรับสิ่งต่อไปนี้: 31947 [AWT-EventQueue-0] ERROR Java.io.FileNotFoundException: so.txt 32204 [AWT-EventQueue-0] ERROR at java.io.FileInputStream.<init>(FileInputStream.java) 32235 [AWT-EventQueue-0] ERROR at ExTest.readMyFile(ExTest.java:19) 32370 [AWT-EventQueue-0] ERROR at ExTest.main(ExTest.java:7) ฉันจะทำสิ่งนี้ได้อย่างไร try { ... } catch (Exception e) { final String s; ... …

5
ความสับสนของ JUnit: ใช้ 'ขยาย TestCase' หรือ '@Test' หรือไม่
ฉันพบการใช้งานที่เหมาะสม (หรืออย่างน้อยเอกสาร) ของ JUnit ทำให้เกิดความสับสนมาก คำถามนี้ทำหน้าที่เป็นข้อมูลอ้างอิงในอนาคตและเป็นคำถามจริง หากฉันเข้าใจถูกต้องมีสองวิธีหลักในการสร้างและเรียกใช้การทดสอบ JUnit: วิธี A (JUnit 3 สไตล์):สร้างคลาสที่ขยาย TestCase testและเริ่มวิธีการทดสอบที่มีคำว่า เมื่อรันคลาสเป็น JUnit Test (ใน Eclipse) วิธีการทั้งหมดที่เริ่มต้นด้วยคำtestจะถูกเรียกใช้โดยอัตโนมัติ import junit.framework.TestCase; public class DummyTestA extends TestCase { public void testSum() { int a = 5; int b = 10; int result = a + b; assertEquals(15, result); } …

5
ทำไม int i = 1024 * 1024 * 1024 * 1024 คอมไพล์โดยไม่มีข้อผิดพลาด?
ขีด จำกัด ของintคือจาก -2147483648 ถึง 2147483647 ถ้าฉันใส่ int i = 2147483648; จากนั้น Eclipse จะแจ้งให้ขีดเส้นใต้สีแดงภายใต้ "2147483648" แต่ถ้าฉันทำสิ่งนี้: int i = 1024 * 1024 * 1024 * 1024; มันจะรวบรวมดี public class Test { public static void main(String[] args) { int i = 2147483648; // error int j = 1024 * 1024 * …
152 java  int 

9
วิธีจับคู่ varargs ใน Mockito อย่างถูกต้อง
ฉันพยายามจำลองวิธีด้วยพารามิเตอร์ vararg โดยใช้ Mockito: interface A { B b(int x, int y, C... c); } A a = mock(A.class); B b = mock(B.class); when(a.b(anyInt(), anyInt(), any(C[].class))).thenReturn(b); assertEquals(b, a.b(1, 2)); สิ่งนี้ใช้ไม่ได้อย่างไรก็ตามถ้าฉันทำสิ่งนี้แทน: when(a.b(anyInt(), anyInt())).thenReturn(b); assertEquals(b, a.b(1, 2)); ใช้งานได้แม้ว่าฉันจะไม่ได้โต้แย้งอาร์กิวเมนต์ varargs ทั้งหมดเมื่อทำการขัดวิธี เบาะแสใด ๆ

3
ทำไมการเพิ่ม 0.1 หลาย ๆ ครั้งจึงไม่สูญเสีย
ฉันรู้ว่า0.1เลขทศนิยมไม่สามารถแสดงว่ามีจำนวนไบนารี จำกัด ( คำอธิบาย ) ดังนั้นจะสูญเสียบางอย่างแม่นยำและจะไม่ตรงdouble n = 0.1 0.1บนมืออื่น ๆสามารถแสดงว่าเพราะมันเป็น0.50.5 = 1/2 = 0.1b ต้องบอกว่ามันเป็นที่เข้าใจว่าการเพิ่ม0.1 สามครั้งจะไม่ให้0.3รหัสดังต่อไปนี้false: double sum = 0, d = 0.1; for (int i = 0; i < 3; i++) sum += d; System.out.println(sum == 0.3); // Prints false, OK แต่แล้วการเพิ่ม0.1 ห้าครั้งจะให้ได้0.5อย่างไร พิมพ์รหัสต่อไปนี้true: double sum = 0, …

7
Java: Integer เท่ากับ vs. ==
ในฐานะของ Java 1.5 คุณสามารถแลกเปลี่ยนIntegerกับintสถานการณ์ได้มากมาย อย่างไรก็ตามฉันพบข้อบกพร่องที่อาจเกิดขึ้นในรหัสของฉันที่ทำให้ฉันประหลาดใจเล็กน้อย รหัสต่อไปนี้: Integer cdiCt = ...; Integer cdsCt = ...; ... if (cdiCt != null && cdsCt != null && cdiCt != cdsCt) mismatch = true; ดูเหมือนว่าจะตั้งค่าไม่ตรงกันอย่างไม่ถูกต้องเมื่อค่าเท่ากันแม้ว่าฉันจะไม่สามารถระบุได้ภายใต้สถานการณ์ใด ฉันตั้งเบรกพอยต์ใน Eclipse และเห็นว่าIntegerค่าทั้ง 137 และฉันตรวจสอบการแสดงออกบูลีนและมันบอกว่ามันเป็นเท็จ แต่เมื่อฉันก้าวข้ามมันก็ตั้งค่าไม่ตรงกันเป็นจริง การเปลี่ยนเงื่อนไขเป็น: if (cdiCt != null && cdsCt != null && !cdiCt.equals(cdsCt)) แก้ไขปัญหา มีใครเล่าให้ฟังว่าทำไมสิ่งนี้ถึงเกิดขึ้นได้บ้าง? …



19
วิธีที่ง่ายที่สุดในการแปลงสตริง Java จากตัวพิมพ์ใหญ่ทั้งหมด (คำที่คั่นด้วยเครื่องหมายขีดล่าง) เป็น CamelCase (ไม่มีตัวคั่นคำ) คืออะไร?
ชื่อค่อนข้างบอกว่ามันทั้งหมด วิธีที่ง่ายที่สุด / หรูหราที่สุดที่ฉันสามารถแปลงได้ใน Java คือสตริงจากรูปแบบ"THIS_IS_AN_EXAMPLE_STRING"เป็นรูปแบบ " ThisIsAnExampleString" ฉันคิดว่าต้องมีอย่างน้อยหนึ่งวิธีในการใช้String.replaceAll()และ regex ความคิดเริ่มต้นของฉันคือ: เติมสตริงด้วยเครื่องหมายขีดล่าง ( _) แปลงสตริงทั้งหมดเป็นตัวพิมพ์เล็กแล้วใช้ replaceAll เพื่อแปลงอักขระทุกตัวที่นำหน้าด้วยเครื่องหมายขีดล่างด้วยตัวพิมพ์ใหญ่
152 java  regex  string 

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