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

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

5
มันเป็นวิธีการเขียนโปรแกรมที่ไม่ดีในการสร้างบางสิ่งบางอย่างในการรับถ้ามันไม่ได้อยู่?
ดังนั้นฉันมีเว็บเซอร์วิสที่มีบางอย่างเหมือนgetAccountที่มันจะส่งคืนตัวบ่งชี้ไปยังบัญชีถ้ามันได้รับ ลูกค้าจะต้องการสร้างบัญชีเสมอหากมีข้อผิดพลาดเกิดขึ้นกับข้อมูลเดียวกันกับที่ทำเสร็จ ฉันกำลังสร้างห้องสมุดความสะดวกสบายสำหรับลูกค้าที่จะจัดการการโทรทางเว็บเซอร์ทั้งหมดภายในเพื่อให้พวกเขาไม่จำเป็นต้องรู้วิธีการโทรด้วยตนเอง สิ่งที่ฉันสงสัยว่าอยู่ในห้องสมุดนี้ถ้าฉันจะสร้างบัญชีgetAccount(accountName)ที่จะได้รับบัญชีหากมีอยู่แล้วและถ้ามันไม่สร้างและส่งคืนข้อมูลนั่นเป็นสิ่งที่ไม่ดีหรือไม่? ฉันควรปล่อยให้ลูกค้าจัดการกับข้อยกเว้นหรือเพียงแค่ตั้งชื่อบางอย่างเช่น getOrCreateAccount? มันสำคัญไหม มันเป็นการปฏิบัติที่ไม่ถูกต้องหรือไม่ที่จะสร้างบางอย่างในการทำงาน

1
การใช้ DTO คืออะไรแทนที่จะใช้ Entity
ฉันกำลังทำงานกับแอปพลิเคชัน RCP ฉันยังใหม่กับแอปพลิเคชันนี้ Spring beans ใช้เพื่อเขียนตรรกะทางธุรกิจเพื่อบันทึก / ดึงเอนทิตี แต่แทนที่จะส่งเอนทิตีโดยตรงไปยังไคลเอนต์เรากำลังแปลงเป็น DTOsและเติมลูกค้า ในขณะที่ประหยัดเรากำลังแปลง DTO เป็นเอนทิตีและประหยัดอีกครั้ง ประโยชน์ของการแปลงเหล่านี้คืออะไร มีคนอธิบายได้ไหม
18 java  spring  entity  map  dto 

7
เหตุใดการสร้างอินสแตนซ์จึงเป็นแบบนี้
ฉันได้เรียนรู้ C # ในช่วงหกเดือนที่ผ่านมาและตอนนี้ฉันกำลังขุดหา Java คำถามของฉันเกี่ยวกับการสร้างอินสแตนซ์ (ในทั้งสองภาษาจริง ๆ ) และมีมากกว่า: ฉันสงสัยว่าทำไมพวกเขาถึงทำแบบนั้น นำตัวอย่างนี้ Person Bob = new Person(); มีเหตุผลที่ระบุวัตถุสองครั้งหรือไม่ เคยมีsomething_else Bob = new Person()บ้างไหม? ดูเหมือนว่าถ้าฉันทำตามจากการประชุมมันจะเป็นเหมือน: int XIsAnInt; Person BobIsAPerson; หรืออาจเป็นหนึ่งในสิ่งเหล่านี้: Person() Bob; new Person Bob; new Person() Bob; Bob = new Person(); ฉันคิดว่าฉันอยากรู้ว่าถ้ามีคำตอบที่ดีกว่า "นั่นเป็นเพียงวิธีที่มันทำ"

