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

Java เป็นภาษาการเขียนโปรแกรมเชิงวัตถุในระดับสูงที่พัฒนาโดย Sun Microsystems ปัจจุบัน Java เป็นเจ้าของโดย Oracle ซึ่งซื้อ Sun ในปี 2010

2
ตรวจสอบพารามิเตอร์ที่ใส่คำอธิบายประกอบด้วย @Nonnull เป็นค่าว่างหรือไม่
เราได้เริ่มใช้ FindBugs และใส่คำอธิบายประกอบพารามิเตอร์ของเรา@Nonnullอย่างเหมาะสมและใช้งานได้ดีในการชี้จุดบกพร่องในช่วงต้นรอบ จนถึงตอนนี้เราได้ตรวจสอบข้อโต้แย้งเหล่านี้อย่างต่อเนื่องเพื่อnullใช้ของ Guava checkNotNullแต่ฉันต้องการตรวจสอบnullเฉพาะที่ขอบ - สถานที่ที่ค่าสามารถเข้ามาโดยไม่ได้รับการตรวจสอบnullเช่นคำขอ SOAP // service layer accessible from outside public Person createPerson(@CheckForNull String name) { return new Person(Preconditions.checkNotNull(name)); } ... // internal constructor accessed only by the service layer public Person(@Nonnull String name) { this.name = Preconditions.checkNotNull(name); // remove this check? } ฉันเข้าใจ@Nonnullว่าไม่ได้บล็อกnullค่าตัวเอง แต่ให้ที่ …
19 java  null 

9
รูปแบบการออกแบบมีความสำคัญในการเขียนโปรแกรมอย่างไร
ฉันเป็นนักศึกษามหาวิทยาลัยและฉันเพิ่งเริ่มเรียนรู้เกี่ยวกับรูปแบบการออกแบบและฉันกำลังดิ้นรนเพื่อทำความเข้าใจวัตถุประสงค์ของพวกเขา ฉันได้ลองค้นคว้าข้อมูลเหล่านี้ แต่แหล่งข้อมูลทั้งหมดที่ฉันพบดูเหมือนจะพูดถึงพวกเขาในเชิงวิชาการไม่ใช่มืออาชีพ จุดประสงค์ของพวกเขาคืออะไรและพวกเขาสำคัญต่อการเรียนรู้หรือไม่

6
เหตุใดจึงใช้ Javascript ใน MongoDB และ CouchDB แทนภาษาอื่นเช่น Java, C ++
ฉันถามคำถามเกี่ยวกับ SO แต่แนะนำให้ลองที่นี่ ดังนั้นที่นี่มันจะไป: ความเข้าใจเกี่ยวกับ Javascript ของฉันจนถึงตอนนี้ก็คือว่ามันเป็นภาษาฝั่งไคลเอ็นต์ที่จับภาพเหตุการณ์และทำให้หน้าเว็บเป็นแบบไดนามิก แต่จากการอ่านการเปรียบเทียบระหว่าง MongoDB กับ CouchDBฉันสังเกตว่าทั้งสองกำลังใช้ Javascript นี่ทำให้ฉันสงสัยว่าเหตุผลที่เลือก JavaScript มากกว่าภาษาทั่วไปอื่น ๆ ฉันเดาว่าฉันกำลังพยายามเข้าใจบทบาทของ JavaScript และข้อดีเหนือภาษาอื่น ๆ อัปเดต: ฉันไม่ได้ถามเกี่ยวกับภาษา / ไดรเวอร์ที่รองรับโดยฐานข้อมูลทั้งสอง การเปรียบเทียบบอกว่า: ทั้ง CouchDB และ MongoDB ใช้ประโยชน์จาก Javascript CouchDB ใช้ Javascript อย่างกว้างขวางรวมทั้งในอาคารของมุมมอง MongoDB ยังรองรับการเรียกใช้ฟังก์ชันจาวาสคริปต์ในฝั่งเซิร์ฟเวอร์และใช้จาวาสคริปต์สำหรับแผนที่ / ลดการใช้งาน ฉันไม่เข้าใจว่าทำไม Javascript จึงถูกนำมาใช้เพื่องานแบ็กเอนด์ เหตุใดจึงเหมาะสำหรับการสร้างมุมมองใน CouchDB หรือสำหรับการใช้แผนที่ / ลดการดำเนินการ? ทำไม C / …
19 java  javascript 

