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

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

5
ทำไม Java / C # ไม่สามารถใช้ RAII ได้
คำถาม: ทำไม Java / C # ไม่สามารถใช้ RAII ได้ ชี้แจง: ฉันรู้ว่าตัวรวบรวมขยะไม่ได้กำหนดไว้ ดังนั้นด้วยคุณสมบัติภาษาปัจจุบันจึงเป็นไปไม่ได้ที่วิธีการกำจัด () ของวัตถุจะถูกเรียกโดยอัตโนมัติเมื่อออกจากขอบเขต แต่สามารถเพิ่มคุณสมบัติพิเศษดังกล่าวได้หรือไม่ ความเข้าใจของฉัน: ฉันรู้สึกว่าการนำไปปฏิบัติของ RAII ต้องเป็นไปตามข้อกำหนดสองประการ: 1. อายุการใช้งานของทรัพยากรจะต้องอยู่ในขอบเขต 2. โดยปริยาย การเพิ่มทรัพยากรต้องเกิดขึ้นโดยไม่มีคำสั่งอย่างชัดเจนจากโปรแกรมเมอร์ คล้ายกับตัวรวบรวมขยะที่เพิ่มหน่วยความจำโดยไม่ต้องมีคำสั่งที่ชัดเจน "implicitness" จะต้องเกิดขึ้นเมื่อใช้งานในชั้นเรียนเท่านั้น แน่นอนว่าผู้สร้างไลบรารีคลาสต้องใช้เมธอด destructor หรือ Dispose () อย่างชัดเจน Java / C # พอใจจุดที่ 1 ใน C # ทรัพยากรการใช้ IDisposable สามารถถูกผูกไว้กับขอบเขต "using": void test() { using(Resource …

7
ความแตกต่างระหว่าง "การซ่อนข้อมูล" และ "การห่อหุ้มข้อมูล" คืออะไร?
ฉันกำลังอ่าน "การทำงานพร้อมกันของ Java ในทางปฏิบัติ" และมีการกล่าวว่า: "โชคดีที่เทคนิคเชิงวัตถุเดียวที่ช่วยให้คุณเขียนคลาสที่มีการจัดการที่ดีและบำรุงรักษาได้เช่น encapsulation และการซ่อนข้อมูล - สามารถช่วยคุณสร้าง thread-safe ชั้นเรียน." ปัญหา # 1 - ฉันไม่เคยได้ยินเกี่ยวกับการซ่อนข้อมูลและไม่รู้ว่ามันคืออะไร ปัญหา # 2 - ฉันคิดเสมอว่า encapsulation ใช้ private vs public และจริงๆแล้วคือการซ่อนข้อมูล คุณช่วยอธิบายการซ่อนข้อมูลคืออะไรและแตกต่างจากการห่อหุ้มข้อมูลได้อย่างไร

9
เว็บเบราเซอร์ Pure Java มันใช้งานได้จริงหรือ? [ปิด]
ฉันรู้ว่าเว็บเบราว์เซอร์ Java เป็นไปได้ แต่จริงหรือ? ฉันเคยเห็นโครงการ Loboและต้องยอมรับว่าฉันประทับใจ แต่จากสิ่งที่ฉันรวบรวมมันดูเหมือนว่าการพัฒนาหยุดชะงักในปี 2009 เบราว์เซอร์ที่เข้ารหัสใน Java บริสุทธิ์ (ไม่มีการผูก WebKit ทุกประเภท) สามารถแข่งขันกับ ผู้ที่อยู่ในอันดับต้น ๆ ของ Chrome หรือ Firefox หรือจะช้ากว่าเดิมขัดขวางผู้ใช้?
29 java  web  browser 

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