4
การแชร์คลาสหรืออินเทอร์เฟซระหว่างโครงการต่าง ๆ
ฉันกำลังมองหาคำตอบใน SO หรือที่นี่ แต่ไม่มีผลลัพธ์ใด ๆ นั่นคือเหตุผลที่ฉันจะถามคุณ สมมติว่าฉันมีสองโครงการที่แตกต่างกัน - ตัวอย่างเช่นส่วนของเซิร์ฟเวอร์และส่วนลูกค้าของแอพ ฉันกำลังพัฒนาส่วนของตัวเองในขณะที่เพื่อนของฉันกำลังสร้างส่วนที่สอง แต่ทั้งสองของเราควรจะใช้อินเตอร์เฟซบางอย่างร่วมกันเช่นUserหรือAccountInfoหรือChangableAccount... สิ่งเพื่อให้แน่ใจว่าการทำงานร่วมกัน ตัวอย่างเช่นหากลูกค้าส่งข้อมูลผู้ใช้ไปยังเซิร์ฟเวอร์เซิร์ฟเวอร์ควรทำงานในคลาสเดียวกัน เหมือนกับอินเทอร์เฟซและอื่น ๆ นอกจากนี้หากมีการเปลี่ยนแปลงใด ๆ ในอินเทอร์เฟซทั่วไปโครงการทั้งสองควรปรับรหัสให้เป็นสถานการณ์ใหม่ ทางออกเดียวที่ฉันเห็นในตอนนี้คือการสร้างโครงการพิเศษหนึ่งโครงการซึ่งกำหนดสิ่งทั่วไปทั้งหมดไว้ เราฉันและเพื่อนของฉันควรเพิ่มโครงการนี้เป็นการอ้างอิงไปยังโครงการหลัก (ไคลเอนต์หรือเซิร์ฟเวอร์) โครงการที่ใช้ร่วมกันสามารถจัดการได้โดยระบบควบคุมเวอร์ชันบางระบบดังนั้นเราจึงมีสถานะที่ทันสมัยที่สุดเสมอ คุณจะแนะนำโซลูชันอื่นใดอีก ปัญหาดังกล่าวได้รับการแก้ไขอย่างไรในแอพมืออาชีพ