3
Java และ. NET: เหตุใดอัลกอริธึมการเรียงลำดับแบบอื่นจึงถูกใช้โดยค่าเริ่มต้น
เพียงแค่สงสัยว่าทำไมJavaและ.NET Frameworkใช้อัลกอริทึมการเรียงลำดับที่แตกต่างกันตามค่าเริ่มต้น ใน Java Array.Sort()ใช้อัลกอริทึมMerge Sortตามค่าเริ่มต้นและตามที่Wikipedia.comพูดว่า: ใน Java เมธอด Arrays.sort () ใช้การเรียงแบบผสานหรือการปรับแบบเร็วขึ้นอยู่กับประเภทข้อมูลและสำหรับการสลับประสิทธิภาพการปรับใช้เพื่อเรียงลำดับการแทรกเมื่อเรียงลำดับองค์ประกอบอาร์เรย์น้อยกว่าเจ็ดรายการ ใน. NET Framework Array.Sort/List.Sort()ใช้Quick Sortเป็นอัลกอริทึมการเรียงลำดับเริ่มต้น ( MSDN ): List.Sort () ใช้ Array.Sort ซึ่งใช้อัลกอริทึม QuickSort การใช้งานนี้จัดเรียงไม่เสถียร นั่นคือถ้าสององค์ประกอบมีค่าเท่ากันลำดับของพวกเขาอาจไม่ถูกสงวนไว้ ในทางตรงกันข้ามการจัดเรียงที่มีเสถียรภาพจะรักษาลำดับขององค์ประกอบที่เท่ากัน จากการดูตาราง"การเปรียบเทียบอัลกอริธึม"ที่ยอดเยี่ยมเราจะเห็นได้ว่าอัลกอริธึมทั้งสองนั้นมีพฤติกรรมที่แตกต่างจากมุมมองการใช้งานหน่วยความจำและกรณีแย่ที่สุด: ทั้งสองJavaและ.NETเป็นกรอบการทำงานที่ยอดเยี่ยมสำหรับการพัฒนาโซลูชันองค์กรทั้งสองมีแพลตฟอร์มสำหรับการพัฒนาแบบฝัง เหตุใดพวกเขาจึงใช้อัลกอริธึมการเรียงลำดับที่แตกต่างกันตามค่าเริ่มต้นความคิดใด ๆ

2
แนวคิดเรื่อง AOP อธิบายถึงหุ่นจำลอง
บางคนสามารถอธิบายแนวคิดของ AOP สำหรับหุ่นได้ที่จุดเชื่อม, จุดตัด, การทอ ฯลฯ ตัวอย่างเช่น: มุมมอง: การทำให้เป็นโมดูลของข้อกังวลที่ตัดข้ามหลายคลาส นั่นหมายความว่าอย่างไร?

9
ข้อดีและข้อเสียของการจัดรูปแบบรหัสแบบบังคับ
ฉันกำลังทำงานในสถานที่ที่อาจมองหาการบังคับให้นักพัฒนาใช้ฟอร์แมตโค้ดอัตโนมัติในการเช็คอินการควบคุมเวอร์ชัน ฉันกำลังมองหาความคิดเห็นของนักพัฒนาเกี่ยวกับข้อดีและข้อเสียของการทำสิ่งนี้ ... วิธีที่คุณคิดว่ามันจะช่วยหรือขัดขวางนักพัฒนา กรณีเฉพาะของฉันเกี่ยวข้องกับ Java / JSP แต่ฉันคิดว่าคำถามนี้สามารถใช้ได้กับทุกภาษา

