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

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

6
การทำงานกับตัวสร้างสแตติกใน Java
ฉันไม่ได้รับความเข้าใจที่สมบูรณ์ของตัวสร้างแบบคงที่ใน Java หากได้รับอนุญาตทำไมถึงได้รับอนุญาต คุณจะใช้มันในสถานการณ์อะไร มันจะมีจุดประสงค์อะไร ใครช่วยยกตัวอย่างง่ายๆให้ฉันได้ไหม
12 java 

5
ทิ้งข้อยกเว้นรันไทม์ในแอปพลิเคชัน Java
ฉันทำงานเป็นผู้รับเหมาออกแบบองค์กร Java แอปพลิเคชันสำหรับลูกค้าของฉันในบทบาทของลูกค้าเป้าหมายทางเทคนิค แอปพลิเคชันจะถูกใช้โดยผู้ใช้ปลายทางและจะมีทีมสนับสนุนที่จะสนับสนุนแอปพลิเคชันเมื่อเราออกจาก โอกาสในการขายด้านเทคนิคอื่น ๆ ที่ฉันทำงานอยู่ภายใต้ความประทับใจที่การจัดการข้อยกเว้นจะทำให้โค้ดสกปรก ระบบควรโยนข้อยกเว้นที่ตรวจสอบจากระดับบริการและส่วนที่เหลือของรหัสควรโยนข้อยกเว้นรันไทม์จากระดับอื่น ๆ ทั้งหมดเพื่อให้ไม่จำเป็นต้องจัดการกับข้อยกเว้นที่ไม่ได้ตรวจสอบ จำเป็นต้องมีข้อยกเว้นที่ไม่ จำกัด ในแอปพลิเคชันธุรกิจอย่างไร จากประสบการณ์ของฉันในอดีตเกี่ยวกับข้อยกเว้นรันไทม์: 1) ข้อยกเว้นที่ไม่ได้ตรวจสอบทำให้โค้ดไม่สามารถคาดเดาได้เพราะจะไม่แสดงแม้แต่ใน Javadoc 2) การโยนข้อยกเว้นที่ไม่ได้ตรวจสอบในแอปพลิเคชันทางธุรกิจนั้นไม่มีความหมายเพราะเมื่อคุณโยนทิ้งและมันตรงไปที่ใบหน้าของผู้ใช้คุณจะอธิบายให้ผู้ใช้ทราบได้อย่างไร ฉันเคยเห็นเว็บแอปพลิเคชันเพียงพอซึ่งแสดง500 -Internal Error. Contact Administratorว่าไม่มีความหมายสำหรับผู้ใช้หรือทีมสนับสนุนที่จัดการแอปพลิเคชัน 3) การโยนข้อยกเว้นรันไทม์บังคับให้ผู้ใช้ของคลาสโยนข้อยกเว้นเพื่อเดินผ่านซอร์สโค้ดเพื่อตรวจแก้จุดบกพร่องและดูสาเหตุที่ข้อยกเว้นถูกโยน สิ่งนี้สามารถหลีกเลี่ยงได้หาก Javadoc ของข้อยกเว้นรันไทม์มีการบันทึกไว้อย่างดีเยี่ยมซึ่งฉันพบว่าไม่มีกรณี

5
JVM และ Java ของ WORA แตกต่างจากภาษาระดับสูงอื่น ๆ อย่างไร
ในโลกของ Java เรามักจะพูดถึง JVM และเมื่อ Java เป็นรุ่นใหม่มันมีคุณสมบัตินักฆ่าที่คาดว่าจะเป็นของ "Write Once, Run Anywhere" จากวิธีที่ผู้คนพูดคุยและเขียนสิ่งนี้ดูเหมือนจะแตกต่างจากวิธีการทำงานของ Python แต่ฉันไม่ได้ตระหนักถึงวิธีการที่รหัส Python ที่ฉันเขียนจะทำงานแตกต่างกันในเครื่องอื่น (แม้ว่าฉันจะไม่ได้เขียน Python มาก) แล้วฉันจะพลาดอะไรไป? JVM แตกต่างจาก Python interpreter อย่างไร? มีวิธีที่ Python ขาดความเป็นอิสระของแพลตฟอร์ม Java หรือไม่? หรือนี่เป็นเพียงความแตกต่างทางวัฒนธรรม?

