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

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

3
มัลติเธรดแตกต่างกันอย่างไรในแอปพลิเคชันบนเว็บที่ใช้ Java เทียบกับแอปพลิเคชัน Java สแตนด์อะโลน
ฉันค่อนข้างใหม่สำหรับ Java และประสบการณ์ของฉันถูก จำกัด เฉพาะแอปพลิเคชันบนเว็บที่ทำงานบน Web Container (Jboss ในกรณีของฉัน) ฉันถูกต้องหรือไม่ที่บอกว่าสำหรับเว็บแอปพลิเคชั่นเว็บคอนเทนเนอร์จะดูแลมัลติเธรดหรือไม่ ถ้าเป็นเช่นนั้นฉันสามารถแนะนำดอกยางใหม่ในแอพพลิเคชั่นบนเว็บได้หรือไม่? มีข้อได้เปรียบในการทำเช่นนั้นหรือไม่และในสถานการณ์ใดที่จะต้องทำเช่นนั้น?

2
ห้องสมุดซอฟต์แวร์ขนาดเล็กของฉันควรหลีกเลี่ยงการใช้ห้องสมุดอื่นหรือไม่?
ฉันเพิ่งเปิดตัว Java Library ขนาดเล็กที่มีคลาสและเมธอดไม่กี่ตัว ตั้งแต่ฉันสร้างโครงการด้วย Maven ฉันจึงใช้ห้องสมุดบุคคลที่สามหลายแห่งเพื่อบรรลุเป้าหมายโดยเฉพาะ: commons-lang3 (สำหรับบางสิ่ง Java ทั่วไป) slf4j-api (สำหรับการบันทึก) คอมมอนส์ - io (สำหรับไฟล์เล็ก ๆ น้อย ๆ - ฉันอ่านไฟล์หนึ่งครั้ง) ฉันไม่ต้องการให้ห้องสมุดของฉันปรากฏในสายตาของคนอื่น ฉันควรพยายามลบการพึ่งพาห้องสมุดเหล่านี้เพื่อลดปริมาณการปล่อยหรือไม่ คำแนะนำเกี่ยวกับห้องสมุดประเภทใดควรหลีกเลี่ยงเมื่อพิจารณาการใช้เพิ่มเติมในอนาคต
13 java  libraries  maven 

4
กลยุทธ์การใช้งานที่ดีสำหรับการห่อหุ้มข้อมูลที่ใช้ร่วมกันในซอฟต์แวร์ไปป์ไลน์
ฉันกำลังดำเนินการเกี่ยวกับการให้บริการเว็บที่มีอยู่อีกครั้ง วิธีที่ API ของบริการถูกนำไปใช้คือการมี "การประมวลผลขั้นตอน" ซึ่งมีงานที่จะดำเนินการตามลำดับ ไม่น่าแปลกใจที่งานในภายหลังอาจต้องการข้อมูลที่คำนวณโดยงานก่อนหน้านี้และในปัจจุบันวิธีที่ทำได้คือการเพิ่มเขตข้อมูลลงในคลาส "ไปป์ไลน์" ฉันกำลังคิด (และหวัง?) ว่ามีวิธีที่ดีกว่าในการแบ่งปันข้อมูลระหว่างขั้นตอนไปป์ไลน์กว่าการมีออบเจ็กต์ข้อมูลที่มีเขตข้อมูล zillion ซึ่งบางอันเหมาะสมกับขั้นตอนการประมวลผลบางอย่างและไม่ใช่กับผู้อื่น มันจะเป็นความเจ็บปวดที่สำคัญในการทำให้เธรดปลอดภัยระดับนี้ (ฉันไม่รู้ว่ามันจะเป็นไปได้) ไม่มีทางที่จะให้เหตุผลเกี่ยวกับค่าคงที่ของมัน (และเป็นไปได้ว่ามันจะไม่มี) ฉันเพจผ่านรูปแบบการออกแบบหนังสือของ Gang of Four เพื่อค้นหาแรงบันดาลใจ แต่ฉันไม่รู้สึกว่ามีวิธีแก้ปัญหาในนั้น (Memento ค่อนข้างมีวิญญาณเดียวกัน แต่ไม่มาก) ฉันดูออนไลน์ด้วยเช่นกัน แต่ครั้งที่สองที่คุณค้นหา "ไปป์ไลน์" หรือ "เวิร์กโฟลว์" ที่คุณได้รับนั้นเต็มไปด้วยข้อมูล Unix pipes หรือเอ็นจิ้นเวิร์กโฟลว์และเฟรมเวิร์กที่เป็นกรรมสิทธิ์ คำถามของฉันคือ - คุณจะแก้ไขปัญหาการบันทึกสถานะการดำเนินการของขั้นตอนการประมวลผลซอฟต์แวร์อย่างไรเพื่อให้งานในภายหลังสามารถใช้ข้อมูลที่คำนวณโดยคนก่อนหน้าได้ ฉันเดาว่าความแตกต่างที่สำคัญกับท่อ Unix คือคุณไม่เพียง แต่สนใจผลงานก่อนหน้านี้ทันที ตามที่ร้องขอบางรหัสเทียมเพื่อแสดงกรณีการใช้งานของฉัน: วัตถุ "ไปป์ไลน์บริบท" มีพวงของเขตข้อมูลที่ขั้นตอนไปป์ไลน์ที่แตกต่างกันสามารถเติม / อ่าน: public class …

