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

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

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

1
ในรูปแบบ MVP ควรดูตัวอย่างวัตถุต้นแบบตามเนื้อหา UI หรือเพียงแค่ส่งเนื้อหาเหล่านี้เป็นพารามิเตอร์ไปยังผู้นำเสนอ
ฉันใช้รูปแบบ MVP ในแอพ android ที่ฉันกำลังพัฒนา ฉันมีองค์ประกอบ 4 อย่าง: AddUserView ที่สามารถเพิ่มผู้ใช้ใหม่: AddUserPresenter The UserInfo (the pojo) UserInfoManager (ตรรกะ businness และผู้จัดการหน่วยเก็บข้อมูล) คำถามของฉันคือ: เมื่อฉันกดปุ่ม "เพิ่ม" ใน AddUserView มันควรจะได้รับเนื้อหาของ textviews ยกตัวอย่าง UserInfo ใหม่และส่งต่อไปยัง Presenter หรือ AddUserView ควรรับเนื้อหา textViews และส่งไปยัง AddUserPresenter ซึ่งอันที่จริงแล้วจะยกตัวอย่าง UserInfo และส่งต่อไปยัง UserInfoManager

3
วิธีจัดการกับ Classes ที่มีชื่อเดียวกัน (แพ็คเกจที่ต่างกัน)
ฉันและทีม R&D ของฉันรักษา codebase ขนาดใหญ่ เราได้แบ่งตรรกะทางธุรกิจของเราออกเป็นหลายแพ็คเกจ บางแห่งที่มีชั้นเรียนที่มีชื่อเหมือน ในขณะที่คุณสามารถเดาได้ว่าชื่อนั้นขัดแย้งกันเมื่อมีการอ้างอิงทั้งสองคลาสในไฟล์ Java เดียวกัน ตัวอย่างเช่น: com.myapp.model (package) - Device (class) - ... com.myapp.data (package) - Device (class) - ... เราได้ถกเถียงกันว่าอะไรคือวิธีปฏิบัติที่ดีที่สุดในการรักษากรณีเหล่านี้และตัวเลือกต่อไปนี้เกิดขึ้น: ตัวเลือกที่ 1 การเปลี่ยนชื่อชั้นเรียนโดยเพิ่มคำนำหน้า ModelDevice DataDevice ตัวเลือกที่ 2 ใช้ชื่อเต็ม package + class เมื่อทั้งคู่ถูกอ้างอิง com.myapp.model.Device com.myapp.data.Device มีอะไรที่ถูกต้องมากขึ้นในแง่ของการจัดการรหัสและความยืดหยุ่น? ขณะนี้เรากำลังผสมทั้งแนวทางและเริ่มมีความไม่สอดคล้องกัน

2
ฉันสามารถตรวจสอบการมีอยู่ของคำอธิบายประกอบในการทดสอบหน่วยได้หรือไม่?
ฉันมีลำดับชั้นคลาส Java ที่เกิดขึ้นจากชั้นนามธรรมและส่วนขยาย N ของมัน ในคลาส abstract ฉันมีเมธอดที่ถูกเพิ่มความคิดเห็นด้วยหมายเหตุประกอบ @Remove แม้ว่าเราจะไม่ได้รับข้อยกเว้นใด ๆ ที่จะไม่ล้มเหลวหากลบหมายเหตุนี้เราอาจได้รับการยกเว้นหน่วยความจำดังนั้นฉันจึงต้องการให้แน่ใจว่าเราสังเกตเห็นอย่างรวดเร็วที่สุดหากคำอธิบายประกอบนี้หายไปในการซ่อมแซมบางส่วน ฉันกำลังพยายามสร้าง GUTS (การทดสอบหน่วยที่ดี) ดังนั้นฉันคิดว่าฉันสามารถจัดทำเอกสาร "ข้อกำหนดทางเทคนิค" นี้ในการทดสอบของฉันพร้อมกรณีทดสอบที่ระบุไว้ แต่นี่ไม่ใช่คุณสมบัติมันเป็นรายละเอียดการใช้งานและไม่ได้เชื่อมโยงกับพฤติกรรมของวิธีการ (วิธีการอาจว่างเปล่า แต่ต้องมีอยู่และจะต้องมีคำอธิบายประกอบ) การสร้างแบบทดสอบสำหรับสิ่งนั้นหรือมีวิธีอื่นในการตรวจสอบการมีอยู่ของคำอธิบายประกอบนี้หรือไม่?