2
อะไรคือความแตกต่างของวิธีการเพิ่มและนำเสนอของ PriorityQueue ของ Java?
ในjava.util.PriorityQueueเรามีวิธีการและadd(E e) offer(E e)ทั้งสองวิธีมีการบันทึกไว้เป็น: แทรกองค์ประกอบที่ระบุลงในคิวลำดับความสำคัญนี้ ความแตกต่างระหว่างสองวิธีนี้มีอะไรบ้าง
12 java  collections 

4
วิธีใดดีกว่าในการเรียกใช้เมธอดที่ใช้ได้กับคลาสหนึ่งเท่านั้นที่ใช้อินเทอร์เฟซ แต่ไม่ใช่อีกคลาสหนึ่ง?
โดยทั่วไปฉันต้องดำเนินการกระทำที่แตกต่างกันตามเงื่อนไขที่แน่นอน รหัสที่มีอยู่ถูกเขียนด้วยวิธีนี้ อินเตอร์เฟสพื้นฐาน // DoSomething.java interface DoSomething { void letDoIt(String info); } การใช้งานของพนักงานระดับแรก class DoItThisWay implements DoSomething { ... } การใช้งานของคลาสคนงานที่สอง class DoItThatWay implements DoSomething { ... } ชั้นหลัก class Main { public doingIt(String info) { DoSomething worker; if (info == 'this') { worker = new DoItThisWay(); } else { …

3
ทำไมเราไม่นำเข้าแพ็คเกจในขณะที่ใช้ฟังก์ชั่น String?
ฉันถามตัวเองว่าทำไมเราไม่นำเข้าแพ็คเกจในขณะที่เราใช้ฟังก์ชั่น String เช่นtoUpperCase()? พวกเขาเข้ามาได้อย่างไรโดยไม่ต้องนำเข้าแพ็คเกจ?
11 java  packages 

1
เหตุใด CharSequence จึงไม่ประกอบด้วย (CharSequence)
สิ่งนี้ใช้กับทั้ง Java SE และ Android เนื่องจากสัญญาเหมือนกัน เอกสาร CharSequence สำหรับ Java SE CharSequence เอกสารประกอบสำหรับ Android CharSequenceไม่ได้กำหนดcontains(CharSequence)วิธีการ ฉันไม่สามารถหาเหตุผลว่าทำไมและรวมถึงมันจะมีประโยชน์มากทำให้ไม่ต้องโทรCharSequence#toString()เพื่อตรวจสอบลำดับของอักขระ ยกตัวอย่างเช่นใน Android ของผู้ใช้ที่ถูกบังคับให้โทรEditable#toString()เพื่อดูว่าจะมีลำดับของอักขระแม้ว่าEditableการดำเนินการCharSequenceซึ่งสามารถหลีกเลี่ยงได้ถ้ากำหนดไว้CharSequencecontains(CharSequence) แนวคิดเบื้องหลังตัวเลือกการออกแบบนี้คืออะไร มันเป็นการกำกับดูแลที่มีศักยภาพหรือมีเหตุผลในการออกแบบสำหรับเรื่องนี้?

5
รูปแบบการนับการอ้างอิงสำหรับภาษาที่มีการจัดการหน่วยความจำ?
Java และ. NET มีตัวรวบรวมขยะที่ยอดเยี่ยมที่จัดการหน่วยความจำสำหรับคุณและรูปแบบที่สะดวกสำหรับการปล่อยวัตถุภายนอก ( Closeable, IDisposable) ได้อย่างรวดเร็วแต่เฉพาะในกรณีที่พวกเขาเป็นเจ้าของวัตถุเดียว ในบางระบบทรัพยากรอาจจำเป็นต้องใช้อย่างอิสระโดยสององค์ประกอบและจะได้รับการปล่อยตัวก็ต่อเมื่อทั้งสององค์ประกอบปล่อยทรัพยากร ใน C ++ ยุคใหม่คุณจะแก้ปัญหานี้ด้วย a shared_ptrซึ่งจะปล่อยทรัพยากรอย่างแน่นอนเมื่อทุกอย่างshared_ptrถูกทำลาย มีรูปแบบเอกสารที่ผ่านการพิสูจน์แล้วสำหรับการจัดการและปล่อยทรัพยากรที่มีราคาแพงซึ่งไม่มีเจ้าของคนเดียวในระบบที่รวบรวมขยะแบบไม่มุ่งเน้นวัตถุหรือไม่?