2
ข้อดีและข้อเสียของการสร้างโค้ดทั้งหมดผ่านคลาสและคอมไพล์ไปยังคลาส (เช่น Java)
แก้ไข: ภาษาของฉันอนุญาตให้มีการสืบทอดหลายครั้งซึ่งแตกต่างจาก Java ฉันเริ่มออกแบบและพัฒนาภาษาโปรแกรมของฉันเองเพื่อวัตถุประสงค์ด้านการศึกษาการพักผ่อนหย่อนใจและอาจเป็นประโยชน์ ตอนแรกฉันตัดสินใจที่จะปิด Java นี่หมายความว่ารหัสทั้งหมดจะถูกเขียนในรูปแบบของคลาสและรหัสนั้นคอมไพล์ลงในคลาสซึ่งโหลดโดย VM อย่างไรก็ตามฉันได้ยกเว้นคุณสมบัติเช่นอินเทอร์เฟซและคลาสนามธรรมเพราะฉันไม่ต้องการมัน ดูเหมือนว่าพวกเขาจะบังคับกระบวนทัศน์และฉันต้องการให้ภาษาของฉันไม่ทำเช่นนั้น ฉันต้องการให้ชั้นเรียนเป็นหน่วยการรวบรวมเพราะดูเหมือนว่าจะสะดวกในการติดตั้งคุ้นเคยและฉันชอบความคิด จากนั้นฉันสังเกตเห็นว่าโดยทั่วไปแล้วฉันจะเหลืออยู่กับระบบโมดูลซึ่งสามารถใช้คลาสเป็น "เนมสเปซ" ได้โดยให้ค่าคงที่และฟังก์ชันโดยใช้staticคำสั่งหรือเป็นเทมเพลตสำหรับวัตถุที่ต้องมีอินสแตนซ์ ในภาษาอื่น ๆ ) ตอนนี้ฉันก็ยังสงสัยว่าอะไรคือ Upside และ Downside ของการมีคลาสเป็นหน่วยการคอมไพล์ นอกจากนี้ความเห็นทั่วไปเกี่ยวกับการออกแบบของฉันก็จะได้รับการชื่นชมมาก โพสต์ข้อมูลเกี่ยวกับภาษาของฉันสามารถพบได้ที่นี่: http://www.yannbane.com/2012/12/kava.html