1
อะไรคือความแตกต่างระหว่าง“ kk” และ“ HH” +1 ใน ISO-8601
ใน ISO-8601 มีรูปแบบหลายชั่วโมงรูปแบบหนึ่งคือ "kk" สำหรับชั่วโมง 1-24 จุดประสงค์ของสิ่งนี้คืออะไร? มีประเทศที่ชดเชยเวลาของพวกเขาหรือไม่? สำหรับการใช้งานทางทหารหรือไม่? บทความวิกิพีเดียไม่ได้ชี้แจงธรรมชาติที่แท้จริงระหว่าง HH และ kk แหล่งที่มาหลักของความกังวลของฉันคือพฤติกรรมของรูปแบบในที่SimpleDataFormatter แก้ไข: ส่วนโดยตรงจาก SimpleDateFormat ที่ฉันอ้างถึงคือ: ชั่วโมงในวัน (0-23) หมายเลข 0 k ชั่วโมงในวัน (1-24) หมายเลข 24 กำลังใช้ ... HH:mm:ss // 00:00:00 kk:mm:ss // 01:00:00

1
วิธีเก็บตัวอย่างโค้ดใน javadocs เป็นปัจจุบัน
ฉันกำลังทำงานในห้องสมุดขนาดเล็กที่ให้การใช้งานของตัวชี้วัดสตริงพื้นฐานที่รู้จักกันดี ส่วนใหญ่เพื่อการศึกษาของฉันเอง ดังนั้นการพัฒนาจึงเกิดขึ้นทุกครั้งที่ฉันมีเวลาว่าง ด้วยเหตุนี้ฉันจึงเป็นกระบวนการอัตโนมัติโดยอัตโนมัติดังนั้นฉันจึงสามารถเผยแพร่เวอร์ชันได้บ่อยเท่าที่ฉันทำงานโดยไม่ต้องใช้ความพยายามมากเกินไป อย่างไรก็ตามการบำรุงรักษาเอกสาร Java ยังคงเป็นภาระเพราะมันมีตัวอย่าง เนื่องจาก API วิวัฒนาการขึ้นฉันต้องตรวจสอบตัวอย่างแต่ละครั้งซ้ำแล้วซ้ำอีก มีวิธีที่ดีกว่าในการทำเช่นนี้? ฉันได้พิจารณาการย้ายเอกสารและตัวอย่างไปเป็นโครงการแยกต่างหาก (เช่นCaliper Tutorial ) เพื่อให้สามารถนำแฟคตอริ่งและคอมไพล์ไปพร้อมกับรหัสปกติอีกครั้ง อย่างไรก็ตามมันจะย้ายเอกสารออกไปจากชั้นเรียนที่มันเป็นเรื่องเกี่ยวกับ ใช่แล้ว ฉันต้องการเค้กและกินด้วย : D * <h2>Tokenization</h2> * * Tokenization cuts up a string into tokens e.g. * <code>chilperic ii son of childeric ii</code> is tokenized into * <code>[chilperic, ii, son, of, * childeric, …

8
อะไรทำให้ C หยุดการคอมไพล์ / ตีความ / JIT'ed?
Java นั้นได้รับการยกย่องในเรื่องของการพกพาที่น่าทึ่งซึ่งฉันเข้าใจว่าเป็นเพราะ JVM คำถามของฉันคือสิ่งที่ห้ามไม่ให้ C ถูกคอมไพล์ / ตีความ / JIT'ed .. ถ้าเป็นเช่นนั้น C สามารถเขียนได้หนึ่งครั้งและทำให้มันทำงานบนอุปกรณ์ที่คุณเคยมี แต่นี่ไม่ใช่กลไกที่เป็นที่นิยมสำหรับการประมวลผลโปรแกรม C อะไรคือข้อเสียของการประมวลผล C ด้วยวิธีนี้และอะไรคือข้อดีของการประมวลผล Java ด้วยวิธีนี้และไม่ได้รวบรวมรหัสเครื่องนอกเหนือจากความสามารถในการพกพาของหลักสูตร?

5
มันสมเหตุสมผลหรือไม่ที่จะ "โปรแกรมไปยังส่วนต่อประสาน" ใน Java?
ฉันได้เห็นการอภิปรายในคำถามนี้เกี่ยวกับวิธีการที่คลาสที่ใช้จากอินเทอร์เฟซจะถูกยกตัวอย่าง ในกรณีของฉันฉันกำลังเขียนโปรแกรมขนาดเล็กมากใน Java ที่ใช้อินสแตนซ์ของTreeMapและตามความเห็นของทุกคนที่นั่นควรมีอินสแตนซ์เช่น: Map<X> map = new TreeMap<X>(); ในโปรแกรมของฉันฉันกำลังเรียกใช้ฟังก์ชั่นmap.pollFirstEntry()ซึ่งไม่ได้ประกาศในMapอินเทอร์เฟซ (และอีกสองสามคนที่อยู่ในMapอินเทอร์เฟซด้วย) ฉันจัดการเพื่อทำสิ่งนี้ได้โดยการส่งไปยังTreeMap<X>ทุกที่ที่ฉันเรียกวิธีนี้เช่น someEntry = ((TreeMap<X>) map).pollFirstEntry(); ฉันเข้าใจถึงข้อดีของแนวทางการเริ่มต้นตามที่อธิบายไว้ข้างต้นสำหรับโปรแกรมขนาดใหญ่อย่างไรก็ตามสำหรับโปรแกรมขนาดเล็กมากที่วัตถุนี้จะไม่ถูกส่งผ่านไปยังวิธีอื่นฉันคิดว่ามันไม่จำเป็น แต่ถึงกระนั้นฉันกำลังเขียนโค้ดตัวอย่างนี้เป็นส่วนหนึ่งของการสมัครงานและฉันไม่ต้องการให้รหัสของฉันดูไม่ดีหรือรก สิ่งที่จะเป็นทางออกที่หรูหราที่สุด? แก้ไข: TreeMapผมอยากจะชี้ให้เห็นว่าฉันสนใจมากขึ้นในการเข้ารหัสการปฏิบัติที่ดีในวงกว้างแทนของการประยุกต์ใช้ฟังก์ชั่นที่เฉพาะเจาะจง เนื่องจากคำตอบบางข้อได้ชี้ให้เห็นแล้ว (และฉันได้ทำเครื่องหมายเป็นคำตอบแรกให้ทำ) ควรใช้ระดับนามธรรมที่สูงขึ้นโดยไม่สูญเสียฟังก์ชันการทำงาน

3
เรามาเต็มวงกลมด้วย microservices ย้อนกลับไปยังโรงเรียนเก่า
ในแง่ของสถาปัตยกรรมซอฟต์แวร์และการออกแบบ microservices "stack up" (เล่นสำนวนเจตนา) กับมิดเดิลแวร์อย่างไร ฉันมาจาก Java และดูเหมือนว่าเมื่อคุณย้ายออกจาก REST แบบตรงเป็น API และแยกแยะเลเยอร์และพารามิเตอร์การเชื่อมต่อต่าง ๆ อย่างน้อยที่สุดใน Java คุณเกือบจะกลับมาที่ความคิดเก่า ๆ . เราได้กลับมาสู่การจำลองเสมือน ... ซึ่ง JVM นั้นเสมือนจริงอยู่แล้ว ด้วยวิธีที่ไม่เชื่อเรื่องพระเจ้าคุณสามารถและฉันจะเถียงข้อได้เปรียบที่เป็นนามธรรม, สงบเงียบ API กับ CORBA หรือในทางที่มีจาวาเป็นศูนย์กลางมากกว่า JMS หรือ MDB ในครั้งเดียว EJB เป็นเรื่องใหญ่ใน Java แล้วมันได้รับการยอมรับว่าเป็นกลุ่มของคลัสเตอร์ แต่ตอนนี้เรากลับไปที่จุดเริ่มต้นหรือไม่? หรือ microservices เสนอสิ่งที่ CORBA หรือดีกว่า MDB ขาดหรือไม่ เมื่อฉันอ่าน (TLDR) มาร์ตินฟาวเลอร์อธิบายการใช้ไมโครไซต์มันจะทำให้ฉันเป็นทางออกที่ดีสำหรับปัญหาที่ไม่ดีถ้าคุณต้องการ หรือค่อนข้างเป็นวิธีการปิดที่เปิดใจซึ่งนำเสนอระดับของความซับซ้อนเพียงผลักดันปัญหาไปรอบ …

2
การพัฒนาบน Android โดยไม่ต้องใช้ Java [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ตามชื่อของคำถามนี้ฉันขอรอคอยที่จะพัฒนาแอปบนแพลตฟอร์ม Android โดยไม่ต้องใช้ Javaเลย ไม่ได้หมายความว่าฉันมีความพยาบาทต่อภาษาที่สวยงามนี้หรือฉันไม่รู้วิธีพัฒนาแอพใน Java แต่ฉันกำลังพิจารณาว่าใบสมัครของฉันสามารถพัฒนาได้โดยใช้ XML, JavaScript และ Ajax เท่านั้น ดังนั้นฉันยังต้องพึ่งพา Java หรือไม่ มีข้อเสียใด ๆ ที่ไม่ได้ใช้ Java หรือไม่? ฉันจะยังสามารถขยายแอพของฉันในอนาคตได้หรือไม่? ฉันถามคำถามงี่เง่าจริง ๆ ที่นี่หรือไม่ กรุณาช่วยฉันออก แก้ไข: แอพที่ฉันกำลังทำงาน (ยังอยู่บนไวท์บอร์ดต้องการความคิดเห็นของผู้เชี่ยวชาญเกี่ยวกับวิธีการนี้) จะดึงข้อมูลข่าวจากแหล่งข่าวต่างๆและจะแสดงต่อผู้ใช้

2
String [] args vs (String.... args)
เมื่อเขียนโปรแกรมสำหรับ android ทุกครั้งที่ฉันใช้ AsyncTask วิธี doInBackground จะมีลักษณะดังนี้ protected String doInBackground(String... args) แต่เมื่อใช้อาร์กิวเมนต์ที่ใดก็ได้ในบล็อกนั้นฉันสามารถเข้าถึงพวกเขาเหมือนอาร์เรย์สตริงปกติเช่นในโปรแกรมของฉัน @Override protected String doInBackground(String... args) { String details = ""; try { details = facade.getRecipeDetails(args[0]); } catch(Exception ex) { ex.printStackTrace(); } return details; } ซึ่งใช้งานได้ดีและฉันไม่มีปัญหาในการจัดการกับมัน แต่ฉันสงสัยว่าทำไมพวกเขาจึงใช้ (String.... args) แทนที่จะเป็นสตริงปกติ เป็นเพราะในวิธีการโทรคุณก็สามารถเขียนสิ่งที่ชอบ: new AsyncHandler.execute("argument1","argument2","argument3",...) แทนที่จะสร้างอาร์เรย์ใหม่เพื่อส่งต่ออาร์กิวเมนต์? แม้ว่าเราจะเขียนได้ new AsyncHandler().execute(new String[]{"Argument1","Argument2"}); ซึ่งเป็น …
9 java  android 

2
การเรียนรู้สกาล่ารู้สึกท้อแท้ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันมาจากพื้นหลัง Java และพยายามเรียนรู้สกาล่า ในขณะที่ฉันรู้สึกแย่มากดูเหมือนว่าจะมีอะไรมากกว่านี้ที่จะเรียนรู้กับสกาล่าวิธีการต่าง ๆ มากมายในการทำสิ่งเดียวกัน ฉันสงสัยว่าใครมีคำแนะนำใด ๆ เกี่ยวกับการเริ่มต้นและใช้เวลานานแค่ไหนที่พวกเขาจะรู้สึกมีความสามารถพอสมควรในภาษา? แม้แต่เรื่องเล็ก ๆ น้อย ๆ เช่นความเข้าใจในวงวนก็มีพลังมาก แต่ก็เป็นเพียงส่วนหนึ่งของไวยากรณ์ที่คุณต้องจดจำ!
9 java  scala 

9
มี OOP การเรียนรู้ที่แตกต่างกันในภาษาการเขียนโปรแกรมที่แตกต่างกันหรือไม่? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันต้องการเรียนรู้ OOP ฉันรู้จัก Python และฉันรู้เรื่องเล็ก ๆ น้อย ๆ เกี่ยวกับ OOP แต่เมื่อฉันค้นหา "เรียนรู้ OOP" ในฟอรัมฉันเห็นชายคนหนึ่งพูดว่า "Python ใหม่มากนั่นคือสาเหตุที่คุณไม่สามารถเรียนรู้ OOP บน Python ได้คุณควรเรียนรู้ Java แล้วเข้าใจ OOP บน Java" จริงป้ะ? มีความเข้าใจที่แตกต่างกัน OOP ในภาษาการเขียนโปรแกรมที่แตกต่างกันหรือไม่? ชอบเรียนรู้เกี่ยวกับ Java, C #, C ++, Perl หรือ Python หรือไม่

1
เป็นไปได้หรือไม่ที่จะสร้างพอร์ตจากแอปพลิเคชัน C ++ ไปยัง Java ผ่าน LLVM
มันทำงานได้อย่างไรกับพอร์ตแอปพลิเคชัน C ++ ไปยัง Java bytecode โดยใช้ LLVM (ฉันเดา LLJVM) สิ่งที่เป็นอยู่ในปัจจุบันคือเรามีกระบวนการเขียนใน C ++ แต่ไคลเอนต์ใหม่ได้รับคำสั่งให้สามารถรันโปรแกรมในรูปแบบที่หลากหลายโดยใช้ Java Virtual Machine ที่ไม่มีรหัสพื้นเมือง (ไม่มี JNI) แนวคิดคือสามารถนำ jar ที่สร้างขึ้นมาและคัดลอกไปยังระบบอื่น (Linux, Win, 32 bits - 64 bits) และควรใช้งานได้ มองไปรอบ ๆ ดูเหมือนว่ามันเป็นไปได้ที่จะรวบรวมรหัส C ++ กับ LLVM IR และจากนั้นรหัสไปยัง java bytecode ไม่จำเป็นต้องใช้รหัสที่สร้างขึ้นเพื่อให้สามารถอ่านได้ ฉันมีการทดสอบเล็กน้อยกับสิ่งที่คล้ายกันโดยใช้ emscripten นี้ใช้รหัส C ++ และรวบรวมไปยัง JavaScript …
9 java  c++  porting 

2
การบำรุงรักษา OpenJDK ทำงานอย่างไรในทางปฏิบัติ
โดยเฉพาะฉันต้องการทำความเข้าใจความแตกต่างระหว่าง JDK ของ Oracle และ OpenJDK ในแง่ของการแก้ไขข้อบกพร่องและโปรแกรมแก้ไขอื่น ๆ สาขาใดได้รับการแก้ไขเป็นอันดับแรกและ Oracle มีนิสัยชอบทำแพตช์ที่ไม่เคยทำให้ OpenJDK
9 java 

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