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

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

21
วิธีค้นหารหัสที่ไม่ได้ใช้ / ไม่ได้ใช้ในโครงการ Java [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน6 เดือนที่ผ่านมา ปรับปรุงคำถามนี้ เครื่องมือใดที่คุณใช้เพื่อค้นหาโค้ดที่ไม่ได้ใช้ / ไม่ใช้ในโครงการ java ขนาดใหญ่ ผลิตภัณฑ์ของเราพัฒนามาหลายปีแล้วและมันก็ยากที่จะตรวจจับโค้ดด้วยตนเองที่ไม่ได้ใช้งานอีกต่อไป อย่างไรก็ตามเราพยายามลบรหัสที่ไม่ได้ใช้มากที่สุดเท่าที่จะทำได้ ข้อเสนอแนะสำหรับกลยุทธ์ / เทคนิคทั่วไป (นอกเหนือจากเครื่องมือเฉพาะ) ก็มีค่าเช่นกัน แก้ไข:โปรดทราบว่าเราได้ใช้เครื่องมือครอบคลุมรหัส (Clover, IntelliJ) แล้ว แต่สิ่งเหล่านี้เป็นความช่วยเหลือเล็กน้อย รหัสที่ตายแล้วยังคงมีการทดสอบหน่วยและปรากฏขึ้นตามที่ครอบคลุม ฉันเดาว่าเครื่องมือในอุดมคติจะระบุกลุ่มของรหัสที่มีรหัสอื่นน้อยมากขึ้นอยู่กับมันทำให้สามารถตรวจสอบเอกสารด้วยตนเองได้

5
อะไรคือความแตกต่างระหว่างอินเตอร์เฟสและ @interface ใน java?
ฉันยังไม่ได้สัมผัส Java ตั้งแต่ใช้ JBuilder ในช่วงปลายยุค 90 ในขณะที่อยู่ที่มหาวิทยาลัยดังนั้นฉันจึงรู้สึกไม่ค่อยดีไม่ว่าจะด้วยวิธีใดก็ตามฉันได้ทำงานกับโปรเจ็กต์ขนาดเล็กในสัปดาห์นี้และใช้ Intellij IDEA เป็น IDE ของฉัน สำหรับการเปลี่ยนแปลงของการก้าวจากการพัฒนา. net ปกติของฉัน ฉันสังเกตเห็นว่ามันรองรับการเพิ่มอินเตอร์เฟสและ @interfaces @interface คืออะไรและมันแตกต่างจากอินเตอร์เฟสปกติอย่างไร public interface Test { } เมื่อเทียบกับ public @interface Test { } ฉันได้ทำการค้นหาเล็กน้อย แต่ไม่พบข้อมูลที่เป็นประโยชน์มากมายที่อ้างถึง @interface

7
เทคนิค JSP เพื่อให้การสร้างเทมเพลตง่ายขึ้น?
ที่ทำงานฉันได้รับมอบหมายให้เปลี่ยนHTMLไฟล์เป็นJSPโครงการง่าย ๆ ทุกอย่างมันคงที่ไม่มีตรรกะของเซิร์ฟเวอร์ในการเขียนโปรแกรม ฉันควรพูดถึงว่าฉันใหม่กับ Java อย่างสมบูรณ์ ไฟล์ JSP ดูเหมือนจะทำให้ง่ายต่อการทำงานกับการรวมทั่วไปและตัวแปรเหมือนPHPกัน แต่ฉันต้องการทราบวิธีง่ายๆในการรับสิ่งที่เป็นเทมเพลตการสืบทอด ( Djangoสไตล์) หรืออย่างน้อยสามารถมีไฟล์ base.jsp ที่มี ส่วนหัวและส่วนท้ายดังนั้นฉันสามารถแทรกเนื้อหาในภายหลัง เบ็นลิงดูเหมือนว่าจะเสนอความหวังในคำตอบของเขาที่นี่: การ ถ่ายทอดเทมเพลต JSP ใครบางคนสามารถอธิบายได้ว่าจะบรรลุสิ่งนี้ได้อย่างไร เนื่องจากฉันมีเวลาไม่มากที่ฉันคิดว่าการกำหนดเส้นทางแบบไดนามิกมีน้อยมากฉันจึงดีใจที่ได้มีการจับคู่ URL เข้ากับ.jspไฟล์โดยตรงแต่ฉันเปิดรับข้อเสนอแนะ ขอบคุณ แก้ไข:ฉันไม่ต้องการใช้ห้องสมุดภายนอกเพราะจะเพิ่มช่วงการเรียนรู้สำหรับตัวฉันและคนอื่น ๆ ที่ทำงานในโครงการและ บริษัท ที่ฉันทำงานให้ได้รับสัญญาให้ทำเช่นนี้ การแก้ไขอื่น:ฉันไม่แน่ใจว่าJSP tagsจะมีประโยชน์หรือไม่เพราะเนื้อหาของฉันไม่มีตัวแปรแม่แบบใด ๆ สิ่งที่ฉันต้องการคือวิธีที่จะทำสิ่งนี้: base.html: <html><body> { content.body } </body></html> somepage.html <wrapper:base.html> <h1>Welcome</h1> </wrapper> กับการส่งออกเป็น: <html><body> <h1>Welcome</h1> </body></html> ฉันคิดว่านี่จะทำให้ฉันมีความสามารถในการทำสิ่งต่างๆที่ฉันต้องการ มันสามารถทำได้ด้วยincludesแต่แล้วฉันจะต้องรวมถึงด้านบนและด้านล่างสำหรับแต่ละเสื้อคลุมซึ่งเป็นชนิดของยุ่ง

30
จะใช้อักษรตัวแรกของ String ใน Java ได้อย่างไร
ฉันใช้ Java เพื่อรับStringข้อมูลจากผู้ใช้ ฉันพยายามทำให้ตัวอักษรตัวแรกของอินพุตนี้เป็นตัวพิมพ์ใหญ่ ฉันลองสิ่งนี้: String name; BufferedReader br = new InputStreamReader(System.in); String s1 = name.charAt(0).toUppercase()); System.out.println(s1 + name.substring(1)); ซึ่งนำไปสู่ข้อผิดพลาดของคอมไพเลอร์เหล่านี้: ประเภทไม่ตรงกัน: ไม่สามารถแปลงจาก InputStreamReader เป็น BufferedReader ไม่สามารถเรียกใช้ตัวพิมพ์ใหญ่ () บนถ่านประเภทดั้งเดิม
305 java  string  capitalize 