2
วิธีที่ดีที่สุดสำหรับความคิดเห็นโค้ดอินไลน์คืออะไร
เรากำลังทำการปรับเปลี่ยนบางอย่างให้เป็น codebase เก่าแก่อายุ 20 ปีและฉันกำลังพูดคุยกับเพื่อนร่วมงานของฉันเกี่ยวกับรูปแบบความคิดเห็นในรหัส (plsql, java) ไม่มีรูปแบบเริ่มต้นสำหรับความคิดเห็น แต่ในกรณีส่วนใหญ่คนทำสิ่งนี้ในความคิดเห็น: // date (year, year-month, yyyy-mm-dd, dd/mm/yyyy), (author id, author name, author nickname) and comment รูปแบบที่เสนอสำหรับความคิดเห็นในอนาคตและในอดีตที่ฉันต้องการคือ: // {yyyy-mm-dd}, unique_author_company_id, comment เพื่อนร่วมงานของฉันบอกว่าเราต้องการเพียงความคิดเห็นเท่านั้นและต้องจัดรูปแบบความคิดเห็นทั้งในอดีตและอนาคตในรูปแบบนี้: // comment ข้อโต้แย้งของฉัน: ฉันพูดด้วยเหตุผลด้านการบำรุงรักษาสิ่งสำคัญคือต้องรู้ว่าเมื่อใดและใครทำการเปลี่ยนแปลง (แม้ข้อมูลนี้จะอยู่ใน SCM) รหัสกำลังมีชีวิตอยู่และด้วยเหตุนี้จึงมีประวัติ เนื่องจากไม่มีการเปลี่ยนแปลงวันที่มันเป็นไปไม่ได้ที่จะรู้ว่าเมื่อใดที่มีการเปลี่ยนแปลงเกิดขึ้นโดยไม่เปิดเครื่องมือ SCM และค้นหาในประวัติวัตถุที่ยาวนาน เนื่องจากผู้เขียนมีความสำคัญมากการเปลี่ยนแปลงของผู้เขียนมีความน่าเชื่อถือมากกว่าการเปลี่ยนแปลงของ authory เหตุผลความว่องไวไม่จำเป็นต้องเปิดและนำทางผ่านเครื่องมือ SCM ผู้คนจะกลัวที่จะเปลี่ยนบางสิ่งที่บางคนทำเมื่อ 15 ปีที่แล้วมากกว่าสิ่งที่เพิ่งถูกสร้างหรือเปลี่ยนแปลง เป็นต้น ข้อโต้แย้งของเพื่อนร่วมงานของฉัน: ประวัติอยู่ใน SCM …