12
Managed Coders vs Native Coders
ฉันเป็นผู้เขียนโค้ดและมีประสบการณ์เกี่ยวกับรหัสดั้งเดิมและที่จัดการ ฉันเริ่มต้นด้วย Pascal และ C จากนั้นย้ายไปที่ C ++ และในที่สุดก็กลายเป็น C # ในช่วงปีที่ผ่านมาฉันเขียนโค๊ดใน C # และสูญเสียสิ่งที่เคยเกิดขึ้นอย่างเป็นธรรมชาติเมื่อฉันเป็น C ++ ไม่กี่สัปดาห์ที่ผ่านมาเมื่อฉันนั่งลงเพื่อเขียนรหัสภาษา C ++ บางตัวฉันพบว่าตัวเองคลำไปรอบ ๆ ขณะที่ฉันค่อยๆทำความคุ้นเคยกับความซับซ้อน, นิสัยใจคอและนิสัยแปลก ๆ ของมันทั้งหมด ฉันเกือบจะอายที่จะบอกว่าฉันลืมไปแล้วว่าการส่งอาเรย์ที่จัดสรรแบบไดนามิกไปยังฟังก์ชั่นโดยไม่ผ่านขนาดของมันก็หมายความว่าฟังก์ชั่นที่รับจะไม่มีทางรู้ว่าอาเรย์นั้นนานแค่ไหน มีบทความและเอกสารจำนวนนับไม่ถ้วนที่เปรียบเทียบและเปรียบต่างกับการจัดการเทียบกับรหัสที่ไม่มีการจัดการ เราทุกคนรู้ว่าโค้ดเนทีฟหากได้รับการปรับปรุงอย่างดีสามารถรันได้เร็วกว่าและเบากว่าโค้ดที่ได้รับการจัดการ ในทางกลับกันโค้ดที่ได้รับการจัดการมีตัวรวบรวมขยะและการเพิ่มประสิทธิภาพ CPU เฉพาะเวลาทำงานและการปรับแต่งเฉพาะระบบปฏิบัติการซึ่งสามารถให้โค้ดเนทีฟสำหรับเงินของตนได้ จากมุมมองทางเทคนิคไม่มีผู้ชนะที่ชัดเจน ไม่ต้องสงสัยเลยว่ารหัสที่ได้รับการจัดการนั้นมีขนาดที่ง่ายต่อการเข้าใจและเข้าใจง่าย เพียงแค่ดูความแตกต่างของจำนวนบรรทัดที่จำเป็นในการสร้าง GUI อย่างง่ายใน Win32 C ++ เทียบกับ C # ย้อนกลับไปในวันที่เขียนโค้ดดั้งเดิมของฉันฉันส่วนใหญ่เขียนแบบจำลองทางคณิตศาสตร์ที่วิ่งบนซูเปอร์คอมพิวเตอร์ พวกเขามี CLIs ที่น่าเกลียดและส่วนใหญ่จะเน้นอัลกอริธึม ทุกวันนี้ฉันเขียนด้วยภาษา C # …
19 java  .net 

