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

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

8
การเรียน makefiles มีความสำคัญแค่ไหน? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันทำงานใน c ++ ส่วนใหญ่เป็นงานอดิเรก (ฉันยังเรียนหนังสืออยู่และไม่มีงานจริง) IDEs สร้าง makefile ให้ฉันและฉันก็สงสัยว่ามันคุ้มค่าที่จะเรียนรู้วิธีทำให้มันเป็นตัวของตัวเองหรือเปล่า โดย "การเรียนรู้ที่คุ้มค่า" ฉันหมายถึงฉันควรวางทุกอย่างและเรียนรู้วิธีการเขียนก่อนที่จะเรียนรู้ c ++ ต่อไปหรือไม่ การเรียนรู้พวกเขาจะจำเป็นจริงๆหรือ? ถ้าเป็นเช่นนั้นฉันควรเรียนรู้เกี่ยวกับพวกเขา (ไวยากรณ์ทั่วไปและความเข้าใจวิธีการทำงาน ฯลฯ ) หรือเรียนรู้วิธีการเขียนพวกเขาจริง ๆ ?
12 java  learning  c++  syntax  make 

3
มีหนังสืออัลกอริทึมใดบ้างที่สอนเช่น Head First series หรือไม่? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ในฐานะโปรแกรมเมอร์ Java ฉันจำเป็นต้องเรียนรู้อัลกอริทึม (สำหรับการเขียนโปรแกรมความท้าทาย) ฉันอ่าน Head First Series (JAVA เป็นของฉัน) และพวกเขาก็เป็นมิตรกับสมอง ดังนั้นฉันจึงสงสัยว่าจะมีหนังสืออัลกอริทึมใดที่จะเข้าใจได้ง่ายและไปที่ปมของแต่ละอัลโก
12 java  books  algorithms 

2
ทำไมจาวาไม่ใช้เรเดียนซ์ในการค้นหาพื้นฐาน
java.util.Arrays.sort(/* int[], char[], short[], byte[], boolean[] */) ถูกนำมาใช้เป็น 'การปรับพอร์ตสั้น' แทนการเรียงลำดับแบบ Radix ฉันทำการเปรียบเทียบความเร็วเมื่อไม่นานมานี้และด้วยสิ่งต่าง ๆ เช่น n> 10,000 การเรียงลำดับของกัมมันตภาพรังสีก็เร็วขึ้นเสมอ ทำไม?
12 java  sorting 

2
Spring + Hibernate เลือกแทน EJB 3 หรือไม่
ฉันเข้าใจว่าเมื่อใดก็ตามที่โครงการ JEE ใหม่เริ่มต้นขึ้น (ซึ่งจะใช้เทคโนโลยีเหล่านี้) คนต้องการใช้การผสมผสานของ Spring + Hibernate แทนที่จะเป็น EJB 3 ดูเหมือนว่าผู้เขียนโปรแกรมรุ่นเยาว์จะได้รับคำแนะนำให้ทำเช่นนั้นแทนที่จะเป็น EJB การตั้งค่าส่วนตัวนี้หรือมีเหตุผลที่เกี่ยวข้องหรือไม่ (เช่นแผลเป็นส่วนบุคคลที่สร้างโดยรุ่น EJB ก่อนหน้าซึ่งทำให้เกิดความไม่ไว้วางใจใน EJB หรือเทคโนโลยีขยายตัวเมื่อเทียบกับเหตุผลด้านประสิทธิภาพหรือเส้นโค้งการเรียนรู้)

8
การขัดแย้งสไตล์ Java ภายในทีม
ฉันเป็นส่วนหนึ่งของทีมพัฒนา Java ด้วยกำหนดเวลา 6 สัปดาห์ สิ่งนี้ทำให้การเขียนโค้ดเป็นไปอย่างรวดเร็วมาก อย่างไรก็ตามทีมพัฒนาของเรามีรูปแบบการเข้ารหัสที่แตกต่างกัน ทุกอย่างตั้งแต่แบบแผนชื่อไปจนถึงวิธีการนามธรรมต่างกันในทีม ไม่มีใครรู้ว่าเอกสารใด ๆ ที่กำหนด "มาตรฐาน" สำหรับ java หรือไม่ เพื่อความกระจ่างแจ้งฉันสงสัยว่ามีองค์กรใดบ้างที่จะกำหนดรูปแบบการตั้งชื่อที่เหมาะสมสำหรับตัวแปรและฟังก์ชันตัวอย่างเช่น นี่เป็นสิ่งสำคัญยิ่งเช่นเดียวกับกำหนดเวลาสั้น ๆ ที่เราไม่สามารถใช้เวลาในการพยายามทำความเข้าใจโค้ดของกันและกัน

