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

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

7
วิธีส่วนตัวปลอดภัยจริงหรือ?
ใน Java privateตัวปรับการเข้าถึงถือว่าปลอดภัยเนื่องจากมองไม่เห็นภายนอกคลาส แล้วโลกภายนอกก็ไม่รู้เกี่ยวกับวิธีการนั้นเช่นกัน แต่ฉันคิดว่าการสะท้อนของ Java สามารถใช้เพื่อทำลายกฎนี้ได้ พิจารณากรณีต่อไปนี้: public class ProtectedPrivacy{ private String getInfo(){ return "confidential"; } } จากคลาสอื่นฉันจะได้รับข้อมูล: public class BreakPrivacy{ public static void main(String[] args) throws Exception { ProtectedPrivacy protectedPrivacy = new ProtectedPrivacy(); Method method = protectedPrivacy.getClass().getDeclaredMethod("getInfo", null); method.setAccessible(true); Object result = method.invoke(protectedPrivacy); System.out.println(result.toString()); } } ในขณะนี้ฉันคิดว่าวิธีการส่วนตัวยังปลอดภัยเนื่องจากจะทำบางสิ่งเช่นข้างต้นเราต้องรู้ชื่อวิธีการ แต่ถ้าคลาสที่มีเมธอดส่วนตัวที่เขียนโดยคนอื่นเราไม่สามารถมองเห็นได้ …