4
ทำไม API การรวบรวม Java จึงไม่มีวิธีสุดท้าย [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา นี่สำหรับคอลเลกชันที่ได้รับคำสั่งเช่น java.util.List ทำไมนักออกแบบภาษาจึงไม่มีวิธีสุดท้าย เหตุผลเดียวที่ฉันนึกได้คือ: ความกำกวมเมื่อการรวบรวมว่างเปล่า (ส่งคืนโมฆะหรือโยนข้อยกเว้น) API bloat มีเหตุผลอื่นอีกไหม?
19 java  api-design 

3
ข้อแตกต่างระหว่าง“ Java OOP” และ“ Pythonic OOP” หรือไม่? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันเริ่มต้นด้วย ActionScript 2.0 แล้วจึงไปกับ Java ฉันเรียนรู้หรืออย่างน้อยก็ใช้หลายภาษาตั้งแต่นั้นมารวมถึง Python (อาจเป็นภาษาที่ฉันชอบ) ฉันกลัวว่ารูปแบบการเขียนโปรแกรมเชิงวัตถุของฉันนั้นไม่ค่อยไพเราะมากและอย่าง Java OOP ที่มีไวยากรณ์ของ Python อะไรที่ทำให้ Java like และ Pythonic OOP แตกต่างจากกัน? โปรแกรมเมอร์ Java ทำสิ่งใดบ่อยครั้งที่ "unpythonically" เมื่อเขียนโค้ดเชิงวัตถุใน Python

10
นักพัฒนา Java คิดอย่างไรกับ Scala [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันได้ตั้งข้อสังเกตว่าการสนับสนุน IDE นั้นใกล้เคียงกับที่ดี แต่ภาษานั้นรองรับสำนวนการเขียนโปรแกรมที่ใช้งานได้ดีกว่าหมดจด

7
ปัญหาเกี่ยวกับรูปแบบการเข้ารหัส: เราควรมีฟังก์ชั่นที่ใช้พารามิเตอร์แก้ไขหรือไม่แล้วกลับไปที่พารามิเตอร์นั้นหรือไม่
ฉันกำลังถกเถียงกับเพื่อนของฉันเล็กน้อยว่าการปฏิบัติทั้งสองนี้เป็นเพียงแค่สองด้านของเหรียญเดียวกันหรือไม่หรือว่าจะดีกว่าอย่างแท้จริง เรามีฟังก์ชั่นที่รับพารามิเตอร์เติมสมาชิกของมันแล้วส่งกลับ: Item predictPrice(Item item) ฉันเชื่อว่ามันทำงานบนวัตถุเดียวกับที่ส่งผ่านไม่มีจุดที่จะส่งคืนรายการ ในความเป็นจริงถ้ามีอะไรจากมุมมองของผู้โทรมันสับสนเรื่องที่คุณอาจคาดหวังให้กลับรายการใหม่ที่มันไม่ เขาอ้างว่ามันไม่สร้างความแตกต่างและมันก็ไม่สำคัญว่ามันจะสร้างไอเท็มใหม่และคืนสิ่งนั้น ฉันไม่เห็นด้วยอย่างยิ่งด้วยเหตุผลดังต่อไปนี้: หากคุณมีการอ้างอิงหลายรายการไปยังรายการที่ผ่าน (หรือพอยน์เตอร์หรืออะไรก็ตาม) มันจะจัดสรรวัตถุใหม่และส่งคืนเป็นสิ่งสำคัญเนื่องจากการอ้างอิงเหล่านั้นจะไม่ถูกต้อง ในภาษาที่ไม่มีการจัดการหน่วยความจำฟังก์ชั่นการจัดสรรอินสแตนซ์ใหม่อ้างว่าเป็นเจ้าของหน่วยความจำและดังนั้นเราจะต้องใช้วิธีการล้างข้อมูลที่เรียกว่าในบางจุด การจัดสรรฮีปอาจมีราคาแพงและดังนั้นจึงเป็นสิ่งสำคัญที่ฟังก์ชันที่เรียกใช้ทำเช่นนั้น ดังนั้นฉันเชื่อว่ามันเป็นสิ่งสำคัญมากที่จะสามารถดูผ่านลายเซ็นวิธีการไม่ว่าจะแก้ไขวัตถุหรือจัดสรรใหม่ ดังนั้นฉันเชื่อว่าเนื่องจากฟังก์ชั่นเพียงแค่ปรับเปลี่ยนวัตถุที่ส่งผ่านลายเซ็นควรจะ: void predictPrice(Item item) ในทุก codebase (ยอมรับกันว่า C และ C ++ codebases ไม่ใช่ภาษาจาวาซึ่งเป็นภาษาที่เรากำลังทำงานอยู่) ฉันได้ทำงานด้วยสไตล์ข้างต้นได้ยึดติดเป็นหลักและเก็บไว้โดยโปรแกรมเมอร์ที่มีประสบการณ์มากกว่า เขาอ้างว่าเนื่องจากขนาดตัวอย่างของโค๊ดเบสและเพื่อนร่วมงานของฉันนั้นเล็กมากจากโค๊ดและเพื่อนร่วมงานที่เป็นไปได้ทั้งหมดดังนั้นประสบการณ์ของฉันจึงไม่มีตัวบ่งชี้ที่แท้จริงว่ามีใครเหนือกว่า ดังนั้นความคิดใด ๆ

4
ทำให้วิธีการที่ไม่ขึ้นอยู่กับเขตข้อมูลอินสแตนซ์คงที่?
เมื่อเร็ว ๆ นี้ฉันเริ่มเขียนโปรแกรมใน Groovy สำหรับกรอบการทดสอบการรวมสำหรับโครงการ Java ฉันใช้ Intellij IDEA กับปลั๊กอิน Groovy และฉันรู้สึกประหลาดใจที่เห็นว่าเป็นคำเตือนสำหรับวิธีการทั้งหมดที่ไม่คงที่และไม่ต้องพึ่งพาฟิลด์อินสแตนซ์ใด ๆ ใน Java อย่างไรก็ตามนี่ไม่ใช่ปัญหา (อย่างน้อยจากมุมมองของ IDE) วิธีการทั้งหมดที่ไม่ได้ขึ้นอยู่กับเขตข้อมูลอินสแตนซ์ใด ๆ ควรถูกเปลี่ยนเป็นฟังก์ชันแบบคงที่หรือไม่? ถ้าเป็นจริงจะมีเฉพาะกับ Groovy หรือเป็น OOP โดยทั่วไปหรือไม่ และทำไม?

2
วิธีที่ดีที่สุดในการจัดโครงสร้างที่เก็บ Git สำหรับ Maven
ฉันต้องการคำแนะนำเกี่ยวกับวิธีการจัดโครงสร้างโครงการของเราใน Git เราใช้ Java และ Maven เป็นเครื่องมือสร้างของเรา Maven kinda ถือว่าโครงการทั้งหมดของคุณมีบรรพบุรุษร่วมกันในที่สุด Maven ยังสามารถเป็นราชินีละครจริงเมื่อสิ่งที่ไม่ติดตั้งตรงทาง Apache ชุดมูลนิธิโครงการของพวกเขา (ทุกคนที่ใช้ปล่อยปลั๊กอินอาจจะรู้ว่าสิ่งที่ผมพูดถึง) เราต้องการ pom พาเรนต์ระดับบนสุดที่ควบคุมเวอร์ชันของปลั๊กอินและสร้างการกำหนดค่า (การกำหนดค่า repo สิ่งที่จะสร้างการตั้งชื่ออนุสัญญารุ่นของปลั๊กอิน ฯลฯ ) Maven ต้องการให้โครงการไอทีทั้งหมดของเราอยู่ในโฟลเดอร์ย่อยของโครงการหลักนั้น นี่หมายถึง repo Git ขนาดใหญ่หนึ่งรายการสำหรับองค์กร สิ่งนี้จะทำให้สภาพแวดล้อมที่มีเสียงดังมาก หากมีสองทีมที่ทำงานในโครงการที่ไม่เกี่ยวข้องพวกเขาจะต้องดึงการรวมตัวของทีมอื่นอย่างต่อเนื่อง ฉันอยากได้ repo หนึ่งต่อโครงการ แต่การปะทะแบบนั้นกับโมเดลลำดับขั้นสุดยอดของ Maven ซึ่งต้องการโครงการย่อยเป็นโฟลเดอร์ย่อย ฉันต้องการคำแนะนำเกี่ยวกับวิธีที่ผู้คนคืนดีแบบจำลองทั้งสองนี้ ... ขอบคุณ!

7
ฉันควรสร้างอินเตอร์เฟสสำหรับวัตถุการถ่ายโอนข้อมูลหรือไม่
มันเป็นความคิดที่ดีหรือเป็นความคิดที่ดีที่จะสร้างส่วนต่อประสานสำหรับการถ่ายโอนข้อมูลวัตถุ? สมมติว่าวัตถุนั้นมักจะไม่แน่นอน แม้ว่าตัวอย่างของฉันจะเป็นภาษาจาวา แต่ก็ควรใช้กับภาษาอื่นที่มีแนวคิดคล้ายกัน interface DataTransferObject { String getName(); void setName(String name); } class RealDataTransferObject implements DataTransferObject { String name; String getName() { return name; } void setName(String name) { this.name = name; } } แน่นอนว่านี่เป็นตัวอย่างที่ง่ายในชีวิตจริงอาจมีหลายสาขา

2
ความหมายของ 'ฟิกซ์เจอร์' ต่างกันอย่างไร?
ฉันมีปัญหาในการเข้าใจแนวคิดของ "การติดตั้ง" ฉันรู้ว่าชุดทดสอบคืออะไรกรณีทดสอบเรียกใช้การทดสอบ แต่ "ฟิกซ์เจอร์" คืออะไร กรณีทดสอบแปร? สำหรับฉันแล้วความหมายหรือความหมายของคำว่า "ฟิกซ์เจอร์" อาจแตกต่างกันเล็กน้อยโดยภาษาการเขียนโปรแกรมหรือโดยการทดสอบกรอบ? ฉันคิดว่าการติดตั้งแบบ phpunit " รหัสเพื่อตั้งโลกขึ้นมาอยู่ในสถานะที่เป็นที่รู้จักและจากนั้นกลับสู่สภาพเดิมเมื่อการทดสอบเสร็จสมบูรณ์. รัฐนี้เป็นที่รู้จักกันจะเรียกว่าการติดตั้งการทดสอบ. " แตกต่างจาก " fitnesse fixture " เล็กน้อย " การติดตั้งเป็นสะพานเชื่อมระหว่างหน้า Wiki และ System Under Test (SUT) ซึ่งเป็นระบบจริงที่จะทดสอบ " มีผู้เชี่ยวชาญในการทดสอบซอฟต์แวร์แถวนี้ที่สามารถตอบคำถามนี้ได้หรือไม่ ยินดีต้อนรับการอ้างอิงถึงภาษาการเขียนโปรแกรมอื่น ๆ

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