4
Java - ใช้ความหลากหลายหรือพารามิเตอร์ประเภทที่ถูกผูกไว้
สมมติว่าฉันมีลำดับชั้นเรียนนี้ ... public abstract class Animal { public abstract void eat(); public abstract void talk(); } class Dog extends Animal { @Override public void eat() { } @Override public void talk() { } } class Cat extends Animal { @Override public void eat() { } @Override public void talk() { …

4
เหตุใดจึงกำหนดวัตถุ Java โดยใช้ส่วนต่อประสาน (เช่นแผนที่) แทนที่จะใช้งาน (HashMap)
ในรหัส Java ส่วนใหญ่ฉันเห็นคนประกาศวัตถุ Java เช่นนี้: Map<String, String> hashMap = new HashMap<>(); List<String> list = new ArrayList<>(); แทน: HashMap<String, String> hashMap = new HashMap<>(); ArrayList<String> list = new ArrayList<>(); ทำไมจึงมีการตั้งค่าเพื่อกำหนดวัตถุ Java โดยใช้อินเตอร์เฟซมากกว่าการใช้งานที่จะใช้จริง?

4
ทำไม Java String จึงไม่มีวิธีการจัดการสตริงแบบคงที่
ทำไมนักออกแบบ Javaไม่สร้างวิธีการจัดการสตริงแบบคงที่ในjava.lang.Stringคลาส? วิธีการต่อไปนี้เป็นสิ่งที่ฉันอ้างถึง แต่คำถามสามารถขยายไปยังวิธีการไม่คงที่อื่น ๆ ในชั้นเรียนเช่นกัน concat(String) substring(int, int) replace(char, char) toLowerCase() replace(CharSequence, CharSequence) toLowerCase(Locale) replaceAll(String, String) toString() replaceFirst(String, String) toUpperCase() split(String) toUpperCase(Locale) split(String, int) trim() substring(int) การมีวิธีการเหล่านี้ในเวอร์ชันที่ไม่คงที่เท่านั้นจะบังคับให้มีการตรวจสอบ Null อย่างชัดเจนไม่ว่าที่ใดก็ต้องเรียกใช้ ยกตัวอย่างเช่นเพียงแค่โทรexample = example.trim()จะนำไปสู่NullPointerExceptionString example = nullถ้า ดังนั้นโปรแกรมเมอร์จะต้องทำการตรวจสอบ boilerplate null ต่อไปนี้: if (example != null) example = example.trim(); // OR: example …
17 java  api-design  null 

3
จำนวนสตริงที่ถูกสร้างในหน่วยความจำเมื่อเชื่อมสตริงใน Java?
ฉันถูกถามเกี่ยวกับสตริงที่ไม่เปลี่ยนรูปแบบใน Java ฉันถูกมอบหมายให้เขียนฟังก์ชั่นที่เชื่อมจำนวน "a" เข้ากับสตริง สิ่งที่ฉันเขียน: public String foo(int n) { String s = ""; for (int i = 0; i < n; i++) { s = s + "a" } return s; } ฉันถูกถามแล้วว่าจะสร้างโปรแกรมจำนวนเท่าใดสตริงโดยสมมติว่าการรวบรวมขยะไม่ได้เกิดขึ้น ความคิดของฉันสำหรับ n = 3 คือ "" "A" "A" "AA" "A" "AAA" "A" โดยพื้นฐานแล้วจะมีการสร้างสตริง 2 สายในการวนซ้ำแต่ละรอบ …
17 java  strings  object 

3
วิธีทดสอบ data access layer
ฉันมีวิธี DAO ที่ใช้ Spring สำหรับการเข้าถึง JDBC มันคำนวณอัตราความสำเร็จของผู้ขายในการขายสินค้า นี่คือรหัส: public BigDecimal getSellingSuccessRate(long seller_id) { String sql = "SELECT SUM(IF(sold_price IS NOT NULL, 1, 0))/SUM(1) FROM transaction WHERE seller_id = ?"; Object[] args = {seller_id}; return getJdbcTemplate().queryForObject(sql, args, BigDecimal.class); } ฉันควรจะทดสอบวิธีนี้หรือวิธี DAO กับ JUnit อย่างไร แนวทางปฏิบัติที่ดีที่สุดในการทดสอบตรรกะการเข้าถึงข้อมูลคืออะไร ฉันคิดว่าจะทดสอบกับฐานข้อมูลแบบฝังที่โหลดด้วยข้อมูลบางส่วน แต่เราไม่ควรทำการทดสอบการรวมที่คล้ายกับสภาพแวดล้อมการผลิตในแง่ของ RDBMS และสคีมาหรือไม่

4
ทำไม Scala ใช้โอเปอเรเตอร์ '_' สำหรับการนำเข้าแพ็คเกจแทน '*' เหมือนกับใน Java
ในความคิดของฉันสิ่งหนึ่งที่ยิ่งใหญ่ที่สุดเกี่ยวกับ Scala คือความสามารถในการทำงานร่วมกันกับ Java และไวยากรณ์ที่คล้ายคลึงกัน สิ่งหนึ่งที่ฉันพบว่าแปลกคือการใช้ตัว_ดำเนินการสำหรับการนำเข้าแพคเกจ wilcard แทนตัว*ดำเนินการที่ใช้ใน Java มีเหตุผลทางเทคนิคสำหรับการใช้_แทน*หรือไม่? ถ้าไม่เช่นนั้นทำไมการเปลี่ยนแปลงนี้ถึงเกิดขึ้น?
17 java  scala 

3
การตัดสินใจสำหรับข้อยกเว้นที่ไม่ได้ตรวจสอบใน Scala
ในฐานะโปรแกรมเมอร์ Java ฉันมีความสำคัญอย่างยิ่งต่อข้อยกเว้นที่ไม่ได้ตรวจสอบ โปรแกรมเมอร์ส่วนใหญ่ใช้เป็นเส้นทางในการเข้ารหัสความง่ายเท่านั้นเพื่อสร้างปัญหาในภายหลัง นอกจากนี้โปรแกรม (แม้ว่าจะไม่เป็นระเบียบ) ที่มีข้อยกเว้นที่ตรวจสอบนั้นมีความแข็งแกร่งมากเมื่อเปรียบเทียบกับโปรแกรมที่ไม่ได้ตรวจสอบ น่าแปลกที่ Scala ไม่มีสิ่งใดที่เรียกว่าข้อยกเว้นที่ตรวจสอบแล้ว Java ที่เลือกและไม่ถูกตรวจสอบทั้งหมดจะถูกตรวจสอบใน Scala แรงจูงใจในการตัดสินใจครั้งนี้คืออะไร? สำหรับฉันมันเปิดปัญหามากมายเมื่อใช้รหัสภายนอกใด ๆ และถ้าโดยบังเอิญเอกสารไม่ดีก็จะส่งผลให้ฆ่า

3
รูปแบบของรัฐละเมิดหลักการทดแทน Liskov หรือไม่?
ภาพนี้นำมาจากการใช้การออกแบบและรูปแบบที่ใช้โดเมนขับเคลื่อน: พร้อมตัวอย่างใน C # และ. NET นี่คือแผนภาพคลาสสำหรับรูปแบบสถานะที่ a SalesOrderสามารถมีสถานะต่างกันในช่วงเวลาของชีวิต อนุญาตให้ช่วงการเปลี่ยนภาพบางอย่างระหว่างรัฐที่แตกต่างกัน ตอนนี้OrderStateคลาสเป็นabstractคลาสและวิธีการทั้งหมดได้รับการสืบทอดไปยังคลาสย่อย หากเราพิจารณาคลาสย่อยCancelledซึ่งเป็นสถานะสุดท้ายที่ไม่อนุญาตให้มีการเปลี่ยนสถานะเป็นสถานะอื่นเราจะต้องoverrideใช้วิธีการทั้งหมดในคลาสนี้เพื่อโยนข้อยกเว้น ตอนนี้ไม่ได้เป็นการละเมิดหลักการทดแทนของ Liskov เนื่องจาก sublcass ไม่ควรเปลี่ยนพฤติกรรมของผู้ปกครองหรือไม่ การเปลี่ยนคลาสนามธรรมเป็นอินเตอร์เฟสแก้ไขสิ่งนี้หรือไม่? จะแก้ไขได้อย่างไร?

5
ฉันจำเป็นต้องรู้จัก servlets และ JSP เพื่อเรียนรู้ spring หรือ hibernate หรือ Java web framework อื่น ๆ หรือไม่? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันถามคนมากมายว่าจะเริ่มเรียนรู้การพัฒนาเว็บ Java ได้อย่างไรฉันรู้จักคอร์ java (Threading, Generics, Collections, ประสบการณ์เล็กน้อยกับ (JDBC)) แต่ฉันไม่รู้จัก JSP และ servlets ฉันมีส่วนแบ่งการพัฒนาพอใช้กับแอพพลิเคชั่นบนเว็บหลายตัวที่ใช้ PHP สำหรับฝั่งเซิร์ฟเวอร์และ HTML, CSS, Javascript, HTML5 สำหรับฝั่งไคลเอ็นต์ คนส่วนใหญ่ที่ฉันถามบอกให้ฉันกระโดดไปข้างหน้าเพื่อไฮเบอร์เนตในขณะที่บางคนบอกฉันว่าฉันไม่จำเป็นต้องเรียนรู้ servlets และ jsps และฉันควรศึกษากรอบการทำงานของฤดูใบไม้ผลิทันที มันเป็นเรื่องจริงเหรอ? ฉันไม่จำเป็นต้องเรียนรู้เซิร์ฟเล็ตและ JSP เพื่อเรียนรู้การจำศีลหรือฤดูใบไม้ผลิ คำตอบทั้งหมดของพวกเขาทำให้ฉันสับสนและตอนนี้ฉันสูญเสียสิ่งที่เรียนรู้หรือศึกษาไปอย่างสิ้นเชิง ฉันรู้สึกว่าถ้าฉันข้ามการเรียนรู้ JSP และ servlets ฉันจะพลาดแนวคิดที่สำคัญมากมายที่จะช่วยฉันในอนาคต ดังนั้นคำถามฉันต้องมีพื้นฐาน / รู้ …

5
Python ทำไมช้ากว่า Java แต่เร็วกว่า PHP [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบ เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันได้เห็นการวัดเปรียบเทียบหลายครั้งหลายครั้งที่แสดงให้เห็นว่าภาษาหลายภาษาทำงานในหน้าที่ที่ได้รับมอบหมาย การเปรียบเทียบเหล่านี้มักจะเปิดเผยว่า Python ช้ากว่า Java และเร็วกว่า PHP และฉันสงสัยว่าทำไมถึงเป็นเช่นนั้น Java, Python และ PHP ทำงานในเครื่องเสมือน ทั้งสามภาษาแปลงโปรแกรมเป็นรหัสไบต์แบบกำหนดเองที่ทำงานอยู่ด้านบนของระบบปฏิบัติการดังนั้นจึงไม่มีใครทำงานได้ตามปกติ ทั้ง Java และ Python สามารถ "รวบรวม" ( .pycสำหรับ Python) แต่__main__โมดูลสำหรับ Python ไม่ได้รวบรวม Python และ PHP ถูกพิมพ์แบบไดนามิกและ Java เป็นแบบคงที่ - นี่คือเหตุผลที่ Java เร็วขึ้นและถ้าเป็นเช่นนั้นโปรดอธิบายว่ามันมีผลต่อความเร็วอย่างไร และถึงแม้ว่าอาร์กิวเมนต์ dynamic-vs-static นั้นถูกต้อง แต่ก็ไม่ได้อธิบายว่าทำไม PHP ถึงช้ากว่า …

3
ทางเลือกอื่นสำหรับกลยุทธ์พอร์ทัลองค์กรในพื้นที่ Java คืออะไร
ความผิดหวังกับพื้นที่พอร์ทัล ฉันเห็นลูกค้าองค์กรขนาดใหญ่จำนวนมากที่ไม่พอใจกับประสบการณ์การใช้งานพอร์ทัลขององค์กรโดยเฉพาะลูกค้าที่อยู่ในพื้นที่ WebSphere Portal Server (WPS) ล้านได้รับการลงทุน แต่สัญญาของเนื้อหาส่วนบุคคลที่มีการรวมและเครื่องมือการทำงานร่วมกันแบบบูรณาการไม่เคยประสบผลสำเร็จ การย้ายไปยัง WPS 7.x เป็นการฉีกขาดครั้งใหญ่และแทนที่การย้ายและลูกค้าสงสัยว่าพวกเขาควรจะย้ายไปที่อื่นอย่างสมบูรณ์หรือไม่ ซอฟต์แวร์พอร์ทัล: ตัวเลือกที่น่ากลัว แต่เป็นทางเลือกอื่น มีผู้เกลียดชังพอร์ทัลจำนวนมากและบางครั้งโซลูชันพอร์ทัลนั้นเกินความจริง แต่เมื่อคุณพูดถึงองค์กรขนาดใหญ่ข้ามชาติเราจะแนะนำพวกเขาให้ออกแบบโซลูชันระดับโลกที่ไม่มีพอร์ทัลเซิร์ฟเวอร์ได้อย่างไร พอร์ทัลไม่สนุกเสมอไปที่จะทำงานกับ Tomcat หรือ JBoss AS แต่เมื่อรวมการใช้งานหลายแอพพลิเคชั่นการจัดการเนื้อหาการอัพเดทแอพพลิเคชั่นแต่ละตัวที่ปรับใช้เป็นไฟล์ war แต่ละไฟล์การจัดการด้านความปลอดภัย จำนวนของการปรับให้เป็นส่วนตัวกับผู้ใช้และช่วยในการจัดการหลายพันหน้าขององค์กรขนาดใหญ่ที่มีเป็นส่วนหนึ่งของเว็บไซต์ภายในและภายนอกของพวกเขามีเทคโนโลยีที่ดีกว่าหรือไม่ รวบรวมข้อมูลเชิงลึกและข้อเสนอแนะของชุมชน ฉันพยายามที่จะรวบรวมข้อมูลเชิงลึกให้มากที่สุด ฉันเขียนบทความเล็กน้อยเกี่ยวกับ TSS เกี่ยวกับปัญหา: ทางเลือกอื่นใดในพอร์ทัลที่มีอยู่ในตลาด? ฉันยังคืนชีพเธรดที่ CodeRanch เพื่อดูว่าฉันสามารถรับข้อมูลเชิงลึกจากทีมที่หล่อเหลานั้นได้หรือไม่ อัพเดทเธรดเพื่อขอทางเลือกใหม่สำหรับ Stragety ของซอฟต์แวร์พอร์ทัล ประมาณปี 2555 ฉันกำลังมองหาข้อมูลเชิงลึกจาก twitterati (@potemcam) มันไม่ได้เป็นการโพสต์ข้ามมากเท่าที่มันเป็นความพยายามที่จะรวบรวมข้อมูลเชิงลึกที่กระตือรือร้นจากชุมชน หากฉันสามารถรับการตอบสนองและประสบการณ์ที่มั่นคงฉันต้องการรวบรวมพวกเขาไว้ในบทความคำแนะนำที่ TSS ทางเลือกที่ถูกต้องกับพอร์ทัลองค์กรในพื้นที่ Java คืออะไร? โดยวิธีการฉันจะเชื่อมโยงข้ามคำถามนี้จากเว็บไซต์อื่น …

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