6
การใช้ภาษาโปรแกรมที่ Google [ปิด]
ฉันเคยได้ยินว่า Google ใช้ Python, Java และ C ++ แต่สิ่งที่ฉันไม่รู้ก็คือวิธีการใช้ภาษาการเขียนโปรแกรมแต่ละภาษา ฉันหมายถึง Python, Java และ C ++ ที่ใช้กับ Google ทำไมพวกเขาถึงไม่เกิน 3 ภาษาการเขียนโปรแกรมเมื่อ 1 ภาษาเพียงพอ มีใครรู้บ้าง

6
เหตุใดฉันจึงควรใช้การสะท้อน
ฉันใหม่กับ Java; จากการศึกษาของฉันฉันอ่านว่าการสะท้อนนั้นใช้เพื่อเรียกชั้นเรียนและวิธีการต่างๆ ฉันควรใช้การสะท้อนเมื่อใดและอะไรคือความแตกต่างระหว่างการใช้การสะท้อนกับวัตถุที่สร้างอินสแตนซ์และวิธีการโทรในแบบดั้งเดิม
29 java  reflection 

9
ตัวแบ่งบรรทัดก่อน / หลังตัวดำเนินการ [ปิด]
ในขณะที่การประชุมจาวาโค้ดของซันแนะนำให้วางเส้นแบ่งไว้ก่อนที่ผู้ปฏิบัติงานแนวทางอื่น ๆ จะไม่เห็นด้วย ฉันไม่เห็นข้อดีข้อเสียใด ๆ ที่ชัดเจนดังนั้นจึงมีข้อดีของการใช้รูปแบบเหล่านี้กับอีกรูปแบบหนึ่งหรือไม่ String longVarName = a + b + c + d + e + f; VS String longVarName = a + b + c + d + e + f;

4
จะปรับการโยกย้ายจาก Java 6 เป็น Java 7 ได้อย่างไร
เราถูกย้ายจากJava 6เพื่อJava 7 โครงการนี้ล่าช้ากว่ากำหนดและความเสี่ยงจะลดลงในกรณีนี้จะยังคงใช้ Java 6 ต่อไป อะไรคือการปรับปรุงเฉพาะใน Java 7 ที่เราสามารถกลับไปที่ผู้จัดการของเราด้วยและโน้มน้าวเขาว่ามันสำคัญที่จะต้องใช้ JDK 7? กำลังมองหาการแก้ไขข้อบกพร่องที่ฉันสามารถเน้นได้ใน Oracle Java 7 (เทียบกับ Java 6) การแก้ไขในด้านความปลอดภัยประสิทธิภาพการทำงานJava 2D / การพิมพ์ ฯลฯ จะขายได้มากกว่าในกรณีของฉัน คอมไพเลอร์แก้ไขเช่นจะไม่ใช้มาก [ฉันกำลังดูเว็บไซต์จำนวนมากเช่นคู่มือการใช้งาน Oracle , ฐานข้อมูลบั๊ก, คำถามเกี่ยวกับ Stack Overflow] ปรับปรุง: ขอบคุณสำหรับคำตอบ เรากำหนดเวลาอัปเดตเป็นรุ่นถัดไปอีกครั้ง ที่ใกล้ที่สุดที่เราได้รับคือความปลอดภัย ยอมรับคำตอบที่โหวตสูงสุด
28 java  migration 