1
บริการ REST เป็นแอปพลิเคชันเซิร์ฟเวอร์สำหรับเครื่องไคลเอนต์ 2000+ เครื่อง มันเป็นความคิดที่ดีหรือไม่?
เราจะสร้างระบบด้วย UI ใน javaFx ที่จะนำไปใช้กับเครื่องมากกว่า 2000 เครื่อง (ขั้นต่ำคือ 2000 แต่จะมีมากขึ้น - สามารถเข้าถึงเครื่องได้ 5,000 เครื่อง) ด้วยเหตุผล / ข้อ จำกัด อื่น ๆ จะต้องติดตั้งบนเครื่องดังนั้นเราจึงไม่สามารถทำได้ด้วยเว็บเบราว์เซอร์อินเตอร์เฟส เครื่องจักรกว่า 2,000 เครื่องจะอยู่ในกลุ่มที่ตั้งทางภูมิศาสตร์ที่แตกต่างกัน โดยทั่วไปแล้วการเชื่อมต่อนั้นดี แต่อาจไม่ดีในสถานที่ห่างไกล แทนที่จะเข้าถึงฐานข้อมูลโดยตรงฉันกำลังคิดถึงการสร้างคลัสเตอร์เซอร์วิส REST ด้วย Spring + Spring Boot + Spring Data (java) เซอร์วิส REST จะยอมรับและส่งคืน Json ฉันคิดว่ามันเป็นความคิดที่ดีเพราะ: บริการจะทำหน้าที่เป็นกลุ่มการเชื่อมต่อฐานข้อมูล (ฉันคิดว่าการเชื่อมต่อ 2000+ บนฐานข้อมูลอาจทำให้เกิดปัญหา); เป็นไปได้ที่จะมีฐานข้อมูลพร้อมบันทึกการจัดส่งไปยังฐานข้อมูลแบบอ่านอย่างเดียวอื่น ๆ มันจะขยายขนาดได้ดีขึ้นเนื่องจากเราสามารถเพิ่มเครื่องจักรให้ทำงานบริการ REST …
11 java  design  rest  spring 

2
การแยกตรรกะทางธุรกิจออกจาก DB- ตรรกะด้วยธุรกรรม
เรามีสามชั้นในใบสมัครของเรา ชั้นบริการเพื่อให้ API ภายนอก เลเยอร์ BO สำหรับตรรกะทางธุรกิจของเราและเลเยอร์ DAO สำหรับการเชื่อมต่อฐานข้อมูลของเรา สมมติว่าทุกครั้งที่เราอัปเดตไฟล์เราต้องการเปลี่ยนบางอย่างในโฟลเดอร์เช่น 'วันที่แก้ไขล่าสุด' ต้องทำสิ่งนี้ในการทำธุรกรรม อาจประสบความสำเร็จและทั้งไฟล์และโฟลเดอร์ได้รับการแก้ไข หรือมีความล้มเหลวและธุรกรรมได้รับการย้อนกลับดังนั้นวัตถุทั้งสองอยู่ในสถานะก่อนหน้า "แก้ไขโฟลเดอร์เมื่อไฟล์ได้รับการแก้ไข" - ปฏิกิริยาเป็นตรรกะทางธุรกิจอย่างแท้จริง นี่ก็หมายความว่ามันอยู่ในเลเยอร์ BO อย่างไรก็ตามเราใช้ Objectify สำหรับฐานข้อมูลของเราดังนั้นในการเริ่มต้นธุรกรรมที่เราต้องเรียก ofy (). transact (... ) ถ้าเราเรียกใช้ฟังก์ชันนี้ในเลเยอร์ BO สิ่งนี้จะหยุดการออกแบบของเราเนื่องจากจะมีการเรียกเฉพาะฐานข้อมูล (Objectify) ในชั้นธุรกิจของเรา อะไรจะเป็นทางออกที่สะอาดสำหรับปัญหานี้