22
แอตทริบิวต์คงสุดท้ายส่วนตัวเทียบกับคุณลักษณะส่วนตัวสุดท้าย
ใน Java ความแตกต่างระหว่าง: private final static int NUMBER = 10; และ private final int NUMBER = 10; ทั้งสองprivateและfinalแตกต่างคือstaticคุณลักษณะ มีอะไรดีกว่ากัน และทำไม?



9
ArrayList's มีวิธี () ประเมินวัตถุอย่างไร
ArrayListบอกว่าผมสร้างวัตถุหนึ่งและเพิ่มเข้าไปในของฉัน ถ้าฉันสร้างวัตถุอื่นที่มีอินพุตคอนสตรัคเตอร์เดียวกันcontains()วิธีจะประเมินทั้งสองวัตถุให้เหมือนกันหรือไม่ สมมติว่าคอนสตรัคเตอร์ไม่ได้ทำอะไรตลก ๆ กับอินพุตและตัวแปรที่เก็บไว้ในวัตถุทั้งสองเหมือนกัน ArrayList<Thing> basket = new ArrayList<Thing>(); Thing thing = new Thing(100); basket.add(thing); Thing another = new Thing(100); basket.contains(another); // true or false? class Thing { public int value; public Thing (int x) { value = x; } equals (Thing x) { if (x.value == value) return …

6
สองเท่ากับ BigDecimal?
ฉันต้องคำนวณตัวแปรทศนิยมบางอย่างและเพื่อนร่วมงานของฉันแนะนำให้ฉันใช้BigDecimalแทนdoubleเพราะมันจะแม่นยำมากขึ้น แต่ฉันต้องการรู้ว่ามันคืออะไรและทำอย่างไรให้ได้ประโยชน์สูงสุดBigDecimal?

22
ฉันจะค้นหาว่าติดตั้ง JDK บนเครื่อง windows ได้อย่างไร
ฉันต้องรู้ว่า JDK อยู่ที่ใดในเครื่องของฉัน ในการทำงานJava -versionในcmdมันจะแสดงรุ่นเป็น '1.6.xx' หากต้องการค้นหาตำแหน่งของ SDK นี้บนเครื่องของฉันฉันพยายามใช้echo %JAVA_HOME%แต่จะแสดงเฉพาะ 'JAVA_HOME' (เนื่องจากไม่มีชุด 'JAVA_PATH' var ในตัวแปรสภาพแวดล้อมของฉัน)
303 java  windows 

13
คำหลัก "ดำเนินการต่อ" คืออะไรและทำงานใน Java อย่างไร
ฉันเห็นคำหลักนี้เป็นครั้งแรกและฉันก็สงสัยว่ามีคนอธิบายให้ฉันได้ไหมว่ามันทำอะไร อะไรคือสิ่งที่continueคำหลัก? มันทำงานยังไง? จะใช้เมื่อไหร่?
302 java  keyword  continue 

