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

Java เป็นภาษาการเขียนโปรแกรมระดับสูงที่เป็นที่นิยม ใช้แท็กนี้เมื่อคุณมีปัญหาในการใช้หรือทำความเข้าใจภาษานั้น ๆ แท็กนี้ไม่ค่อยได้ใช้คนเดียวและมักใช้ร่วมกับ [สปริง], [สปริงบูต], [jakarta-ee], [android], [javafx], [gradle] และ [maven]

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

8
Java Class.cast () เทียบกับตัวดำเนินการ cast
หลังจากได้รับการสอนในช่วงวัน C ++ ของฉันเกี่ยวกับความชั่วร้ายของตัวดำเนินการแบบ C-style ฉันรู้สึกยินดีในตอนแรกที่พบว่าใน Java 5 java.lang.Classได้รับcastวิธีการ ฉันคิดว่าในที่สุดเราก็มีวิธีจัดการกับการแคสติ้งแบบ OO ปรากฎว่าClass.castไม่เหมือนกับstatic_castใน C ++ reinterpret_castมันเป็นเหมือน จะไม่สร้างข้อผิดพลาดในการคอมไพล์ตามที่คาดไว้และจะเลื่อนไปที่รันไทม์แทน นี่คือกรณีทดสอบง่ายๆเพื่อแสดงพฤติกรรมที่แตกต่างกัน package test; import static org.junit.Assert.assertTrue; import org.junit.Test; public class TestCast { static final class Foo { } static class Bar { } static final class BarSubclass extends Bar { } @Test public void …

4
เหตุใด BufferedInputStream จึงคัดลอกฟิลด์ไปยังตัวแปรโลคัลแทนที่จะใช้ฟิลด์โดยตรง
เมื่อฉันอ่านซอร์สโค้ดจากjava.io.BufferedInputStream.getInIfOpen()ฉันก็งงว่าทำไมมันถึงเขียนโค้ดแบบนี้: /** * Check to make sure that underlying input stream has not been * nulled out due to close; if not return it; */ private InputStream getInIfOpen() throws IOException { InputStream input = in; if (input == null) throw new IOException("Stream closed"); return input; } เหตุใดจึงใช้นามแฝงแทนการใช้ตัวแปรฟิลด์inโดยตรงเช่นด้านล่าง: /** * Check …

2
ความแตกต่างในการแกะกล่องอัตโนมัติระหว่าง Java 6 กับ Java 7
ฉันสังเกตเห็นความแตกต่างของพฤติกรรมการแกะกล่องอัตโนมัติระหว่าง Java SE 6 และ Java SE 7 ฉันสงสัยว่าทำไมถึงเป็นเช่นนั้นเพราะฉันไม่พบเอกสารการเปลี่ยนแปลงใด ๆ ในพฤติกรรมนี้ระหว่างสองเวอร์ชันนี้ นี่คือตัวอย่างง่ายๆ: Object[] objs = new Object[2]; objs[0] = new Integer(5); int myInt = (int)objs[0]; สิ่งนี้รวบรวมได้ดีกับ javac จาก Java SE 7 อย่างไรก็ตามหากฉันให้อาร์กิวเมนต์ "-source 1.6" แก่คอมไพเลอร์ฉันได้รับข้อผิดพลาดในบรรทัดสุดท้าย: inconvertible types found : java.lang.Object required: int ฉันลองดาวน์โหลด Java SE 6 เพื่อคอมไพล์กับคอมไพเลอร์เวอร์ชัน 6 ดั้งเดิม (ไม่มีตัวเลือก …
107 java  casting  java-7  unboxing 

5
ทำไม JVM แคช JIT คอมไพล์โค้ดไม่ได้
การใช้งาน JVM ที่เป็นที่ยอมรับจาก Sun ใช้การเพิ่มประสิทธิภาพที่ค่อนข้างซับซ้อนบางอย่างกับ bytecode เพื่อให้ได้ความเร็วในการดำเนินการที่ใกล้เคียงกับเนทีฟหลังจากที่โค้ดถูกเรียกใช้ไปสองสามครั้ง คำถามคือเหตุใดโค้ดที่คอมไพล์นี้จึงไม่ถูกแคชลงในดิสก์เพื่อใช้ระหว่างการใช้ฟังก์ชัน / คลาสเดียวกันในภายหลัง ตามที่กล่าวมาทุกครั้งที่เรียกใช้งานโปรแกรมคอมไพเลอร์ JIT จะเริ่มทำงานใหม่แทนที่จะใช้โค้ดเวอร์ชันที่คอมไพล์ไว้ล่วงหน้า การเพิ่มคุณสมบัตินี้จะไม่เพิ่มการเพิ่มที่สำคัญให้กับเวลารันเริ่มต้นของโปรแกรมเมื่อมีการตีความ bytecode เป็นหลักหรือไม่?
107 java  caching  jvm  compilation  jit 

12
คุณฝังข้อมูลไบนารีใน XML ได้อย่างไร?
ฉันมีสองแอปพลิเคชั่นที่เขียนด้วย Java ที่สื่อสารกันโดยใช้ข้อความ XML ผ่านเครือข่าย ฉันใช้ตัวแยกวิเคราะห์ SAX ที่ส่วนรับเพื่อดึงข้อมูลออกจากข้อความ ข้อกำหนดประการหนึ่งคือการฝังข้อมูลไบนารีในข้อความ XML แต่ SAX ไม่ชอบสิ่งนี้ ไม่มีใครรู้วิธีการทำเช่นนี้? อัปเดต: ฉันทำให้สิ่งนี้ใช้ได้กับคลาสBase64จากไลบรารีตัวแปลงสัญญาณ apache commonsในกรณีที่มีคนอื่นกำลังลองสิ่งที่คล้ายกัน
107 java  xml  binary  binary-data 

6
วิธีการแปลงไฟล์. pfx เป็นที่เก็บคีย์ด้วยคีย์ส่วนตัว
ฉันต้องการลงนามแอปพลิเคชัน Android ( .apk) ฉันมี.pfxไฟล์ ฉันแปลงเป็น.cerไฟล์ผ่าน Internet Explorer จากนั้นแปลง.cerเป็น.keystoreโดยใช้ keytool จากนั้นฉันได้พยายามลงชื่อ.apkกับ jarsigner แต่มันบอกว่า. keystore ไม่เนื้อหาคีย์ส่วนตัว ฉันทำอะไรผิด?

11
ฉันจะรันไฟล์แบตช์จาก Java Application ได้อย่างไร?
ในแอปพลิเคชัน Java ของฉันฉันต้องการเรียกใช้ไฟล์แบตช์ที่เรียก " scons -Q implicit-deps-changed build\file_load_type export\file_load_type" ดูเหมือนว่าฉันจะไม่สามารถเรียกใช้ไฟล์แบตช์ได้ด้วยซ้ำ ฉันหมดความคิด นี่คือสิ่งที่ฉันมีใน Java: Runtime. getRuntime(). exec("build.bat", null, new File(".")); ก่อนหน้านี้ฉันมีไฟล์ Python Sconscript ที่ฉันต้องการเรียกใช้ แต่เนื่องจากไม่ได้ผลฉันจึงตัดสินใจเรียกสคริปต์ผ่านไฟล์แบตช์ แต่วิธีนั้นยังไม่ประสบความสำเร็จ

8
เกิดอะไรขึ้นกับ“% n” ของ Java ใน printf
ฉันกำลังอ่าน Effective Java และใช้%nสำหรับอักขระขึ้นบรรทัดใหม่ทุกที่ ฉันใช้\nค่อนข้างประสบความสำเร็จสำหรับการขึ้นบรรทัดใหม่ในโปรแกรม Java ข้อใด "ถูกต้อง" เกิดอะไรขึ้น\n? เหตุใด Java จึงเปลี่ยนรูปแบบ C นี้
107 java  newline  printf 

5
ฉันจะรับวัตถุเซสชันได้อย่างไรถ้าฉันมีผู้จัดการเอนทิตี
ฉันมี private EntityManager em; public List getAll(DetachedCriteria detachedCriteria) { return detachedCriteria.getExecutableCriteria("....").list(); } ฉันจะดึงข้อมูลเซสชันได้อย่างไรหากใช้เอนทิตีเมเนเจอร์หรือฉันจะรับผลลัพธ์จากเกณฑ์ที่แยกออกมาได้อย่างไร

17
ขนาดฮีพ Java สูงสุดของ JVM 32 บิตบนระบบปฏิบัติการ 64 บิต
คำถามไม่ได้เกี่ยวกับขนาดฮีปสูงสุดบนระบบปฏิบัติการ 32 บิตเนื่องจากระบบปฏิบัติการ 32 บิตมีขนาดหน่วยความจำสูงสุดที่แอดเดรสได้ 4GB และขนาดฮีปสูงสุดของ JVM นั้นขึ้นอยู่กับจำนวนหน่วยความจำว่างที่ต่อเนื่องกันสามารถจองได้ ฉันสนใจที่จะทราบขนาดฮีปสูงสุด (ทั้งในทางทฤษฎีและในทางปฏิบัติ) สำหรับ JVM 32 บิตที่ทำงานในระบบปฏิบัติการ 64 บิต โดยทั่วไปฉันกำลังมองหาที่คำตอบคล้ายกับตัวเลขในคำถามที่เกี่ยวข้องในดังนั้น เหตุใดจึงใช้ JVM 32 บิตแทน 64 บิตเหตุผลนั้นไม่ใช่ทางเทคนิค แต่เป็นการบริหาร / ระบบราชการ - อาจสายเกินไปที่จะติดตั้ง JVM 64 บิตในสภาพแวดล้อมการใช้งานจริง
107 java  jvm 

4
เหตุใดฉันจึงต้องทำธุรกรรมในโหมดไฮเบอร์เนตสำหรับการดำเนินการแบบอ่านอย่างเดียว
เหตุใดฉันจึงต้องทำธุรกรรมในโหมดไฮเบอร์เนตสำหรับการดำเนินการแบบอ่านอย่างเดียว ธุรกรรมต่อไปนี้ทำให้เกิดการล็อกในฐานข้อมูลหรือไม่ ตัวอย่างรหัสที่จะดึงข้อมูลจากฐานข้อมูล: Transaction tx = HibernateUtil.getCurrentSession().beginTransaction(); // why begin transaction? //readonly operation here tx.commit() // why tx.commit? I don't want to write anything ใช้session.close() แทนได้tx.commit()หรือไม่?

3
Java EE 6 @ javax.annotation.ManagedBean vs. @ javax.inject.Named เทียบกับ @ javax.faces.ManagedBean
ฉันรู้สึกว่ามีความยุ่งเล็กน้อยในข้อมูลจำเพาะ Java EE 6 คำอธิบายประกอบมีหลายชุด เรามีjavax.ejbคำอธิบายประกอบเช่น@Statefulและ@Statelessสำหรับการสร้าง EJB นอกจากนี้ยังมี@javax.annotation.ManagedBeanการสร้างถั่วจัดการ มีคำอธิบายประกอบในjavax.enterprise.contextlike @SessionScopedและ@RequestScoped. นอกจากนี้ยังมี@ManagedBeanและ@SessionScoped/ @RequestScopedคำอธิบายประกอบในjavax.faces.beanแพ็คเกจอีกด้วย และเพื่อให้เหตุการณ์ต่างๆซับซ้อนขึ้นเรามีแพ็คเกจjavax.injectพร้อม@Namedคำอธิบายประกอบ ใครช่วยอธิบายว่าพวกเขาเกี่ยวข้องกันอย่างไร ฉันสามารถใช้@EJB, @Injectหรือ@ManagedProperyการฉีดถั่วอื่น ๆ ?

3
Jackson และการอ้างอิงประเภททั่วไป
ฉันต้องการใช้ไลบรารี jackson json สำหรับวิธีการทั่วไปดังนี้: public MyRequest<T> tester() { TypeReference<MyWrapper<T>> typeRef = new TypeReference<MyWrapper<T>>(); MyWrapper<T> requestWrapper = (MyWrapper<T>) JsonConverter.fromJson(jsonRequest, typeRef); return requestWrapper.getRequest(); } ... public class MyWrapper<T> { private MyRequest<T> request; public MyRequest<T> getRequest() { return request; } public void setRequest(MyRequest<T> request) { this.request = request; } } public class MyRequest{ …
107 java  json  generics  jackson 

15
Selenium 2.53 ไม่ทำงานบน Firefox 47
ฉันได้รับข้อผิดพลาดขณะใช้ Firefox กับ WebDriver org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. เวอร์ชัน Firefox: 47.0.0 ซีลีเนียม: 2.53.0 Windows 10 64 บิต มีใครได้รับปัญหาที่คล้ายกันหรือมีความคิดว่าวิธีแก้ปัญหานี้คืออะไร? ทำงานได้ดีกับ Chrome แต่เมื่อใช้ Firefox จะไม่มีการโหลด URL

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