10
วิธีการตั้งค่าสถานะคลาสภายใต้การพัฒนาใน Java
ฉันทำงานในโครงการฝึกงาน แต่ฉันต้องจากไปก่อนที่ฉันจะสามารถทำทุกอย่างให้เสร็จได้ ฉันมี 1 คลาสที่ไม่เสถียรพอสำหรับการใช้งานจริง ฉันต้องการทำเครื่องหมาย / ตั้งค่าสถานะคลาสนี้เพื่อให้ผู้อื่นไม่ได้ใช้ในการผลิตโดยไม่ได้ตั้งใจ ฉันได้แจ้งให้ทราบแล้วใน Javadoc แต่นั่นก็ดูไม่เพียงพอ ข้อผิดพลาดหรือคำเตือนของคอมไพเลอร์จะดีกว่า รหัสถูกจัดระเบียบเช่นนี้: [Package] | company.foo.bar.myproject |-- Class1.java |-- Class2.java |-- Class3.java <--(not stable) ถ้ามีระดับโรงงานเดียวที่เรียกผู้ที่อยู่ในชั้นเรียนวิธีการสาธารณะฉันจะได้กำหนดวิธีการที่จะเป็นclass3 privateอย่างไรก็ตาม API จะไม่ถูกเปิดเผยเช่นนั้น ผู้ใช้จะใช้คลาสเหล่านั้นโดยตรงเช่นnew Class1();แต่ฉันไม่สามารถสร้างคลาสส่วนตัวระดับสูงได้ วิธีที่ดีที่สุดในการจัดการกับสถานการณ์นี้คืออะไร
12 java 

8
การออกแบบคลาสที่เน้นวัตถุ
ฉันสงสัยเกี่ยวกับการออกแบบคลาสเชิงวัตถุที่ดี โดยเฉพาะอย่างยิ่งฉันมีเวลาตัดสินใจยากระหว่างตัวเลือกเหล่านี้: วิธีการคงที่ vs อินสแตนซ์ method ที่ไม่มีพารามิเตอร์หรือ return value vs method กับพารามิเตอร์และ return value ฟังก์ชันการใช้วิธีการที่ทับซ้อนกัน vs ที่แตกต่างกัน วิธีส่วนตัวและสาธารณะ ตัวอย่างที่ 1: การใช้งานนี้ใช้วิธีการแบบอินสแตนซ์โดยไม่มีค่าส่งคืนหรือพารามิเตอร์โดยไม่มีการซ้อนทับฟังก์ชันการทำงานและวิธีการทั้งหมดสาธารณะ XmlReader reader = new XmlReader(url); reader.openUrl(); reader.readXml(); Document result = reader.getDocument(); ตัวอย่างที่ 2: การใช้งานนี้ใช้วิธีการคงที่มีค่าตอบแทนและพารามิเตอร์ที่มีฟังก์ชั่นที่ทับซ้อนกันและวิธีการส่วนตัว Document result = XmlReader.readXml(url); ในตัวอย่างที่หนึ่งวิธีทั้งหมดเป็นแบบสาธารณะซึ่งทำให้ง่ายต่อการทดสอบหน่วย แม้ว่าวิธีการทั้งหมดจะแตกต่างกัน readXml () ขึ้นอยู่กับ openUrl () ใน openUrl () นั้นจะต้องถูกเรียกก่อน …