4
Mockito สามารถตั้งวิธีโดยไม่คำนึงถึงข้อโต้แย้งได้หรือไม่?
ฉันพยายามทดสอบรหัสดั้งเดิมโดยใช้ Mockito ฉันต้องการ stub a FooDaoที่ใช้ในการผลิตดังนี้: foo = fooDao.getBar(new Bazoo()); ฉันเขียนได้: when(fooDao.getBar(new Bazoo())).thenReturn(myFoo); แต่ปัญหาที่ชัดเจนgetBar()คือไม่เคยถูกเรียกด้วยBazooวัตถุเดียวกันกับที่ฉัน stubbed วิธีการ (สาปแช่งnewผู้ประกอบการนั้น!) ฉันจะรักมันถ้าฉันสามารถ stub วิธีในวิธีที่มันกลับmyFooโดยไม่คำนึงถึงการโต้แย้ง ความล้มเหลวนั้นฉันจะฟังคำแนะนำการแก้ปัญหาอื่น ๆ แต่ฉันอยากจะหลีกเลี่ยงการเปลี่ยนรหัสการผลิตจนกว่าจะครอบคลุมการทดสอบที่สมเหตุสมผล

30
ทำให้วิธีส่วนตัวเป็นแบบสาธารณะเพื่อทดสอบหน่วย…เป็นความคิดที่ดี?
ผู้ดำเนินรายการหมายเหตุ: มี 39 คำตอบที่โพสต์แล้วที่นี่ (บางคำถูกลบไปแล้ว) ก่อนที่คุณโพสต์ของคุณคำตอบพิจารณาหรือไม่ว่าคุณสามารถเพิ่มสิ่งที่มีความหมายกับการอภิปราย คุณมีโอกาสมากกว่าที่จะทำซ้ำในสิ่งที่คนอื่นพูดไปแล้ว บางครั้งฉันพบว่าตัวเองต้องการวิธีการแบบส่วนตัวในที่สาธารณะในชั้นเรียนเพื่อเขียนการทดสอบหน่วยบางอย่างสำหรับมัน โดยทั่วไปแล้วจะเป็นเพราะวิธีการนี้มีตรรกะที่ใช้ร่วมกันระหว่างวิธีอื่น ๆ ในชั้นเรียนและเป็นระเบียบเรียบร้อยมากขึ้นในการทดสอบตรรกะด้วยตนเองหรือเหตุผลอื่นอาจเป็นไปได้ถ้าฉันต้องการทดสอบตรรกะที่ใช้ในเธรดแบบซิงโครนัส . คนอื่นคิดว่าตัวเองกำลังทำสิ่งนี้อยู่หรือเปล่าเพราะฉันไม่ชอบทำมันจริงเหรอ? โดยส่วนตัวแล้วฉันคิดว่าโบนัสนั้นมีค่ามากกว่าปัญหาในการทำให้วิธีการเป็นสาธารณะซึ่งไม่ได้ให้บริการใด ๆ นอกห้องเรียน ... UPDATE ขอบคุณสำหรับคำตอบทุกคนดูเหมือนว่าจะทำให้คนสนใจป่องๆ ฉันคิดว่าฉันทามติทั่วไปคือการทดสอบควรเกิดขึ้นผ่าน API สาธารณะเนื่องจากนี่เป็นวิธีเดียวที่จะใช้คลาสนี้และฉันเห็นด้วยกับสิ่งนี้ สองสามกรณีที่ฉันกล่าวถึงข้างต้นที่ฉันจะทำเช่นนี้เป็นกรณีที่ผิดปกติและฉันคิดว่าประโยชน์ของการทำมันคุ้มค่า อย่างไรก็ตามฉันสามารถเห็นทุกคนชี้ว่ามันไม่ควรเกิดขึ้นจริง และเมื่อคิดเกี่ยวกับมันอีกเล็กน้อยฉันคิดว่าการเปลี่ยนรหัสของคุณเพื่อรองรับการทดสอบเป็นความคิดที่ไม่ดี - หลังจากทั้งหมดฉันคิดว่าการทดสอบเป็นเครื่องมือสนับสนุนในทางและการเปลี่ยนระบบเป็น 'สนับสนุนเครื่องมือสนับสนุน' ถ้าคุณพอใจ การปฏิบัติที่ไม่ดี
301 c#  java  unit-testing 


18
คุณจะทำสำเนาวัตถุลึก ๆ ได้อย่างไร
เป็นการยากที่จะใช้ฟังก์ชั่นการคัดลอกวัตถุลึก ขั้นตอนใดที่คุณต้องทำเพื่อให้แน่ใจว่าวัตถุดั้งเดิมและสิ่งที่โคลนแชร์ไม่มีการอ้างอิง?
301 java  class  clone 

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