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

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

5
โครงสร้างโฟลเดอร์แอปพลิเคชันเว็บ Java
ในฐานะผู้เริ่มต้นสู่ J2EE ฉันเพิ่งเริ่มพัฒนาโครงการของตัวเองตั้งแต่เริ่มต้นโดยใช้ Core ของ J2EE: Servlets & Jsps ฉันไม่สามารถประเมินว่าโครงสร้างโฟลเดอร์โครงการของฉันถูกต้องหรือไม่ นี่คือโครงสร้างโฟลเดอร์โครงการของฉัน ก่อนที่จะถามคำถามฉันยอมรับว่าฉันไม่สามารถตอบได้หรือไม่พิสูจน์ว่ามีคนถามฉันทำไมโครงสร้างโฟลเดอร์ประเภทนี้ คำถาม: มันเป็นสัญญาณที่ดีหรือไม่ที่จะนำ jsps ของฉันออกไปนอกเว็บอิน ถ้าไม่เป็นเช่นนั้นทำไม ถ้าใช่ทำไม มีแบบแผนโครงสร้างโฟลเดอร์มาตรฐานสำหรับเว็บแอปพลิเคชัน J2EE หรือไม่ฉันรู้ว่า maven ได้นำมาตรฐานบางอย่างมาใช้ แต่ยังคงเราสามารถปรับแต่งได้ตามความต้องการที่ฉันเชื่อ ฉันทำ googling ไปเล็กน้อยแล้วพบข้ออ้างอิงสองข้อ 1 2 ในคำตอบนั้นไม่ได้อยู่ในหน้าเดียวกันซึ่งฉันไม่สามารถสรุปได้ อะไรคือประเด็นที่ต้องพิจารณาในขณะที่จัดโครงสร้างของโฟลเดอร์สำหรับเว็บแอปพลิเคชัน J2EE ที่สำคัญคือ Jsps เนื้อหาแบบคงที่ควรเข้าที่ & ทำไม