3
มันสร้างความแตกต่างถ้าฉันประกาศตัวแปรภายในหรือภายนอกวงใน Java? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน2 ปีที่ผ่านมา ซ้ำได้: คุณประกาศตัวแปรที่ไหน ด้านบนของวิธีการหรือเมื่อคุณต้องการ? มันสร้างความแตกต่างถ้าฉันประกาศตัวแปรภายในหรือภายนอกวงใน Java? นี่คือ for(int i = 0; i < 1000; i++) { int temp = doSomething(); someMethod(temp); } เท่ากับนี้ (เกี่ยวกับการใช้หน่วยความจำ) int temp = 0; for(int i = 0; i < 1000; i++) { temp = doSomething(); …
13 java  variables  loops 

6
พฤติกรรมที่คาดหวังเมื่อมีการร้องขอสำหรับคอลเลกชันจะมีรายการศูนย์
สมมติว่าคุณได้รับสิ่งต่อไปนี้ ... List<Thing> theThings = fubar.Things.All(); หากไม่มีอะไรจะกลับคุณจะคาดหวังอะไรกับสิ่งเหล่านี้ทั้งหมด () จะกลับมา? แก้ไข: ขอบคุณสำหรับความคิดเห็น ฉันจะรอนิดหน่อยและยอมรับผลงานที่มีจำนวนมากที่สุด ฉันเห็นด้วยกับการตอบสนองโดยเฉพาะอย่างยิ่งผู้ที่แนะนำการเก็บสะสมที่ว่างเปล่า ผู้ขายระบุ API ด้วยการโทรหลายครั้งคล้ายกับตัวอย่างด้านบน ผู้ขายที่ทำรายได้ 4.6 ล้านเหรียญสหรัฐผ่านทาง API ของพวกเขาเมื่อปีที่แล้วคือ BTW พวกเขาทำสิ่งที่ฉันไม่เห็นด้วยโดยพื้นฐาน - พวกเขามีข้อยกเว้น
13 java  c# 

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

2
เมื่อใดที่ฉันควรใช้ StringBuilder หรือ StringBuffer
ในเว็บแอปพลิเคชั่นการผลิตโปรแกรมเมอร์เพื่อนของฉันใช้ StringBuffer ทุกที่ ตอนนี้ฉันกำลังดูแลการพัฒนาแอพพลิเคชั่นและการแก้ไข หลังจากอ่านStringBuilderและStringBufferฉันได้ตัดสินใจเปลี่ยนรหัส StringBuffer ทั้งหมดด้วย StringBuilder เพราะเราไม่ต้องการความปลอดภัยของเธรดใน data beans ของเรา ตัวอย่างเช่น: (ในแต่ละ data bean ฉันสามารถเห็นการใช้งานของ StringBuffer) @Override public String toString() { StringBuffer sb = new StringBuffer();// replace it from StringBuilder sb.append(" ABCD : ").append(abcd); sb.append(", EFGH : ").append(efgh); sb.append(", IJKL : ").append(ijkl); } เราสร้าง data beans แยกต่างหากสำหรับแต่ละเซสชั่น / …

8
คุณเริ่มโยกย้ายโครงการ Swing ของคุณไปที่ JavaFX [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันมีโครงการอายุ 4 ปีซึ่งเขียนใน Swing + SwingX ปัจจุบันมันยังมีชีวิตอยู่และยังคงเตะ อย่างไรก็ตามเนื่องจากมีฟีเจอร์ที่เกี่ยวข้องกับการร้องขอ GUI มากขึ้น (ตัวอย่างเช่นตารางต้นไม้แบบเรียงลำดับได้) ฉันเริ่มรู้สึกว่ายากที่จะทำตามคำขอ สิ่งนี้เป็นจริงโดยเฉพาะอย่างยิ่งเนื่องจากไม่มีการพัฒนาใด ๆ ที่เกี่ยวข้องกับโครงการ SwingX นอกจากนี้ฉันแทบจะไม่สามารถหาสิ่งที่ดี แต่ยังคงแข็งขันพัฒนา / พัฒนา / พัฒนากรอบ Java GUI ฉันสงสัยว่านักพัฒนา Swing จะรู้สึกเหมือนกันหรือไม่? คุณเริ่มโยกย้ายโครงการ Swing ของคุณไปยังกรอบงาน GUI ที่พัฒนาแล้วมากกว่าอย่างเช่น JavaFX หรือไม่?
13 java  swing  javafx 

3
การทำงานร่วมกันของเว็บเซิร์ฟเวอร์ WCF กับ Java ดูเหมือนจะมีปัญหาอย่างน่าประหลาดใจ ทรัพยากรที่ดี?
ด้วยโครงการล่าสุดทีมงาน dev. Net ของเราได้รับมอบหมายให้ทำงานร่วมกับโฮสต์บริการเว็บ java ทั่วโลกและเรามีปัญหาที่น่าประหลาดใจมาก (แน่นอนว่าเราไม่แปลกใจอีกต่อไป) เนื่องจาก XML ที่สร้างขึ้นโดย WCF ไม่ได้รับการยอมรับจากบริการ java ดูเหมือนว่ายังไม่มีข้อมูลที่ดีมากนักที่จะค้นหาในเรื่องนี้เราได้รับเคล็ดลับดี ๆ จากบล็อก WCF ที่ยอดเยี่ยมของ Yaron Nave, http://webservices20.blogspot.comและบนฟอรัม MSDN WCF http: //social.msdn.microsoft.com/Forums/en-US/wcf/threads มีใครบ้างในที่นี้ที่รู้สึกว่าพวกเขารู้สึกแย่และรู้ถึงทรัพยากรที่ชัดเจนในเรื่องนี้หรือไม่? จะสนใจในเคล็ดลับเกี่ยวกับหนังสือบล็อกหรือเว็บไซต์ใด ๆ แก้ไข: ฉันขาดการตั้งค่าคำตอบที่ได้รับการยอมรับในเธรดนี้เนื่องจากคำตอบที่ดีที่สุดสองคำตอบมีค่าบางอย่าง: 1. เราอาจท้ายด้วยการใช้ HTTP Webrequest มากกว่าการต่อสู้ WCF 2. แต่ WCF Express Interop Bindings 1.0 ก็เป็นคำแนะนำที่สมเหตุสมผลเช่นกัน
13 java  wcf 

2
เส้นทางการเรียนรู้ที่เหมาะสมที่สุดในการสร้างแอป Android ด้วย Scala คืออะไรโดยไม่ต้องมีประสบการณ์ Java มาก่อน
น่าเสียดายที่ปัจจุบันยังไม่มีหนังสือใด ๆ เกี่ยวกับหัวข้อ 'เรียนรู้การพัฒนา Android ด้วย Scala' ซึ่งจะเป็นทางออกที่ดีที่สุด ฉันเดาว่าฉันจะต้องหยิบหนังสืออย่างน้อย 3 เล่มที่นี่หนึ่งเล่มสำหรับแต่ละหัวข้อ อย่างไรก็ตามฉันไม่รู้ว่าจะสั่งให้อ่านอะไรไม่ว่าจะอ่านพร้อมกันส่วนไหนของหนังสือ Java ที่ฉันสามารถข้ามได้อย่างปลอดภัย ฯลฯ เส้นทางที่ดีที่สุดสำหรับฉันในการเริ่มต้นสร้างแอพ Android โดยใช้ Scala คืออะไร
13 java  android  scala 

3
Clojure เป็นอิสระจาก Java อย่างไร
ฉันค่อนข้างใหม่สำหรับโลก Clojure ฉันขอขอบคุณความจริงที่ว่าเราสามารถเข้าถึงไลบรารี Java ทั้งหมดได้อย่างง่ายดายผ่านคุณสมบัติ Interop ของ Clojure แต่ฉันสงสัยว่า Clojure ยืนอยู่บนขาของตัวเองมากแค่ไหน แน่นอนว่ามีบางแพลตฟอร์มเช่น Android ที่จำเป็นต้องใช้การทำงานร่วมกันกับ Java ได้ตลอดเวลาเพราะไลบรารีหลักถูกเขียนหรือเปิดเผยใน Java นอกจากนี้เนื่องจากสตริง Clojure เป็นสตริง Java ฉันคาดว่าไลบรารีการจัดการสตริงจะเป็น wrapper ในวิธีการ Java String แต่สำหรับงานอื่น ๆ ฉันไม่เห็นเหตุผลว่าทำไมห้องสมุด Clojure ดั้งเดิมไม่สามารถพัฒนาได้ คิดถึง Http, การจัดการวันที่, การแยกวิเคราะห์ XML, การสร้างเทมเพลต, การทำให้เป็นอันดับ JSON และการดีซีเรียลไลเซชัน, OAuth, ไลบรารีคณิตศาสตร์และอื่น ๆ ดังนั้นคำถามของฉันคือ: Clojure มาไกลแค่ไหนที่จะเป็นอิสระจากระบบนิเวศ Java? มันมีไลบรารี่ของตัวเองสำหรับงานเหล่านี้และงานอื่น ๆ หรือไม่?

3
แบบแผนการตั้งชื่อเช่นตัวแปรโลคอลและตัวแปร [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันกำลังพูดคุยกับอนุสัญญาการเข้ารหัสผู้พัฒนาระดับสูงเพื่อนำไปใช้กับโครงการของเรา (ส่วนใหญ่เป็นโครงการ Java / JEE) ฉันไม่เห็นด้วยกับการประชุมที่เขาเสนอ: ชื่อตัวแปรอินสแตนซ์ควรเริ่มต้นด้วย "_", ตัวแปรโลคอลด้วย "loc", และพารามิเตอร์เมธอดด้วย "par" ดังนั้นมันจะง่ายต่อการระบุที่มาและขอบเขตของตัวแปร ในขณะที่เขาหยิบยกข้อโต้แย้งสำหรับหน่วยความจำระยะสั้นและความสามารถในการอ่านฉันไม่เห็นด้วยกับความจริงที่ว่ามันค่อนข้างลดความสามารถในการอ่าน IDEs เช่นตัวแปรรูปแบบ Eclipse แตกต่างกันไปตามประเภทของพวกเขาและปัญหานี้ คุณมีความเห็นข้อโต้แย้งหรือการศึกษาที่สนับสนุนประเด็นของฉัน (หรือคัดค้าน) หรือไม่?
13 java  naming  variables 

5
Java เป็นตัวเลือกที่ดีสำหรับเกมข้ามแพลตฟอร์มหรือไม่? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ฉันต้องการสร้างเกมใน Java และต้องการให้ทำงานบน Windows, Linux และ Mac ฉันค่อนข้างมั่นใจว่า C # เป็นตัวเลือกที่ไม่ดีสำหรับเรื่องนี้และฉันไม่มีประสบการณ์เพียงพอใน C หรือ C ++ ฉันต้องการอยู่ห่างจาก Flash ดังนั้น Java เป็นตัวเลือกที่ดีสำหรับฉันหรือไม่ ส่วนใหญ่ฉันใช้ C # และคิดว่า Java คล้ายกันดังนั้นฉันคิดว่ามันจะไม่เป็นการยากที่จะเรียนรู้ แต่มันเร็วพอหรือไม่? มีภาษาที่เหมาะกับความต้องการของฉันมากกว่า Java หรือไม่?

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