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

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


5
อะไรคือ Java ที่ดีไลบรารีเหมือนคำสาปสำหรับแอพพลิเคชันเทอร์มินัล [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันต้องการเขียนแอปพลิเคชันเทอร์มินัล Java ที่จัดการหน้าจอ มีห้องสมุดดีๆที่ให้คุณจัดการกับหน้าจอเหมือนคำสาปในโลก * nix / C หรือไม่? คุณสมบัติขั้นต่ำที่ฉันกำลังมองหาคือการกำหนดหน้าต่างและการสนับสนุนการป้อนข้อมูลของผู้ใช้ ในฟีเจอร์พูดฉันต้องการมีพื้นที่ของเทอร์มินัลที่ข้อมูลบางส่วนได้รับการอัปเดตเป็นประจำในขณะที่ (ในเวลาเดียวกัน) ผู้ใช้สามารถป้อนคำสั่ง / ข้อความในส่วนอื่น ๆ ของหน้าจอได้

15
Java ปัดเศษขึ้นเป็น int โดยใช้ Math.ceil
int total = (int) Math.ceil(157/32); ทำไมมันยังกลับ 4? 157/32 = 4.90625, ฉันต้องสรุป, ฉันมองไปรอบ ๆ และดูเหมือนจะเป็นวิธีการที่ถูกต้อง ฉันพยายามtotalเป็นdoubleประเภท แต่ได้รับ 4.0 ผมทำอะไรผิดหรือเปล่า?
102 java  math 

14
กำลังจับ java.lang.OutOfMemoryError?
เอกสารสำหรับjava.lang.Errorพูดว่า: ข้อผิดพลาดเป็นคลาสย่อยของ Throwable ที่บ่งชี้ถึงปัญหาร้ายแรงที่แอปพลิเคชันที่สมเหตุสมผลไม่ควรพยายามจับ แต่ในฐานะjava.lang.Errorคลาสย่อยjava.lang.Throwableฉันสามารถจับ Throwable ประเภทนี้ได้ ฉันเข้าใจว่าเหตุใดจึงไม่ควรจับข้อยกเว้นแบบนี้ เท่าที่ฉันเข้าใจถ้าเราตัดสินใจที่จะจับมันตัวจัดการจับไม่ควรจัดสรรหน่วยความจำใด ๆ ด้วยตัวเอง มิฉะนั้นOutOfMemoryErrorจะถูกโยนอีกครั้ง ดังนั้นคำถามของฉันคือ: มีสถานการณ์ในโลกแห่งความเป็นจริงเมื่อจับได้java.lang.OutOfMemoryErrorอาจเป็นความคิดที่ดีหรือไม่? หากเราตัดสินใจที่จะจับjava.lang.OutOfMemoryErrorเราจะแน่ใจได้อย่างไรว่าตัวจัดการการจับไม่ได้จัดสรรหน่วยความจำใด ๆ ด้วยตัวเอง (เครื่องมือหรือแนวทางปฏิบัติที่ดีที่สุด)

5
ฉันควรใช้สตรีมเมื่อใด
ฉันเพิ่งเจอคำถามเมื่อใช้ a Listและstream()วิธีการของมัน แม้ว่าฉันจะรู้วิธีใช้ แต่ฉันก็ไม่ค่อยแน่ใจว่าควรใช้เมื่อใด ตัวอย่างเช่นฉันมีรายการที่มีเส้นทางต่างๆไปยังสถานที่ต่างๆ ตอนนี้ฉันต้องการตรวจสอบว่าเส้นทางเดียวที่ระบุมีเส้นทางใด ๆ ที่ระบุในรายการหรือไม่ ฉันต้องการส่งคืนbooleanโดยพิจารณาว่าเป็นไปตามเงื่อนไขหรือไม่ แน่นอนว่านี่ไม่ใช่งานหนัก แต่ฉันสงสัยว่าฉันควรใช้สตรีมหรือสำหรับ (-each) ลูป รายการ private static final List<String> EXCLUDE_PATHS = Arrays.asList(new String[]{ "my/path/one", "my/path/two" }); ตัวอย่าง - สตรีม private boolean isExcluded(String path){ return EXCLUDE_PATHS.stream() .map(String::toLowerCase) .filter(path::contains) .collect(Collectors.toList()) .size() > 0; } ตัวอย่าง - สำหรับ - แต่ละวง private boolean isExcluded(String …
102 java  java-8  java-stream 

9
จะทำให้ ThreadPoolExecutor เพิ่มเธรดให้สูงสุดก่อนเข้าคิวได้อย่างไร
ฉันรู้สึกท้อแท้มาระยะหนึ่งแล้วกับพฤติกรรมเริ่มต้นThreadPoolExecutorซึ่งอยู่เบื้องหลังExecutorServiceเธรดพูลที่พวกเราหลายคนใช้ หากต้องการอ้างอิงจาก Javadocs: หากมีมากกว่า corePoolSize แต่น้อยกว่าหัวข้อ maximumPoolSize ทำงานหัวข้อใหม่จะถูกสร้างขึ้นเฉพาะในกรณีที่คิวเต็ม สิ่งนี้หมายความว่าถ้าคุณกำหนดเธรดพูลด้วยรหัสต่อไปนี้เธรดจะไม่เริ่มเธรดที่ 2 เนื่องจากLinkedBlockingQueueไม่ถูกผูกไว้ ExecutorService threadPool = new ThreadPoolExecutor(1 /*core*/, 50 /*max*/, 60 /*timeout*/, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(/* unlimited queue */)); เฉพาะในกรณีที่คุณมีคิวที่ถูกล้อมรอบและคิวเต็มเท่านั้นที่จะมีเธรดที่อยู่เหนือหมายเลขหลักเริ่มต้น ฉันสงสัยว่าโปรแกรมเมอร์มัลติเธรด Java รุ่นจูเนียร์จำนวนมากไม่ทราบถึงพฤติกรรมนี้ของไฟล์ThreadPoolExecutor. ตอนนี้ฉันมีกรณีการใช้งานที่เฉพาะเจาะจงซึ่งไม่เหมาะสม ฉันกำลังมองหาวิธีต่างๆโดยไม่ต้องเขียนคลาส TPE ของตัวเองเพื่อแก้ไข ข้อกำหนดของฉันมีไว้สำหรับบริการเว็บที่โทรกลับไปยังบุคคลที่สามที่อาจไม่น่าเชื่อถือ ฉันไม่ต้องการโทรกลับพร้อมกันกับคำขอทางเว็บดังนั้นฉันต้องการใช้เธรดพูล ฉันมักจะได้เวลาสองสามนาทีนี้ดังนั้นฉันจึงไม่อยากมีnewFixedThreadPool(...)เธรดจำนวนมากที่ส่วนใหญ่อยู่เฉยๆ บ่อยครั้งที่ฉันได้รับปริมาณการใช้งานจำนวนมากและฉันต้องการเพิ่มจำนวนเธรดให้เป็นค่าสูงสุด (สมมติว่า 50) ฉันต้องพยายามอย่างเต็มที่เพื่อทำการโทรกลับทั้งหมดดังนั้นฉันจึงต้องการจัดคิวรายการเพิ่มเติมที่สูงกว่า 50 ฉันไม่ต้องการทำให้เว็บเซิร์ฟเวอร์ส่วนที่เหลือของฉันล้นโดยใช้ไฟล์newCachedThreadPool(). ฉันจะแก้ไขข้อ จำกัด นี้ได้อย่างไรในThreadPoolExecutorกรณีที่คิวต้องถูกล้อมรอบและเต็มก่อนที่จะเริ่มเธรดเพิ่มเติม ฉันจะเริ่มเธรดเพิ่มเติมก่อนเข้าคิวงานได้อย่างไร แก้ไข: @Flavio …

17
การตั้งค่าระดับบันทึกของข้อความที่รันไทม์ใน slf4j
เมื่อใช้ log4j Logger.log(Priority p, Object message)วิธีนี้จะพร้อมใช้งานและสามารถใช้เพื่อบันทึกข้อความที่ระดับบันทึกที่กำหนดที่รันไทม์ เรากำลังใช้ข้อเท็จจริงนี้และเคล็ดลับนี้เพื่อเปลี่ยนเส้นทาง stderr ไปยังคนตัดไม้ที่ระดับบันทึกเฉพาะ slf4j ไม่มีlog()วิธีการทั่วไปที่ฉันสามารถหาได้ หมายความว่าไม่มีวิธีดำเนินการข้างต้นหรือไม่?
102 java  logging  log4j  slf4j 

9
ตัวดำเนินการลอจิคัล Java ลัดวงจร
ชุดใดที่ลัดวงจรและนิพจน์เงื่อนไขเชิงซ้อนนั้นมีการลัดวงจรหมายความว่าอย่างไร public static void main(String[] args) { int x, y, z; x = 10; y = 20; z = 30; // T T // T F // F T // F F //SET A boolean a = (x < z) && (x == x); boolean b = (x < z) …

9
เป็นไปได้ไหมที่จะอ่านค่าของคำอธิบายประกอบใน java?
นี่คือรหัสของฉัน: @Column(columnName="firstname") private String firstName; @Column(columnName="lastname") private String lastName; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } เป็นไปได้ไหมที่จะอ่านค่าคำอธิบายประกอบ @Column ของฉัน ( columnName = "xyz123") ในคลาสอื่น

2
JPA: วิธีการมีความสัมพันธ์แบบหนึ่งต่อกลุ่มของเอนทิตีประเภทเดียวกัน
มีคลาสเอนทิตี "A" คลาส A อาจมีลูกประเภทเดียวกัน "A" นอกจากนี้ "A" ควรถือเป็นผู้ปกครองหากเป็นเด็ก เป็นไปได้หรือไม่ ถ้าเป็นเช่นนั้นฉันจะแมปความสัมพันธ์ในคลาสเอนทิตีได้อย่างไร ["A" มีคอลัมน์รหัส]
102 java  orm  jpa  hierarchy  one-to-many 

11
Apache POI Excel - จะกำหนดค่าคอลัมน์ที่จะขยายได้อย่างไร?
ฉันใช้Apache POI APIสร้างexcel spreadsheetเพื่อส่งออกข้อมูลบางอย่าง ปัญหาที่ฉันพบคือเมื่อสร้างและเปิดสเปรดชีตคอลัมน์จะไม่ขยายทำให้ข้อความยาว ๆ เช่นข้อความที่จัดรูปแบบวันที่ไม่ปรากฏขึ้นในครั้งแรก ฉันสามารถดับเบิลคลิกที่ขอบคอลัมน์ใน excel เพื่อขยายหรือลากเส้นขอบเพื่อปรับความกว้างของคอลัมน์ แต่อาจมีมากกว่า 20 คอลัมน์และไม่มีวิธีใดที่ฉันต้องการทำด้วยตนเองทุกครั้งที่เปิดสเปรดชีต :( ฉันพบ (แม้ว่าอาจจะผิดวิธี) groupRow()และsetColumnGroupCollapsed()อาจสามารถทำเคล็ดลับได้ แต่ไม่มีโชค บางทีฉันใช้มันในทางที่ผิด ตัวอย่างข้อมูลโค้ด Workbook wb = new HSSFWorkbook(); CreationHelper createHelper = wb.getCreationHelper(); //create sheet Sheet sheet = wb.createSheet("masatoSheet"); //not really working yet.... :( //set group for expand/collapse //sheet.groupRow(0, 10); //just random fromRow toRow …
102 java  excel  expand  apache-poi 

11
วิธีที่มีประสิทธิภาพที่สุดในการสร้างอักขระตัวแรกของ String ตัวพิมพ์เล็ก?
วิธีใดที่มีประสิทธิภาพที่สุดในการสร้างอักขระตัวแรกของตัวStringพิมพ์เล็ก ฉันคิดได้หลายวิธีในการทำสิ่งนี้: ใช้charAt()กับsubstring() String input = "SomeInputString"; String output = Character.toLowerCase(input.charAt(0)) + (input.length() > 1 ? input.substring(1) : ""); หรือใช้charอาร์เรย์ String input = "SomeInputString"; char c[] = input.toCharArray(); c[0] = Character.toLowerCase(c[0]); String output = new String(c); ฉันแน่ใจว่ามีวิธีที่ยอดเยี่ยมอื่น ๆ อีกมากมายในการบรรลุเป้าหมายนี้ คุณแนะนำเมนูใด?

13
การเติมโค้ดอัตโนมัติใน Eclipse
ฉันต้องการให้ Eclipse แนะนำตัวเลือกที่เป็นไปได้ทั้งหมดให้ฉันโดยอัตโนมัติในขณะที่ฉันกำลังเขียนชื่อตัวแปร / คลาสหรือคีย์เวิร์ดเช่นใน Flash Develop หรือ Visual Studio เป็นไปได้ไหม? ถ้าไม่ Java IDE ใดที่ฉันสามารถรับได้ ฉันถามเป็นพิเศษเกี่ยวกับวิธีรับสิ่งเดียวกับที่ฉันใช้+ โดยอัตโนมัติในขณะที่ฉันพิมพ์CTRLSpace
102 java  eclipse 

4
วิธีการเขียนค่าคุณสมบัติหลายบรรทัดโดยใช้ PropertiesConfiguration
ฉันมีไฟล์คุณสมบัติที่มีคุณสมบัติที่มีค่ารายการ (คั่นด้วยเครื่องหมายจุลภาค) จะเขียนคุณสมบัตินี้ในหลายบรรทัดได้อย่างไร (แบ็กสแลชหลังเครื่องหมายจุลภาค)? ฉันไม่พบอะไรเกี่ยวกับเรื่องนี้หรืออย่างน้อยก็เกี่ยวกับการหลีกเลี่ยงเครื่องหมายจุลภาคเป็นลูกน้ำและแบ็กสแลช

5
ทำไมไม่เป็นสาขานามธรรม?
เหตุใดคลาส Java จึงไม่มีฟิลด์นามธรรมเช่นเดียวกับที่สามารถมีวิธีนามธรรมได้ ตัวอย่างเช่นฉันมีสองคลาสที่ขยายคลาสพื้นฐานนามธรรมเดียวกัน ทั้งสองคลาสนี้แต่ละคลาสมีวิธีการที่เหมือนกันยกเว้นค่าคงที่ของสตริงซึ่งเป็นข้อความแสดงข้อผิดพลาดภายในพวกเขา ถ้าฟิลด์เป็นนามธรรมฉันสามารถสร้างนามธรรมคงที่นี้และดึงเมธอดขึ้นมาในคลาสฐาน แต่ฉันต้องสร้างเมธอดนามธรรมที่เรียกว่าgetErrMsg()ในกรณีนี้ที่ส่งคืน String แทนที่เมธอดนี้ในคลาสที่ได้รับสองคลาสจากนั้นฉันสามารถดึงเมธอดขึ้นมาได้ (ซึ่งตอนนี้เรียกว่าเมธอดนามธรรม) เหตุใดฉันจึงไม่สามารถสร้างบทคัดย่อภาคสนามขึ้นมาได้ Java ได้รับการออกแบบมาเพื่ออนุญาตสิ่งนี้หรือไม่?
102 java  methods  field  abstract 

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