3
ปรับปรุงรูปแบบการออกแบบตัวสร้างของ Joshua Bloch หรือไม่
ย้อนกลับไปในปีพ. ศ. 2550 ฉันอ่านบทความเกี่ยวกับ Joshua Blochs เกี่ยวกับ "รูปแบบการสร้าง" และวิธีที่จะสามารถแก้ไขเพื่อปรับปรุงการใช้ตัวสร้างและตัวตั้งค่ามากเกินไปโดยเฉพาะอย่างยิ่งเมื่อวัตถุมีคุณสมบัติจำนวนมากซึ่งส่วนใหญ่เป็นทางเลือก สรุปโดยย่อของรูปแบบการออกแบบนี้จะฝึกหัดที่นี่ ฉันชอบแนวคิดนี้และใช้มันตั้งแต่ ปัญหากับมันในขณะที่มันสะอาดและดีที่จะใช้จากมุมมองของลูกค้าการใช้มันอาจเป็นความเจ็บปวดในก้น! มีสถานที่แตกต่างกันมากมายในวัตถุที่มีการอ้างอิงคุณสมบัติเดียวและทำให้การสร้างวัตถุและการเพิ่มคุณสมบัติใหม่ใช้เวลานาน ดังนั้น ... ฉันมีความคิด ก่อนวัตถุตัวอย่างในสไตล์ของ Joshua Bloch: สไตล์ Josh Bloch: public class OptionsJoshBlochStyle { private final String option1; private final int option2; // ...other options here <<<< public String getOption1() { return option1; } public int getOption2() { …

5
เหตุใด Windows Forms / Swing frameworks จึงสนับสนุนการสืบทอดแทนที่จะเป็น Composition
วันนี้ศาสตราจารย์ของฉันคนหนึ่งให้ความเห็นว่าเขาพบว่ามันแปลกที่ในขณะที่ปรัชญาของ SWT เป็นหนึ่งในการควบคุมของคุณเองโดยการจัดองค์ประกอบสวิงดูเหมือนว่าจะสนับสนุนมรดก ฉันแทบไม่ได้ติดต่อกับเฟรมเวิร์กทั้งคู่ แต่จากสิ่งที่ฉันจำได้ในแบบฟอร์ม Windows ของ C # มักจะขยายการควบคุมเช่นเดียวกับ Swing โดยทั่วไปแล้วคนมักจะชอบแต่งเพลงมากกว่าการถ่ายทอดทางพันธุกรรมทำไมคนใน Swing / Windows Forms จึงไม่ชอบการแต่งเพลงมากกว่าการถ่ายทอดทางพันธุกรรม?
12 c#  java  swing  forms 

4
คุณคิดอย่างไรเกี่ยวกับเครื่องมือติดตา Java ใหม่นั่นไม่ใช่ ORM จริง ๆ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา วิริยะใน Java ในช่วงหลายปีที่ผ่านมาฉันได้รวบรวมประสบการณ์ในด้านการคงอยู่ของนามธรรมใน Java โดยใช้แนวคิดเช่น EJB 2.0, Hibernate, JPA และที่ปลูกในบ้าน พวกเขาดูเหมือนว่าฉันจะมีโค้งการเรียนรู้ที่สูงชันและความซับซ้อน นอกจากนี้ในฐานะที่เป็นแฟนตัวยงของ SQL ฉันคิดว่าตัวแบบนามธรรมจำนวนมากให้นามธรรมที่เป็นนามธรรมมากกว่า SQL สร้างแนวคิดเช่น "เกณฑ์", "เพรดิเคต", "ข้อ จำกัด " ที่เป็นแนวคิดที่ดีมาก แต่ไม่ใช่ SQL แนวคิดทั่วไปของการคงอยู่ที่เป็นนามธรรมใน Java ดูเหมือนจะเป็นไปตามแบบจำลองเชิงวัตถุสัมพันธ์ที่ RDBMS จะตรงกับโลก OO การถกเถียงกันเรื่อง ORM นั้นเป็นเรื่องทางอารมณ์มาโดยตลอดเพราะดูเหมือนว่าจะไม่มีทางแก้ปัญหาเดียวที่เหมาะกับทุกคน jOOQ ความชอบส่วนตัวของฉันในการหลีกเลี่ยงปัญหาที่เกี่ยวกับออมคือการยึดติดกับโลกสัมพันธ์ ตอนนี้การเลือกกระบวนทัศน์ของตัวแบบข้อมูลไม่ควรเป็นหัวข้อของการอภิปรายเนื่องจากเป็นความชอบส่วนตัวหรือเรื่องของแบบจำลองข้อมูลที่เหมาะสมกับปัญหาที่เป็นรูปธรรม การอภิปรายผมอยากจะเริ่มต้นอยู่ที่ประมาณเครื่องมือติดตาของตัวเองมากที่เรียกว่าjOOQ ฉันออกแบบ jOOQ เพื่อให้ข้อดีส่วนใหญ่ของเครื่องมือการคงอยู่ที่ทันสมัยมี: ภาษาเฉพาะโดเมนขึ้นอยู่กับ SQL …
12 java  orm  database  linq 

6
เครื่องมือ / ส่วนเสริมประสิทธิภาพสูงสุดสำหรับนักพัฒนาซอฟต์แวร์สำหรับ Java ใน Eclipse คืออะไร
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันใช้ CodeRush ใน Visual Studio 2010 เพื่อทำการปรับโครงสร้างเขียนรหัสได้เร็วขึ้นด้วยเทมเพลตและนำทางรหัสของฉันเร็วกว่าหุ้น VS ถึง 10 เท่า เมื่อเร็ว ๆ นี้ฉันได้ทำงานกับแอพ Android อื่นและต้องคิดว่า ... ปลั๊กอินเสริมประสิทธิภาพสูงสุดสำหรับ Eclipse คืออะไร ฟรีโดยเฉพาะอย่างยิ่ง ฉันกำลังมองหาปลั๊กอินที่ช่วยเขียนใน Java ไม่ใช่ PHP หรือ Rails หรือภาษาอื่น ๆ ที่ Eclipse รองรับ

2
โครงสร้างของ RESTful Service พร้อม Java Spring สำหรับผู้เริ่มต้น
ฉันค่อนข้างใหม่ในแง่ของทักษะการพัฒนาเว็บ Java ฉันมีโครงการที่ฉันคิดว่าจะทำให้ผู้สมัครที่ดีสำหรับบริการ RESTful จากสิ่งที่ฉันเข้าใจเกี่ยวกับ API น้อย ฉันพยายามที่จะดูรายละเอียดว่ามันควรจะมีโครงสร้างอย่างไร แต่ไม่ได้ไปที่ใดก็ได้ในแง่ของการค้นหาของ google และอ่านเนื้อหาที่ฉันมีอยู่แล้ว ฉันหวังว่าโพสต์นี้จะให้การตรวจสอบและ / หรือการเปลี่ยนเส้นทางในแง่ของความรู้และสมมติฐานของฉันในหัวข้อนี้ ข้อสันนิษฐานปัจจุบันของฉันคือการให้บริการที่สงบของฉันจะมีโครงสร้างดังต่อไปนี้: ข้อมูลฐานข้อมูล (SQL) ORM (ฉันใช้ ORM ที่ค่อนข้างไม่เป็นที่นิยมเรียกว่า CPO แต่สิ่งนี้จะถูกแทนที่ด้วย Hibernate กับคนส่วนใหญ่) คลาสผู้จัดการ Java ด้วยวิธีการที่พูดคุยกับ ORM เพื่อรับข้อมูล คลาสตัวควบคุม Java / คลาสที่จัดการการแมปคำขอและใช้@ResponseBodyเพื่อกำหนด / จัดการ URL และการกระทำของวิธีการจัดการข้อมูลผ่านทางคำกริยา HTTP ( http://mysite.com/computers/dellอาจมีการGETร้องขอด้วยคำว่า "dell" ใน URL เป็นพารามิเตอร์ที่จะส่งคืนอาร์เรย์ของข้อมูล JSON เกี่ยวกับคอมพิวเตอร์เดลล์) บริการนี้ควรทำด้วย Spring Boot …

2
ฉันควรจะทดสอบคลาสย่อยหรือคลาสแม่นามธรรมของฉันหรือไม่
ฉันมีโครงร่างการใช้งานเช่นเดียวกับข้อ 18 จาก Effective Java (การอภิปรายเพิ่มเติมที่นี่ ) มันเป็นคลาสนามธรรมที่มีวิธีการสาธารณะ 2 วิธี methodA () และ methodB () ที่เรียกวิธีการ subclasses เพื่อ "เติมช่องว่าง" ที่ฉันไม่สามารถกำหนดในลักษณะที่เป็นนามธรรม ฉันพัฒนาก่อนโดยการสร้างคลาสที่เป็นรูปธรรมและเขียนการทดสอบหน่วยสำหรับมัน เมื่อชั้นสองมาฉันสามารถแยกพฤติกรรมทั่วไปใช้ "ช่องว่างที่หายไป" ในชั้นสองและมันก็พร้อม (แน่นอนการทดสอบหน่วยถูกสร้างขึ้นสำหรับคลาสย่อยที่สอง) เวลาผ่านไปและตอนนี้ฉันมี 4 คลาสย่อยแต่ละการใช้งาน 3 วิธีการป้องกันแบบสั้นที่เฉพาะเจาะจงกับการใช้งานที่เป็นรูปธรรมของพวกเขาในขณะที่การใช้โครงร่างทำหน้าที่ทั่วไปทั้งหมด ปัญหาของฉันคือเมื่อฉันสร้างการใช้งานใหม่ฉันเขียนการทดสอบอีกครั้ง: คลาสย่อยเรียกวิธีตามที่กำหนดหรือไม่? วิธีการที่กำหนดมีคำอธิบายประกอบที่กำหนดหรือไม่ ฉันจะได้รับผลลัพธ์ที่คาดหวังจากวิธีการ A หรือไม่ ฉันจะได้รับผลลัพธ์ที่คาดหวังจากวิธีการ B หรือไม่ ในขณะที่เห็นข้อดีด้วยวิธีนี้: เป็นเอกสารข้อกำหนดของคลาสย่อยผ่านการทดสอบ มันอาจล้มเหลวอย่างรวดเร็วในกรณีที่มีการปรับโครงสร้างที่มีปัญหา ทดสอบคลาสย่อยโดยรวมและสาธารณะ API ("methodA () ทำงานอย่างไร" และไม่ "วิธีนี้ได้รับการป้องกันหรือไม่") ปัญหาที่ฉันมีคือการทดสอบสำหรับคลาสย่อยใหม่นั้นไม่ใช่เกมง่ายๆ: …

1
Java 8: วิธีปฏิบัติที่ดีในการส่งผ่านสตรีมใน API สำหรับการดำเนินการที่ไม่ราบรื่นหรือไม่
ในไลบรารี pre-Java 8 lambda-heavy เช่น Guava เอาต์พุตใช้อินเตอร์เฟส Java Collection Framework ทั่วไปดังนั้นจึงง่ายต่อการส่งไปยัง API ภายนอก / ภายในและยังคงควบคุมการคำนวณแบบสันหลังยาวหากวิธีไลบรารีทำเช่นนั้น (ขี้เกียจfilter()และtransform()) อย่างไรก็ตามใน Java 8 Streams การเรียกรับ a Collection/ Mapis terminal (เช่นกระตือรือร้น) และจะจัดสรรโครงสร้างข้อมูลใหม่เพื่อเก็บผลลัพธ์ สำหรับการคำนวณที่ซับซ้อนที่มีหลายขั้นตอนและรูปแบบกลยุทธ์อยู่ตรงกลางสิ่งนี้ทำให้เกิดการจัดสรรที่ไม่จำเป็นจำนวนมากเนื่องจากผลลัพธ์ระดับกลาง ดังนั้นผู้คนคิดว่าเป็นวิธีปฏิบัติที่ดีสำหรับ API ภายใน (เช่นกลยุทธ์รูปแบบกลยุทธ์) ในการรับและส่งคืนStreamหรือฉันควรย้อนกลับไปยังคนขี้เกียจ แต่ไม่คล่องตัว (คิดว่าฉันเดา) API ของ Guava แก้ไข: ความกังวลหลักของฉันStreamคือมันสามารถบริโภคได้เพียงครั้งเดียวและผ่านบางสิ่งบางอย่างเช่นSupplier<Stream<X>>ดูยุ่งยากมาก มันเกือบจะผลักดันให้คุณเพิ่งผ่านCollectionและกลับมาอีกครั้งstream()(และจ่ายค่าใช้จ่ายในการประเมินความกระตือรือร้นที่จุดนั้น)
12 java  lambda 

2
ความแตกต่างระหว่างตัวแปรวัตถุ uninitialized และตัวแปรวัตถุเริ่มต้นเป็นโมฆะใน Java คืออะไร
ฉันมีตัวแปรออบเจคต์สองตัวต่อไปนี้ Date a; Date b=null; แน่นอนทั้ง 'a' และ 'b' ไม่ได้อ้างอิงถึงวัตถุใด ๆ ตอนนี้ถ้าฉันเรียกใช้คำสั่งต่อไปนี้ System.out.println(a.toString()); จะมีข้อผิดพลาดเวลารวบรวมขณะที่ถ้าฉันเรียกใช้คำสั่งต่อไปนี้ System.out.println(b.toString()); จะไม่มีข้อผิดพลาดเวลารวบรวม แต่จะมีข้อผิดพลาดรันไทม์ อะไรคือสาเหตุของสิ่งนี้และค่าใดที่จะถูกเก็บไว้ใน 'b' เพื่อแทนค่า Null?
12 java 

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