5
อะไรทำให้ JVM มีความหลากหลายในการรองรับภาษา JVM มากมาย
JVM รองรับภาษาอื่น ๆ อีกมากมายนอกเหนือจาก Java เช่นGroovy,Clojure,Scalaetc ซึ่งเป็นภาษาที่ใช้งานได้แตกต่างจาก Java (ฉันหมายถึงJava ก่อนเวอร์ชัน 8ที่Lambda'sไม่รองรับ) ที่ไม่รองรับความสามารถในการทำงานในระดับสูงสิ่งที่ทำให้ JVM อเนกประสงค์นั้น สามารถรองรับทั้ง Object Oriented และ Function Functional ได้หรือไม่

5
เหตุใดฉันจึงเห็นชั้นเรียนที่เปิดใช้งานได้จำนวนมากโดยไม่มีรัฐ
ฉันเห็นคลาสที่สามารถใช้งานได้ทันทีจำนวนมากในโลก C ++ และ Java ที่ไม่มีสถานะใด ๆ ฉันไม่สามารถเข้าใจได้ว่าทำไมผู้คนถึงทำอย่างนั้นพวกเขาสามารถใช้เนมสเปซที่มีฟังก์ชั่นฟรีใน C ++ หรือคลาสที่มีคอนสตรัคเตอร์ส่วนตัวและวิธีการคงที่ใน Java เท่านั้น ประโยชน์อย่างเดียวที่ฉันคิดได้ก็คือคุณไม่จำเป็นต้องเปลี่ยนรหัสส่วนใหญ่หากคุณตัดสินใจในภายหลังว่าคุณต้องการใช้งานที่แตกต่างกันในบางสถานการณ์ แต่นั่นไม่ใช่กรณีของการออกแบบก่อนวัยอันควรหรือไม่? มันอาจจะกลายเป็นชั้นเรียนในภายหลังเมื่อ / หากเหมาะสม ฉันได้รับสิ่งนี้ผิดหรือเปล่า? ไม่ใช่ OOP หากฉันไม่ใส่ทุกสิ่งลงในวัตถุ (เช่นคลาสที่สร้างอินสแตนซ์)? แล้วทำไมมีเนมสเปซและคลาสยูทิลิตี้มากมายในไลบรารีมาตรฐานของ C ++ และ Java อัปเดต: ฉันเคยเห็นตัวอย่างมากมายของสิ่งนี้ในงานก่อนหน้าของฉัน แต่ฉันพยายามหาตัวอย่างโอเพนซอร์ซดังนั้นบางทีมันอาจไม่ใช่เรื่องธรรมดา ถึงกระนั้นฉันก็ยังสงสัยว่าทำไมผู้คนถึงทำและมันเป็นเรื่องธรรมดา

11
ทำไมการใช้ System.out.println () แย่มาก? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการถกเถียงอภิปรายโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา แน่นอนว่าเป็นการดีมากที่จะใช้กรอบการบันทึกสำหรับข้อความแสดงข้อผิดพลาดหรือคำเตือน แต่บางครั้งฉันใช้ System.out.println () ถ้าฉันต้องการลองสิ่งใหม่ ๆ ในเวลาอันสั้น การใช้ System.out.println () นั้นแย่มากจริง ๆ หรือไม่สำหรับการทดสอบอย่างรวดเร็ว?

2
จะวางไฟล์กำหนดค่าสปริงได้ที่ไหน
ฉันต้องการรวม Spring Framework ในโครงการของฉันเข้ากับฝั่งเซิร์ฟเวอร์โดยเฉพาะ ดังนั้นฉันไม่ต้องการวางไว้ในโฟลเดอร์ WEB-INF ของไฟล์ war ฉันควรใส่ applicationContext.xml ไว้ในแต่ละเลเยอร์ (หมายถึงแต่ละโครงการตั้งแต่แบ่งเป็นโครงการที่แตกต่างกันหรือไม่ (Services, Domain และ DAO) การปฏิบัติที่ดีคืออะไร?
18 java  soa  spring 

5
การใช้งานจริงของ DelayQueue [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว อะไรจะเป็นการใช้งานจริงของDelayQueueปัญหาทั่วไปที่ได้รับการออกแบบมาเพื่อแก้ไขคืออะไร

8
การมีเพศสัมพันธ์กับสตริง“ คลาย” มากกว่าด้วยวิธีการเรียน?
ฉันเริ่มโครงการกลุ่มโรงเรียนใน Java โดยใช้ Swing มันเป็น GUI ที่เรียบง่ายบนแอปเดสก์ท็อปฐานข้อมูล อาจารย์ให้รหัสจากโครงการปีที่แล้วเพื่อให้เราเห็นว่าเขาทำสิ่งต่าง ๆ อย่างไร ความประทับใจครั้งแรกของฉันคือรหัสมีความซับซ้อนมากกว่าที่ควรจะเป็น แต่ฉันคิดว่าโปรแกรมเมอร์มักจะคิดอย่างนี้เมื่อดูรหัสพวกเขาไม่ได้แค่เขียน ฉันหวังว่าจะหาเหตุผลว่าทำไมระบบของเขาถึงดีหรือไม่ดี (ฉันถามอาจารย์และเขาบอกว่าฉันจะเห็นทีหลังว่าทำไมมันถึงดีกว่าซึ่งไม่พอใจฉัน) โดยทั่วไปเพื่อหลีกเลี่ยงการมีเพศสัมพันธ์ระหว่างวัตถุแบบจำลองที่มีอยู่ของเขา (ตรรกะทางธุรกิจ) และมุมมองทุกอย่างจะทำกับสตริง วัตถุที่ยังคงอยู่ที่เก็บไว้ในฐานข้อมูลนั้นคือแฮชของสตริงและโมเดลและมุมมอง "สมัครสมาชิก" ซึ่งกันและกันจัดเตรียมคีย์สตริงสำหรับ "เหตุการณ์" ที่พวกเขาสมัครสมาชิก เมื่อมีการทริกเกอร์เหตุการณ์มุมมองหรือรูปแบบจะส่งสตริงไปยังสมาชิกทั้งหมดของผู้ตัดสินใจว่าจะทำอย่างไรกับเหตุการณ์นั้น ตัวอย่างเช่นในหนึ่งในวิธีการฟังการกระทำมุมมอง (ฉันเชื่อว่านี่เป็นเพียงการตั้งค่า bicycleMakeField บนวัตถุที่คงอยู่): else if(evt.getSource() == bicycleMakeField) { myRegistry.updateSubscribers("BicycleMake", bicycleMakeField.getText()); } ในที่สุดการโทรนั้นถึงวิธีนี้ในโมเดลรถ: public void stateChangeRequest(String key, Object value) { ... bunch of else ifs ... else …
18 java  coupling 

6
รหัสเอกสารด้วยตนเองเทียบกับ Javadocs?
เมื่อไม่นานมานี้ฉันกำลังทำงานเกี่ยวกับการปรับโครงสร้างส่วนต่าง ๆ ของรหัสที่ฉันกำลังทำอยู่ไม่เพียง แต่จะเข้าใจตัวเองดีขึ้น แต่ยังทำให้ผู้อื่นที่ทำงานกับรหัสนั้นง่ายขึ้น ฉันมักจะพึ่งพาด้านของความคิดที่ว่าตนเอง documenting รหัสเป็นสิ่งที่ดี ฉันแค่คิดว่ามันสะอาดและถ้ารหัสพูดสำหรับตัวเองดี ... ที่ดี ในอีกทางหนึ่งเรามีเอกสารเช่น javadocs ฉันชอบสิ่งนี้เช่นกัน แต่มีความเสี่ยงบางอย่างที่ความคิดเห็นที่นี่ล้าสมัย (เช่นเดียวกับความคิดเห็นทั่วไป) อย่างไรก็ตามหากพวกเขาทันสมัยพวกเขาจะมีประโยชน์อย่างมากในการพูดทำความเข้าใจกับอัลกอริทึมที่ซับซ้อน อะไรคือแนวทางปฏิบัติที่ดีที่สุดสำหรับสิ่งนี้ คุณวาดเส้นระหว่างรหัสการทำเอกสารด้วยตนเองและ javadocs ได้อย่างไร

6
ทำไม Java ไม่อนุญาตให้ใช้ส่วนหัวดังเช่นใน C ++
ฉันมีคำถามที่ฉันไม่พบคำตอบยกเว้นคำตอบต่อไปนี้ที่ไม่ตรงกับความต้องการของฉัน: "เพราะเจมส์กอสลิงไม่ต้องการ" ฉันรู้ว่า Java สามารถมีอินเตอร์เฟซ (เฉพาะฟังก์ชั่นเสมือนบริสุทธิ์ไม่มีคุณลักษณะ) แต่มันไม่ได้เป็นสิ่งเดียวกันกับคำจำกัดความของชั้นเรียน
18 java 

2
อะไรคือข้อแตกต่างระหว่าง callbacks และ listeners?
ใน blackberry เราสามารถแทนที่ keyChar () วิธีการและจับภาพเหตุการณ์ keypress หรือเราสามารถลงทะเบียน onKeyPressListener ฉันรู้ว่า onKeyListener เป็นรูปแบบการสังเกตการณ์ ใน Android ยังมี KeyEvent.callback และ onKeyListener ทั้งสองเป็นเหตุการณ์ที่ทำให้เราไม่จำเป็นต้องลงทะเบียนสำหรับเหตุการณ์ keyChar ความแตกต่างระหว่างทั้งสองรูปแบบคืออะไร?
18 java 

10
ทำไมการสืบทอดและความหลากหลายจึงใช้กันอย่างแพร่หลาย?
ยิ่งฉันเรียนรู้เกี่ยวกับกระบวนทัศน์การเขียนโปรแกรมที่แตกต่างกันเช่นการเขียนโปรแกรมการทำงานยิ่งฉันเริ่มตั้งคำถามเกี่ยวกับภูมิปัญญาของแนวคิด OOP เช่นการสืบทอดและ polymorphism ครั้งแรกที่ฉันได้เรียนรู้เกี่ยวกับการสืบทอดและ polymorphism ในโรงเรียนและในเวลานั้น polymorphism ดูเหมือนจะเป็นวิธีที่ยอดเยี่ยมในการเขียนรหัสทั่วไปที่อนุญาตให้ขยายได้ง่าย แต่ในการเผชิญกับการพิมพ์เป็ด (ทั้งแบบไดนามิกและแบบคงที่) และฟังก์ชั่นการใช้งานเช่นฟังก์ชั่นการสั่งซื้อที่สูงขึ้นฉันได้เริ่มดูการสืบทอดและความหลากหลายในรูปแบบเพื่อกำหนดข้อ จำกัด ที่ไม่จำเป็น แนวคิดทั่วไปที่อยู่เบื้องหลัง polymorphism คือคุณเขียนฟังก์ชันหนึ่งครั้งและหลังจากนั้นคุณสามารถเพิ่มฟังก์ชันการทำงานใหม่ให้กับโปรแกรมของคุณโดยไม่ต้องเปลี่ยนฟังก์ชั่นดั้งเดิม - สิ่งที่คุณต้องทำคือสร้างคลาสอื่นที่ได้มาซึ่งใช้วิธีการที่จำเป็น แต่วิธีนี้ง่ายกว่ามากในการพิมพ์เป็ดไม่ว่าจะเป็นภาษาแบบไดนามิกเช่น Python หรือภาษาแบบคงที่เช่น C ++ ลองพิจารณาฟังก์ชั่น Python ต่อไปนี้ตามด้วย C ++ แบบคงที่: def foo(obj): obj.doSomething() template <class Obj> void foo(Obj& obj) { obj.doSomething(); } การเทียบเท่า OOP จะเหมือนกับโค้ด Java ต่อไปนี้: public void foo(DoSomethingable …

5
ควรตรวจสอบความถูกต้องของเลเยอร์ใด
ฉันกำลังสร้าง Rest API โดยใช้ Spring Boot และฉันกำลังใช้การตรวจสอบความถูกต้องของไฮเบอร์เนตเพื่อตรวจสอบอินพุตคำขอ แต่ฉันยังต้องการการตรวจสอบความถูกต้องประเภทอื่นเช่นเมื่ออัปเดตข้อมูลจำเป็นต้องตรวจสอบหากไม่มีรหัส บริษัท ฉันต้องการส่งข้อยกเว้นที่กำหนดเอง การตรวจสอบความถูกต้องนี้ควรอยู่ที่ชั้นบริการหรือชั้นควบคุมหรือไม่ ชั้นบริการ: public Company update(Company entity) { if (entity.getId() == null || repository.findOne(entity.getId()) == null) { throw new ResourceNotFoundException("can not update un existence data with id : " + entity.getId()); } return repository.saveAndFlush(entity); } เลเยอร์ควบคุม: public HttpEntity<CompanyResource> update(@Valid @RequestBody Company …

1
ยังคงเป็น antipattern หรือไม่ถ้าเราบันทึกข้อความแสดงข้อผิดพลาดและส่งข้อยกเว้นอื่น?
WebApplication ของเราคือการใช้เพื่อแมข้อยกเว้นบางประการExceptionMapper Responseเราบันทึกข้อความข้อยกเว้นก่อนที่จะส่งข้อยกเว้นใหม่ดังนี้: catch (SomeException ex) { LOG.error(ex.getMessage()); throw new MyException(ex.getMessage()); } เราจะไม่ได้อีกครั้งการขว้างปายกเว้นเดียวกันดังนั้นคำถามของฉันคือถ้าเรื่องนี้จะได้รับการพิจารณาเข้าสู่ระบบและโยน antipattern และจะเป็นการดีกว่าถ้าจะลบการบันทึกในสถานที่ที่คล้ายกันและย้ายไปยังExceptionMapperคลาสต่างๆดังนี้: @Provider public class MyExceptionMapper implements ExceptionMapper<MyException> { // bla bla @Override public Response toResponse(final MyException ex) { LOG.error(ex.getMessage()); return Response.status(400).entity("something").build(); } }

2
คอมไพเลอร์ Java AOT ทำงานอย่างไร
มีเครื่องมือไม่กี่อย่างที่นั่น ( Excelsior JET , ฯลฯ ) ที่อ้างว่าแปลงแอป Java ให้เป็นไฟล์ปฏิบัติการดั้งเดิม ( *.exe) อย่างไรก็ตามมันเป็นความเข้าใจของฉันว่าเครื่องมือเหล่านี้เป็นเพียงการสร้าง wrappers พื้นเมืองที่เรียกใช้ / ดำเนินการjavaจากเปลือกหรือบรรทัดคำสั่ง หากความเข้าใจนั้นไม่ถูกต้องฉันไม่เห็นว่ามันจะเป็นไปได้ หาก JVM ที่ทำงานอยู่ ( javaกระบวนการ) เป็นล่ามประสิทธิภาพสูงโดยการโหลด bytecode จาก Java classfiles ในทันทีฉันไม่เห็นว่าแอป Java (คอลเลกชันของไฟล์ bytecode ที่ทำหน้าที่เป็นอินพุตของ JVM) จะเป็นอย่างไร แปลงเป็นปฏิบัติการจริง ๆ นี้เป็นเพราะกระบวนการ JVM เป็นแล้วปฏิบัติการพื้นเมืองที่ใช้ชุดของไฟล์ bytecode เป็น input หากต้องการรวมไฟล์ bytecode เหล่านั้นและกระบวนการ JVM เข้าด้วยกันเป็นโปรแกรมปฏิบัติการแบบเนทีฟแบบรวมไม่สามารถทำได้โดยไม่ต้องเขียน JVM และยกเลิกการแยกจากข้อมูลจำเพาะ …
18 java  compiler  aot 

1
มีการแทนที่ที่ทันสมัยสำหรับเครื่องมือทดสอบการกลายพันธุ์เช่น Jester for Java หรือไม่?
“ ทำไมแค่คิดว่าการทดสอบของคุณดีเมื่อคุณรู้แน่? บางครั้งเจสเตอร์บอกการทดสอบของฉันว่าเป็นสุญญากาศ แต่บางครั้งการเปลี่ยนแปลงที่พบก็เกิดขึ้นราวกับสายฟ้าออกจากสีน้ำเงิน แนะนำเป็นอย่างยิ่ง” - Kent Beck แต่ฉันเห็นว่าไม่มีแม้แต่แท็กที่ชื่อว่า " Jester " ใน stackoverflow ดังนั้นสิ่งที่ทดแทนที่ทันสมัยสำหรับเจสเตอร์ถ้ามี? เราจะแน่ใจได้อย่างไรว่าการทดสอบหน่วยที่เขียนไว้นั้นมั่นคงกว่าการค้นหาสถิติจากการครอบคลุมโค้ดจากเครื่องมือเช่นCoberturaและClover ?

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