1
Enum มีคุณสมบัติบูลีนมากมาย
ขณะนี้ฉันกำลังทำงานกับ webapp ซึ่งเรามักจะต้องกำหนดเงื่อนไขของเซิร์ฟเวอร์บางอย่างโดยอิงจากหน้าเว็บที่จะถูกส่งคืนให้กับผู้ใช้ แต่ละหน้าจะได้รับรหัสหน้า 4 ตัวอักษรและรหัสหน้าเหล่านี้มีการระบุไว้ในชั้นเรียนเป็นสตริงคงที่: public class PageCodes { public static final String FOFP = "FOFP"; public static final String FOMS = "FOMS"; public static final String BKGD = "BKGD"; public static final String ITCO = "ITCO"; public static final String PURF = "PURF"; // etc.. } และบ่อยครั้งที่ในโค้ดเราเห็นโค้ดลักษณะนี้ ( …
11 java  design  enum 

7
เมื่อใดควรใช้ generics ในการออกแบบอินเตอร์เฟส
ฉันมีอินเทอร์เฟซบางอย่างที่ฉันต้องการให้บุคคลที่สามนำไปใช้ในอนาคตและฉันได้เตรียมการติดตั้งพื้นฐานด้วยตนเอง ฉันจะใช้คู่เพื่อแสดงตัวอย่างเท่านั้น ปัจจุบันพวกเขาถูกกำหนดเป็น สิ่งของ: public interface Item { String getId(); String getName(); } ItemStack: public interface ItemStackFactory { ItemStack createItemStack(Item item, int quantity); } ItemStackContainer: public interface ItemStackContainer { default void add(ItemStack stack) { add(stack, 1); } void add(ItemStack stack, int quantity); } ตอนนี้ItemและItemStackFactoryฉันสามารถคาดการณ์ได้อย่างแน่นอนว่าบุคคลที่สามบางคนจำเป็นต้องขยายในอนาคต ItemStackContainerอาจขยายได้ในอนาคต แต่ไม่ใช่ในลักษณะที่ฉันสามารถคาดการณ์ได้นอกเหนือจากการใช้งานเริ่มต้นที่ให้ไว้ ตอนนี้ฉันพยายามทำให้ห้องสมุดนี้แข็งแกร่งที่สุด นี่ยังอยู่ในช่วงเริ่มต้น (pre-pre-alpha) ดังนั้นนี่อาจเป็นการกระทำของวิศวกรรมมากกว่า …
11 java  generics 

5
อินเตอร์เฟซแยกต่างหากสำหรับวิธีการกลายพันธุ์
ฉันทำงานเกี่ยวกับการรีแฟคเตอร์โค้ดบางส่วนและฉันคิดว่าฉันอาจทำขั้นตอนแรกลงไปในช่องกระต่าย ฉันเขียนตัวอย่างใน Java แต่ฉันคิดว่ามันอาจเป็นผู้ไม่เชื่อเรื่องพระเจ้า ฉันมีอินเตอร์เฟซที่Fooกำหนดเป็น public interface Foo { int getX(); int getY(); int getZ(); } และการดำเนินการตาม public final class DefaultFoo implements Foo { public DefaultFoo(int x, int y, int z) { this.x = x; this.y = y; this.z = z; } public int getX() { return x; } public …

1
วิธีที่มีประสิทธิภาพในการแสดงตรรกะบอร์ดหกเหลี่ยมสำหรับเกมที่มีลักษณะเป็นหอยเป๋าฮื้อ
ฉันต้องติดตั้งเกม AI สำหรับAbaloneและฉันสงสัยว่าอะไรคือวิธีที่ดีที่สุดในการแสดงตรรกะบอร์ดโดยใช้ Java โดยไม่ต้องสิ้นเปลืองทรัพยากรมากเกินไปในการตรวจสอบและอัพเดทตามปกติ ใช้รายการต่าง ๆ ดีกว่าไหม? เมทริกซ์ของวัตถุเซลล์? ข้อเสนอแนะใด ๆ

5
คลาสบูลีนของ Java - ทำไมไม่ enum?
สำหรับฉันแล้วดูเหมือนว่าคลาสบูลีนเป็นตัวเลือกที่เหมาะสมที่สุดที่จะนำไปใช้เป็น enum การดูซอร์สโค้ดคลาสส่วนใหญ่เป็นวิธีสแตติกซึ่งสามารถย้ายได้ไม่เปลี่ยนแปลงไปเป็น enum ส่วนที่เหลือจะกลายเป็น enum ได้ง่ายกว่ามาก เปรียบเทียบต้นฉบับ (ความคิดเห็นและวิธีการแบบคงที่ออก): public final class Boolean implements java.io.Serializable, Comparable<Boolean> { public static final Boolean TRUE = new Boolean(true); public static final Boolean FALSE = new Boolean(false); private final boolean value; public Boolean(boolean value) { this.value = value; } public Boolean(String s) { this(toBoolean(s)); …
11 java  api  source-code 

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