2
รูปแบบ (anti) รูปแบบต่อไปนี้คืออะไร? อะไรคือข้อดีและข้อเสีย?
ในช่วงสองสามเดือนที่ผ่านมาฉันสะดุดเทคนิค / รูปแบบต่อไปนี้สองสามครั้ง อย่างไรก็ตามฉันไม่สามารถหาชื่อเฉพาะได้และฉันก็ไม่แน่ใจ 100% เกี่ยวกับข้อดีและข้อเสียทั้งหมด รูปแบบไปดังนี้: ภายในอินเตอร์เฟส Java ชุดของวิธีการทั่วไปจะถูกกำหนดตามปกติ อย่างไรก็ตามการใช้คลาสภายในอินสแตนซ์เริ่มต้นจะถูกปล่อยออกมาผ่านส่วนต่อประสาน public interface Vehicle { public void accelerate(); public void decelerate(); public static class Default { public static Vehicle getInstance() { return new Car(); // or use Spring to retrieve an instance } } } สำหรับฉันดูเหมือนว่าข้อได้เปรียบที่ใหญ่ที่สุดคือความจริงที่ว่าผู้พัฒนาต้องการทราบเกี่ยวกับอินเทอร์เฟซไม่ใช่การใช้งานเช่นในกรณีที่เขาต้องการสร้างอินสแตนซ์อย่างรวดเร็ว Vehicle someVehicle = Vehicle.Default.getInstance(); …

3
ทำไมชื่อดั้งเดิมของบูลีนบูลีนจึงไม่ใช่ 'บูล'
Java มี int และ Integer boolean และ Boolean ดูเหมือนจะไม่สอดคล้องกันสักหน่อย boolvs Booleanเพื่อใช้ชื่อที่สั้นลงที่กำหนดไว้สำหรับประเภทดั้งเดิม? หรือ integerเทียบIntegerกับชื่อประเภทที่สอดคล้องกัน? ฉันคิดว่า C ++ ได้ตัดสินใจที่จะใช้boolไม่น้อยก่อนหน้านี้กว่า Java ตัดสินใจที่จะใช้booleanและอาจจะยังมีบางส่วน (ที่ไม่ได้มาตรฐานในเวลา?) ส่วนขยาย C boolเกินไปดังนั้นก็จะมีความสำคัญทางประวัติศาสตร์ ฉันสังเกตเห็นว่าฉันมักจะพยายามใช้สัญชาตญาณในboolตอนแรก (สิ่งดี ๆ ที่ทันสมัยแก้ไขได้ทันทีโดยไม่ต้องมีการคอมไพล์รอบพิเศษ) ดังนั้นจึงเป็นการดีที่จะทราบเหตุผลเบื้องหลังสถานการณ์ปัจจุบัน หากมีคนจำเรื่องราว (หรือบางส่วน) หรือแม้แต่สามารถค้นหาและเชื่อมโยงไปยังการสนทนาทางประวัติศาสตร์ที่เกี่ยวข้องในเน็ตนั่นก็คงจะดีมาก
28 java  history  boolean 

3
ยกเว้นตัวรวบรวมขยะสิ่งอื่นใดที่ทำให้ Java เป็นภาษาการเขียนโปรแกรมที่ไม่ใช่แบบเรียลไทม์
ยกเว้นตัวรวบรวมขยะคุณสมบัติอื่น ๆ ของ Java ที่ไม่เหมาะสมสำหรับการเขียนโปรแกรมแบบเรียลไทม์คืออะไร บนเน็ตทุกครั้งที่มีการพูดถึง Java vs C ++ เกี่ยวกับการเขียนโปรแกรมแบบเรียลไทม์มันจะเป็นตัวรวบรวมขยะที่กล่าวถึงเสมอ มีอะไรอีกไหม?

10
โปรแกรมเมอร์ใช้วิธีภาษาคงที่รับมือกับการขาดเครื่องมือ Javascript อย่างไร
ฉันตั้งโปรแกรมภาษาที่เรียบเรียงเป็นพิเศษโดยเฉพาะ Java สำหรับอาชีพของฉันเป็นส่วนใหญ่ หนึ่งในสิ่งที่ฉันโปรดปรานเกี่ยวกับ Java คือวิธีที่คุณใช้งานได้อย่างมีประสิทธิภาพและรหัสที่คุณต้องเขียนเมื่อใช้เครื่องมือเช่น Eclipse คุณสามารถ: อย่างง่ายดายและโดยอัตโนมัติ refactor วิธีการและคลาสของคุณ ดูสถานที่ทั้งหมดทันทีที่มีการเรียกใช้เมธอดหรือใช้ค่าคงที่ (ลำดับชั้นการโทรเปิด / แสดงการอ้างอิง) การพิมพ์แบบสแตติกหมายถึงคุณสามารถใช้การเติมโค้ดให้สมบูรณ์เพื่อแสดงพารามิเตอร์ / ฟังก์ชั่นทั้งหมดที่มีบนวัตถุ คลิกควบคุมที่ชื่อฟังก์ชัน / สมาชิก / คลาสเพื่อไปที่คำจำกัดความ สิ่งอำนวยความสะดวกทั้งหมดนี้ทำให้ฉันรู้สึกว่า IDE เป็นเพื่อนที่ดีที่สุดของฉัน การเขียนโค้ด Java และโดยเฉพาะการทำความเข้าใจกับโปรแกรมของคนอื่นจะง่ายขึ้นมาก อย่างไรก็ตามฉันถูกเรียกใช้มากขึ้นเรื่อย ๆ เพื่อใช้งาน Javascript และประสบการณ์ของฉันจนถึงตอนนี้ก็ค่อนข้างเชิงลบ โดยเฉพาะอย่างยิ่ง: ไม่มีวิธีการค้นหาจุดเข้าใช้งานของฟังก์ชันในทันที (นอกเหนือจากการค้นหาข้อความธรรมดาซึ่งอาจส่งผลให้มีการค้นหาวิธีการตามลำดับชั้นการโทรที่ตามมาหลังจากนั้นสองหรือสามแห่งซึ่งคุณลืมไปว่าคุณเริ่มต้นที่ไหน) พารามิเตอร์ถูกส่งผ่านไปยังฟังก์ชั่นโดยที่ไม่มีทางรู้ได้ว่าคุณสมบัติและฟังก์ชั่นใดที่มีอยู่ในพารามิเตอร์นั้น (นอกเหนือจากการรันโปรแกรมจริง ๆ แล้วนำทางไปยังจุดที่เรียกใช้ฟังก์ชันและใช้ console.logs เพื่อแสดงคุณสมบัติทั้งหมด สามารถใช้ได้) การใช้งานทั่วไปของฟังก์ชั่นที่ไม่ระบุชื่อเป็นการเรียกกลับซึ่งมักจะนำไปสู่ปาเก็ตตี้ของเส้นทางรหัสสับสนที่คุณไม่สามารถนำทางไปรอบ ๆ อย่างรวดเร็ว และแน่นอนว่า JSLint สามารถตรวจจับข้อผิดพลาดบางอย่างได้ก่อนที่จะทำการรันไทม์ …

9
เหตุใด Scala ไม่ถูกนำไปใช้กับ C หรือ C ++
ไม่มีใครรู้ว่าทำไม Scala ถูกนำไปใช้ใน Java และ. NET แทนที่จะเป็น C หรือ C ++? ภาษาส่วนใหญ่ใช้กับ Cor C ++ [เช่น Erlang, Python, PHP, Ruby, Perl] ข้อดีของ Scala ที่นำมาใช้ใน Java และ. NET นอกเหนือจากการให้สิทธิ์การเข้าถึงไลบรารี Java และ. NET คืออะไร? UPDATE สกาล่าจะไม่ได้รับประโยชน์มากขึ้นหากนำไปใช้ใน C เพราะสามารถปรับได้ดีกว่าการพึ่งพา JVM
28 java  c++  .net  c  scala 

6
มีหนังสือมาตรฐานสำหรับการเรียนรู้ Java ในฐานะนักพัฒนาที่มีประสบการณ์หรือไม่ [ปิด]
ฉันเป็นนักพัฒนา. NET มาประมาณ 5/6 ปีที่ผ่านมาให้หรือรับ ฉันไม่เคยพัฒนา Java แบบมืออาชีพและครั้งสุดท้ายที่ฉันได้สัมผัสมันอาจจะกลับมาเรียนที่วิทยาลัย ฉันเล่นกับภาษาสกาล่านิดหน่อย แต่ก็ไม่มีอะไรจริงจัง เมื่อเร็ว ๆ นี้ฉันได้รับโอกาสให้ทำงานที่ยอดเยี่ยม แต่ใช้ Java แทน. NET ฉันคิดว่าฉันสามารถทำได้โดยใช้ชุดทักษะปัจจุบันของฉันซึ่งหมายความว่าฉันรู้วิธีการเขียนโปรแกรมอย่างดีและคุ้นเคยกับภาษาเช่น C # และ C ++ เป็นต้นไวยากรณ์และสิ่งที่เป็นภาษาทั้งหมดไม่ใช่ปัญหา สิ่งที่ฉันต้องการคือหนังสืออ้างอิงที่ดีมากและหนังสือเกี่ยวกับวิธีคิดใน Java แต่ละภาษา / Framework / Stack พยายามระบุสิ่งต่าง ๆ อย่างแน่นอนและฉันแน่ใจว่า Java ไม่แตกต่างกัน มีหนังสือ Java ยอดเยี่ยมอะไรบ้างที่คุณขาดไม่ได้? มีหนังสือเล่มไหนบ้างที่พูดถึงส่วนสำคัญที่สุดของ Java ที่ต้องเข้าใจก่อนอื่น? ในฐานะที่เป็นข้อความด้านข้างฉันจะทำการพัฒนาเว็บ Java เป็นส่วนใหญ่ ไม่จริง 100% กับประเภทของสิ่งที่พวกเขาใช้สำหรับการคงอยู่, กรอบงาน, เซิร์ฟเวอร์ …
28 java  books 

5
ข้อตกลงชื่อแพ็คเกจ Java มีข้อบกพร่องหรือไม่ [ปิด]
เราทุกคนต่างคุ้นเคยกับแบบแผนของชื่อแพ็คเกจ Java ในการเปลี่ยนชื่อโดเมน คือจะตามแบบแผนเลือกที่จะมีแพคเกจwww.evilcorp.com Java ของพวกเขาcom.evilcorp.stuff มากขึ้นฉันจะเบื่อกับสิ่งนี้ ในฐานะโปรแกรมเมอร์เชิงพาณิชย์ฉันพบครั้งแล้วครั้งเล่าว่าชื่อแพคเกจซอฟต์แวร์นั้นไม่เกี่ยวข้องอย่างสมบูรณ์เนื่องจากการเปลี่ยนโฉมใหม่การซื้อกิจการหรือคล้ายกัน ในโลกโอเพนซอร์สมีการเปลี่ยนแปลงชื่อน้อยกว่าดังนั้นจึงเหมาะสม อย่างไรก็ตามสำหรับฉันดูเหมือนว่าอายุการเก็บรักษาของซอฟต์แวร์ (เชิงพาณิชย์ / ภายใน) หลายชิ้นนั้นมีความยาวมากกว่าที่องค์กรทำไว้ ปัญหาที่เกิดขึ้นมักจะแย่ลงโดยโครงการซอฟต์แวร์ที่นำฝ่ายการตลาดของการใช้ชื่อดูพวกเขาใช้อ้างถึงโครงการบางอย่าง ชื่อที่เปลี่ยนโดยไม่ล้มเหลว 3 เดือนเพื่อให้เสื้อผ้าใหม่ของจักรพรรดิรู้สึกสดชื่นและใหม่ ด้วยเหตุนี้ฉันส่วนใหญ่หยุดใช้โดเมนย้อนกลับเป็นชื่อแพคเกจ จริงอยู่ที่ว่าถ้าทำในปริมาณมากจะมีความเสี่ยงต่อการชนกันของชื่อ แต่แน่นอนว่าสิ่งนี้จะบรรเทาลงได้ด้วยการใช้ชื่อซอฟต์แวร์ "พิเศษ" หลีกเลี่ยงคำทั่วไปหรือใช้โดเมนย้อนกลับสำหรับโครงการที่ตั้งใจจะขาย / เปิดเป็นห้องสมุด . ความคิดอื่น ๆ?
28 java  naming 

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