9
วิธีจัดการปฏิทิน TimeZones โดยใช้ Java?
ฉันมีค่า Timestamp ที่มาจากแอปพลิเคชันของฉัน ผู้ใช้สามารถอยู่ในเขตเวลาท้องถิ่นใดก็ได้ เนื่องจากวันที่นี้ใช้สำหรับ WebService ซึ่งถือว่าเวลาที่กำหนดเป็น GMT เสมอฉันจึงจำเป็นต้องแปลงพารามิเตอร์ของผู้ใช้จาก say (EST) เป็น (GMT) นี่คือตัวเตะ: ผู้ใช้ไม่สนใจ TZ ของเขา เขาป้อนวันที่สร้างที่เขาต้องการส่งไปยัง WS ดังนั้นสิ่งที่ฉันต้องการคือ: ผู้ใช้เข้าสู่: 5/1/2008 18:12 PM (EST) พารามิเตอร์ของ WS ต้องเป็น : 5/1/2008 18:12 PM (GMT) ฉันรู้ว่า TimeStamps ควรอยู่ใน GMT โดยค่าเริ่มต้นเสมอ แต่เมื่อส่งพารามิเตอร์แม้ว่าฉันจะสร้างปฏิทินจาก TS (ซึ่งควรจะเป็น GMT) ชั่วโมงจะปิดตลอดเวลาเว้นแต่ผู้ใช้จะอยู่ใน GMT ฉันขาดอะไรไป? Timestamp issuedDate = (Timestamp) getACPValue(inputs_, …

12
Speedup IntelliJ-Idea
ฉันใช้ intelliJ สำหรับการพัฒนา Scala และได้รับRAM ใหม่8 GBเมื่อสัปดาห์ที่แล้วดังนั้นฉันจึงคิดว่า: ถึงเวลาใช้งานแล้ว ฉันจะตรวจสอบการจัดการงานของฉันและพบ IntelliJ ใช้~ 250MB จากคราสฉันรู้ว่าการปรับแต่งตัวเลือก JVM ช่วยได้มากในการปรับปรุงความเร็วฉันจึง googled ... และพบสิ่งนี้สำหรับ OS X ฉันไม่พบตัวเลือก JVM ในทันทีดังนั้นฉันจึงเริ่มปรับแต่งXmx ที่ 1 GB ฉันรู้ว่ามันไม่เริ่มต้นอีกต่อไป ฉันตรวจสอบเวอร์ชัน java intelliJ พบว่ามันล้าสมัยและ 32 บิต ดังนั้นในการใช้ JDK และ64 บิตปัจจุบันของคุณคุณต้องเปลี่ยนลิงค์เป็น from: IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe ถึง IntelliJ IDEA Community Edition 10.0.2\bin\idea.BAT และปรับ …

5
วิธีรับจำนวนคอลัมน์จาก JDBC ResultSet
ฉันใช้CsvJdbc (เป็นไดรเวอร์ JDBC สำหรับไฟล์ csv) เพื่อเข้าถึงไฟล์ csv ฉันไม่รู้ว่าไฟล์ csv มีกี่คอลัมน์ ฉันจะหาจำนวนคอลัมน์ได้อย่างไร มีฟังก์ชัน JDBC สำหรับสิ่งนี้หรือไม่? ฉันไม่พบวิธีการใด ๆ สำหรับสิ่งนี้ใน java.sql.ResultSet สำหรับการเข้าถึงไฟล์ฉันใช้รหัสที่คล้ายกับตัวอย่างในเว็บไซต์ CsvJdbc
92 java  jdbc  csv  resultset 

3
วิธีสร้างเมธอดแบบกำหนดเองสำหรับใช้ในคำอธิบายประกอบภาษานิพจน์การรักษาความปลอดภัย spring
ฉันต้องการสร้างคลาสที่เพิ่มวิธีการที่กำหนดเองสำหรับใช้ในภาษานิพจน์การรักษาความปลอดภัยในฤดูใบไม้ผลิสำหรับการอนุญาตตามวิธีการผ่านคำอธิบายประกอบ ตัวอย่างเช่นฉันต้องการสร้างวิธีการที่กำหนดเองเช่น 'customMethodReturningBoolean' เพื่อใช้ในลักษณะนี้: @PreAuthorize("customMethodReturningBoolean()") public void myMethodToSecure() { // whatever } คำถามของฉันคือสิ่งนี้ ถ้าเป็นไปได้คลาสใดที่ฉันควรจะสร้างเมธอดแบบกำหนดเองของฉันฉันจะไปกำหนดค่าในไฟล์คอนฟิกูเรชัน spring xml ได้อย่างไรและมีใครบางคนให้ตัวอย่างวิธีการกำหนดเองที่ใช้ในลักษณะนี้

7
แซนด์บ็อกซ์ต่อต้านโค้ดที่เป็นอันตรายในแอปพลิเคชัน Java
ในสภาพแวดล้อมเซิร์ฟเวอร์จำลองที่ผู้ใช้ได้รับอนุญาตให้ส่งโค้ดของตัวเองเพื่อให้เซิร์ฟเวอร์เรียกใช้มันจะเป็นประโยชน์อย่างชัดเจนสำหรับโค้ดที่ผู้ใช้ส่งมาเพื่อให้รันในแซนด์บ็อกซ์ด้านข้างไม่ต่างจาก Applets ที่อยู่ในเบราว์เซอร์ ฉันต้องการใช้ประโยชน์จาก JVM เองแทนที่จะเพิ่มเลเยอร์ VM อื่นเพื่อแยกส่วนประกอบที่ส่งมาเหล่านี้ ข้อ จำกัด ประเภทนี้ดูเหมือนจะเป็นไปได้โดยใช้โมเดลแซนด์บ็อกซ์ Java ที่มีอยู่ แต่มีวิธีแบบไดนามิกในการเปิดใช้งานสำหรับเฉพาะส่วนที่ผู้ใช้ส่งมาของแอปพลิเคชันที่กำลังรันอยู่หรือไม่?
92 java  plugins  sandbox 

1
วิธี HashSet <T> .removeAll นั้นช้าอย่างน่าตกใจ
เมื่อเร็ว ๆ นี้ Jon Skeet ได้ยกหัวข้อการเขียนโปรแกรมที่น่าสนใจในบล็อกของเขา: "มีช่องว่างในสิ่งที่เป็นนามธรรมของฉัน Liza ที่รัก Liza ที่รัก" (เน้นเพิ่มเติม): ฉันมีชุด - อันที่HashSetจริง ฉันต้องการลบบางรายการออกจากมัน ... และหลายรายการอาจไม่มีอยู่จริง อันที่จริงในกรณีทดสอบของเราไม่มีรายการใดในคอลเล็กชัน "การลบ" ที่จะอยู่ในชุดเดิม ฟังดู - และเป็นรหัสที่ง่ายมาก ท้ายที่สุดเราต้องSet&lt;T&gt;.removeAllช่วยเราใช่มั้ย? เราระบุขนาดของชุด "แหล่งที่มา" และขนาดของคอลเล็กชัน "การลบ" ในบรรทัดคำสั่งและสร้างทั้งสองชุด ชุดแหล่งที่มามีเฉพาะจำนวนเต็มที่ไม่เป็นลบ ชุดการลบมีเฉพาะจำนวนเต็มลบ เราวัดว่าต้องใช้เวลานานแค่ไหนในการลบองค์ประกอบทั้งหมดโดยใช้System.currentTimeMillis()ซึ่งไม่ใช่นาฬิกาจับเวลาที่แม่นยำที่สุดในโลก แต่เพียงพอแล้วในกรณีนี้อย่างที่คุณเห็น นี่คือรหัส: import java.util.*; public class Test { public static void main(String[] args) { int sourceSize = …

8
เหตุใดจึงช้ากว่า int ใน x64 Java นาน
ฉันใช้ Windows 8.1 x64 พร้อมอัปเดต Java 7 45 x64 (ไม่ได้ติดตั้ง Java 32 บิต) บนแท็บเล็ต Surface Pro 2 โค้ดด้านล่างใช้เวลา 1688ms เมื่อประเภทของ i ยาวและ 109ms เมื่อฉันเป็น int เหตุใดลำดับความยาว (ประเภท 64 บิต) จึงช้ากว่า int บนแพลตฟอร์ม 64 บิตที่มี JVM 64 บิต การคาดเดาเพียงอย่างเดียวของฉันคือ CPU ใช้เวลาในการเพิ่มจำนวนเต็ม 64 บิตนานกว่า 32 บิตหนึ่ง แต่ดูเหมือนจะไม่น่าเป็นไปได้ ฉันสงสัยว่า Haswell ไม่ได้ใช้ตัวเติมแบบกระเพื่อม ฉันกำลังเรียกใช้สิ่งนี้ใน Eclipse …

7
วิธีฟัง Picasso (Android) โหลดเหตุการณ์ที่สมบูรณ์?
มีวิธีฟังเหตุการณ์จาก Picasso ไหมเมื่อใช้ตัวสร้างเช่น: Picasso.with(getContext()).load(url).into(imageView); ฉันพยายามที่จะเรียกrequestLayout()และinvalidate()ในผู้ปกครองGridViewดังนั้นจึงจะปรับขนาดได้อย่างถูกต้อง แต่ผมไม่ทราบวิธีการตั้งค่าฟังหรือโทรกลับ ฉันเห็นว่า Picasso มีการรายงานเหตุการณ์ผิดพลาด แต่มีเหตุการณ์สำเร็จหรือไม่
92 java  android  picasso 

8
รับชื่อผู้ใช้เข้าสู่ระบบใน java
ฉันจะรับชื่อผู้ใช้ / ชื่อล็อกอินใน Java ได้อย่างไร? นี่คือรหัสที่ฉันได้ลอง ... try{ LoginContext lc = new LoginContext(appName,new TextCallbackHandler()); lc.login(); Subject subject = lc.getSubject(); Principal principals[] = (Principal[])subject.getPrincipals().toArray(new Principal[0]); for (int i=0; i&lt;principals.length; i++) { if (principals[i] instanceof NTUserPrincipal || principals[i] instanceof UnixPrincipal) { String loggedInUserName = principals[i].getName(); } } } catch(SecurityException se){ System.out.println("SecurityException: " …
92 java  username 

12
Java boolean getters“ is” vs“ are”
ฉันรู้ว่าการประชุมใน Java สำหรับบูลีน getters มีคำนำหน้า "is" ด้วย isEnabled isStoreOpen แต่ถ้าหัวเรื่องเป็นพหูพจน์ล่ะ? นั่นคือถ้าแทนที่จะอยากรู้ว่ามีร้านเปิดไหมฉันอยากรู้ว่าร้านทั้งหมดเปิดหรือเปล่า isStoresOpen() ไม่สมเหตุสมผลในภาษาอังกฤษ ฉันอยากจะเขียน getters เช่น: areStoresOpen areDogsCute areCatsFuzzy และผมคิดว่าจะทำให้ความรู้สึก แต่ฉันได้รับการบอกเล่าจากคนอื่น ๆ ที่ผมควรจะดูดขึ้นและละทิ้งเรื่องคำกริยาข้อตกลงและการใช้งานisStoresOpen, ,isDogsCuteisCatsFuzzy อย่างไรก็ตามฉันควรทำอย่างไรสำหรับตัวรับบูลีนที่ทำงานในเรื่องพหูพจน์

3
ฉันจะใช้ regex เพื่อแทนที่ตัวพิมพ์ใหญ่ด้วยตัวพิมพ์เล็กใน Intellij IDEA ได้อย่างไร
ฉันได้ไปหาสิ่งนี้มาแล้วและพบว่าจะทำอย่างไรกับตัวแยกวิเคราะห์ regex อื่น ๆ : http://vim.wikia.com/wiki/Changing_case_with_regular_expressions http://www.regular-expressions.info/replacecase.html ฉันได้ลองสิ่งเหล่านี้แล้วและไม่ได้ผล ตัวอย่างเช่นฉันต้องการใช้ regex เพื่อเปลี่ยนแปลงสิ่งนี้: private String Name; private Integer Bar = 2; สำหรับสิ่งนี้: private String name; private Integer bar = 2; ฉันลองทำสิ่งนี้: replace: private (\S+) (\S+) with: private $1 $L$2 with: private $1 \L$2 with: &lt;etc.&gt; ไม่มีใครทำงาน เป็นไปได้ไหมที่จะทำใน intellij หรือเป็นคุณสมบัติที่ขาดหายไป? นี่เป็นเพียงเพื่อการศึกษาและเป็นตัวอย่างที่จัดทำขึ้น ฉันแค่อยากรู้ว่านี่เป็นไปได้ไหมที่จะทำใน intellij

6
จะค้นหา Charset / Encoding เริ่มต้นใน Java ได้อย่างไร?
คำตอบที่ชัดเจนคือการใช้Charset.defaultCharset()แต่เมื่อเร็ว ๆ นี้เราพบว่านี่อาจไม่ใช่คำตอบที่ถูกต้อง ฉันได้รับแจ้งว่าผลลัพธ์แตกต่างจากชุดอักขระเริ่มต้นจริงที่ใช้โดยคลาส java.io ในหลาย ๆ ครั้ง ดูเหมือนว่า Java จะเก็บชุดอักขระเริ่มต้นไว้ 2 ชุด ใครมีข้อมูลเชิงลึกเกี่ยวกับปัญหานี้หรือไม่? เราสามารถทำซ้ำกรณีล้มเหลวหนึ่งกรณี เป็นข้อผิดพลาดของผู้ใช้ แต่ยังอาจเปิดเผยสาเหตุของปัญหาอื่น ๆ ทั้งหมด นี่คือรหัส public class CharSetTest { public static void main(String[] args) { System.out.println("Default Charset=" + Charset.defaultCharset()); System.setProperty("file.encoding", "Latin-1"); System.out.println("file.encoding=" + System.getProperty("file.encoding")); System.out.println("Default Charset=" + Charset.defaultCharset()); System.out.println("Default Charset in Use=" + getDefaultCharSet()); } …

14
วิธีเพิ่มไลบรารีเนทีฟลงใน“ java.library.path” ด้วยการเปิดใช้ Eclipse (แทนที่จะแทนที่)
ผมได้รับห้องสมุดพื้นเมืองที่จะต้องมีการเพิ่มในjava.library.path ด้วยอาร์กิวเมนต์ JVM -Djava.library.path = path ...ฉันสามารถกำหนดเส้นทางได้ตามที่ฉันต้องการ ปัญหาของฉันคือไลบรารีอื่นของฉัน (การรายงาน pentaho) ค้นหาฟอนต์ตามค่าเริ่มต้น java.library.path (รวมถึงไดเร็กทอรีระบบ ฯลฯ ) และการตั้งค่าด้วยตนเองจะแทนที่พา ธ เริ่มต้น .. ดังนั้น: ฉันจะเพิ่มรายการพา ธ ไปยัง java.library.path เริ่มต้นได้อย่างไรแทนที่จะแทนที่มัน (ซึ่งดูเหมือนจะทำด้วย -Djava.library.path) (ฉันไม่ต้องการเพิ่มเส้นทางเริ่มต้นด้วยมือซึ่งจะไม่ดีสำหรับการนำไปใช้งาน) แก้ไข: ขออภัยในรายละเอียดที่ขาดหายไป ฉันกำลังทำงานกับ Eclipse (การปรับใช้เสร็จสิ้นด้วย JNLP และที่นั่นฉันสามารถใช้ nativelibภายใต้ทรัพยากรได้ )

6
วิธีการรับตำแหน่งของ cacerts ของการติดตั้ง java เริ่มต้น?
ฉันกำลังมองหาวิธีรับตำแหน่งcacertsของการติดตั้ง java เริ่มต้นเมื่อคุณไม่มีJAVA_HOMEหรือJRE_HOMEกำหนด ฉันจำเป็นต้องใช้วิธีการแก้ปัญหาที่ทำงานอย่างน้อยสำหรับและOS XLinux ใช่. java -vถือว่าทำงาน :)
92 java  security 

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