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

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

3
ทำไมชื่อโฮสต์ถึงประกาศไม่ถูกต้องเมื่อสร้าง URI
ใช้รหัสนี้กับ JDK 1.8: try { System.out.println( new URI(null, null, "5-12-145-35_s-81", 443, null, null, null)); } catch (URISyntaxException e) { e.printStackTrace(); } ผลลัพธ์ในข้อผิดพลาดนี้: java.net.URISyntaxException: Illegal character in hostname at index 13: //5-12-145-35_s-81:443 ไม่ข้อผิดพลาดนี้มาจากไหนพิจารณาทุกตัวอักษรชื่อโฮสต์ดูเหมือน Legit ตามประเภทของตัวอักษร URI ? ถ้าฉันใช้ URL เหล่านี้: //5-12-145-35_s-81:443หรือ/5-12-145-35_s-81:443ข้อผิดพลาดหายไป จากความคิดเห็นฉันเข้าใจว่าตามRFC-2396ชื่อโฮสต์ไม่สามารถมีอักขระขีดล่างใด ๆ คำถามที่ยังคงอยู่คือทำไมชื่อโฮสต์ที่ขึ้นต้นด้วยเครื่องหมายทับหรือเครื่องหมายทับสองได้รับอนุญาตให้มีขีดล่าง?
17 java 

5
WildFly 18.0.1 ไดรเวอร์ JDBC: ข้อผิดพลาดภายใน (newValue เป็นโมฆะ)
ฉันมีปัญหาการกำหนดค่าไดรเวอร์ JDBC ในWildFly (18.0.1) เมื่อใดก็ตามที่ฉันเปิด(การกำหนดค่า / ระบบย่อย / แหล่งข้อมูลและไดรเวอร์ / ไดรเวอร์ JDBC) , ฉันเข้าใจ: ข้อผิดพลาดภายใน (รายละเอียด: newValue เป็นค่าว่าง) ภาพข้อผิดพลาด 1: รูปภาพข้อผิดพลาด 2: ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก!

9
ปัญหาที่เป็นไปได้กับ Chromedriver 78, Selenium ไม่พบองค์ประกอบของเว็บของ PDF ที่เปิดใน Chrome
จนกว่า Google Chrome ของฉันจะไม่ได้รับการอัปเดตเป็นรุ่น 78 รหัสของฉันทำงานได้ดี ฉันยังอัปเดต Chromedriver เป็นเวอร์ชัน 78.0.3904.70 ดังนั้นฉันไม่สามารถหา WebElement ด้วย id = 'plugin' อีกต่อไปโดยใช้ Selenium WebDriver และ Java: <html> <div id="content"> <embed id="plugin" type="application/x-google-chrome-pdf" src="http://??????????/offer_printed.php?printable=yes&reanudar=&> </div> </html> นอกเหนือจากนั้นการทดสอบของฉันก็ใช้งานได้ดี ฉันไม่เคยมีปัญหาที่คล้ายกันมาก่อน ฉันพยายามค้นหา WebElement id = 'content' แต่ฉันได้รับข้อผิดพลาดเดียวกัน WebDriverWait wait = new WebDriverWait (driver, 90); WebElement scrollvalid = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("plugin"))); scrollvalid.sendKeys(Keys.PAGE_DOWN); …

3
Parallel Infinite Java Streams หน่วยความจำไม่เพียงพอ
ฉันพยายามที่จะเข้าใจว่าทำไมโปรแกรม Java ต่อไปนี้ถึงให้OutOfMemoryErrorในขณะที่โปรแกรมที่สอดคล้องกันโดย.parallel()ไม่ได้ System.out.println(Stream .iterate(1, i -> i+1) .parallel() .flatMap(n -> Stream.iterate(n, i -> i+n)) .mapToInt(Integer::intValue) .limit(100_000_000) .sum() ); ฉันมีสองคำถาม: ผลลัพธ์ที่ต้องการของโปรแกรมนี้คืออะไร? หากปราศจาก.parallel()ดูเหมือนว่านี่เป็นเพียงการแสดงผลsum(1+2+3+...)ซึ่งหมายความว่าเพียง "ติด" ที่กระแสแรกใน flatMap ซึ่งทำให้รู้สึก เมื่อใช้คู่ขนานฉันไม่รู้ว่ามีพฤติกรรมที่คาดหวังหรือไม่ แต่ฉันเดาว่าจะเป็นอย่างใดอย่างหนึ่งที่มันแทรกซึมnลำธารสายแรกหรือสายอื่นnๆ มันอาจแตกต่างกันเล็กน้อยขึ้นอยู่กับพฤติกรรมการ chunking / buffering ทำให้หน่วยความจำไม่เพียงพอคืออะไร ฉันพยายามทำความเข้าใจว่ากระแสเหล่านี้ถูกนำไปใช้อย่างไรภายใต้ประทุน ฉันคาดเดาสิ่งที่บล็อกกระแสดังนั้นมันไม่เคยเสร็จสิ้นและสามารถกำจัดค่าที่สร้างขึ้นได้ แต่ฉันไม่ค่อยรู้ว่าสิ่งใดที่เรียงลำดับตามการประเมินและที่การบัฟเฟอร์เกิดขึ้น แก้ไข:ในกรณีที่มีความเกี่ยวข้องฉันใช้ Java 11 Editt 2:เห็นได้ชัดว่าสิ่งเดียวกันที่เกิดขึ้นแม้สำหรับโปรแกรมที่ง่ายIntStream.iterate(1,i->i+1).limit(1000_000_000).parallel().sum()ดังนั้นจึงอาจจะต้องทำอย่างไรกับ lazyness ของมากกว่าlimitflatMap

3
+0 และ -0 แสดงพฤติกรรมที่แตกต่างกันสำหรับข้อมูล int และข้อมูลลอย
ฉันได้อ่านโพสต์เชิงลบและเชิงบวกศูนย์ เพื่อความเข้าใจของฉันรหัสต่อไปนี้ควรให้true และtrue เป็นผลลัพธ์ อย่างไรก็ตามมันจะให้falseและtrueเป็นผลลัพธ์ ฉันกำลังเปรียบเทียบศูนย์ลบกับศูนย์บวก public class Test { public static void main(String[] args) { float f = 0; float f2 = -f; Float F = new Float(f); Float F1 = new Float(f2); System.out.println(F1.equals(F)); int i = 0; int i2 = -i; Integer I = new Integer(i); Integer I1 …
16 java  java-8 

1
OneNote แจง - วิธีไปที่ Text Blobs ในเอกสาร?
ฉันกำลังสร้าง parser สำหรับ.oneส่วนขยายของไฟล์ซึ่งเมื่อเสร็จแล้วฉันจะเพิ่มไปยังโครงการ Apache Tika นี่คือโครงการโอเพ่นซอร์ส APL 2.0 ที่ได้รับสิทธิ์ฉันกำลังสร้าง: https://github.com/nddip Piazza/onenote-parser-java ฉันใช้เอกสารข้อมูลจำเพาะที่นี่: https://docs.microsoft.com/en-us/openspecs/office_file_formats/ms-one/73d22548-a613-4350-8c23-07d15576be50 ในฐานะที่เป็นจุดเริ่มต้นฉันได้ย้ายรหัสจากโครงการ C ++ โอเพนซอร์สนี้: https://github.com/dropbox/onenote-parser ฉันใช้เวลานานในการแยกวิเคราะห์เอกสาร แต่ฉันพบสิ่งกีดขวาง นี่คือไฟล์ OneNote ที่ฉันใช้แยกวิเคราะห์: https://drive.google.com/file/d/1uROTEnKeBKU08CG_K5zdDTGHa178LgBK/view?usp=sharing ฉันไม่สามารถดู Section1TextArea1 และ Section1TextArea2 ในผลลัพธ์ของฉัน ดังนั้นฉันจึงขาดองค์ประกอบสำคัญในการแยกวิเคราะห์ข้อมูลหรือบางอย่าง มันอยู่ในไฟล์ OneNote อย่างแน่นอน ฉันเห็นได้ในมุมมอง Hex: นี่คือเอาต์พุตการแยกวิเคราะห์ JSON: https://gist.github.com/nddip Piazza/02d2252d357b3b02a6b9ab1050474267 ฉันรู้สึกว่าเอกสารข้อมูลจำเพาะขาดข้อมูลสำคัญบางอย่างที่จำเป็นเพื่อแยกวิเคราะห์รูปแบบกรรมสิทธิ์นี้ องค์ประกอบสำคัญใดที่ฉันขาดหายไปทำให้ฉันไม่ได้รับเนื้อหาข้อความจริง

2
Android Studio ติดตั้งโดยไม่ต้อง sdkmanager
ฉันเขียนโปรแกรมใน Flutter โดยใช้ macOS 10.15.3 โดยกำหนดเป้าหมายไปที่อุปกรณ์ iOS วันนี้ฉันลองติดตั้ง Android Studio เพื่อแยกสาขาออก การติดตั้งไปไม่มีข้อผิดพลาด แต่ในLibrary/Android/sdk/ไม่มีtoolsไดเรกทอรีย่อยซึ่งเป็นปัญหาเพราะควรจะพบว่าภายในsdkmanagerLibrary/Android/sdk/tools/bin ฉันสังเกตสิ่งนี้เพราะการวิ่งflutter doctorให้ฉัน: ✗ Android license status unknown. Try re-installing or updating your Android SDK Manager. See https://developer.android.com/studio/#downloads or visit https://flutter.dev/setup/#android-setup for detailed instructions. ฉันลองติดตั้ง Android Studio ใหม่ (ไม่แตกต่างกัน) โซลูชันอื่น ๆ ที่โพสต์พูดคุยออนไลน์เกี่ยวกับเวอร์ชัน Java ดังนั้นฉันอัพเกรด JRE จาก 1.7 เป็น …

8
IntelliJ: ข้อผิดพลาด: java: ข้อผิดพลาด: ไม่รองรับรุ่น 5
ฉันใช้IntelliJ IDEA สุดยอด 2019/03/01 เมื่อใดก็ตามที่ฉันพยายามเริ่มต้นโครงการ Java Maven ง่ายๆ (อาจเป็น Hello World ง่ายๆ) ฉันได้รับข้อผิดพลาดดังต่อไปนี้: Error:java: error: release version 5 not supported ทำงานjava --versionโดย terminal ฉันได้รับผลลัพธ์ต่อไปนี้: openjdk 11.0.5 2019-10-15 OpenJDK Runtime Environment (build 11.0.5+10-post-Ubuntu-0ubuntu1.1) OpenJDK 64-Bit Server VM (build 11.0.5+10-post-Ubuntu-0ubuntu1.1, mixed mode, sharing) ทำงานjavac --versionโดย terminal ฉันได้รับผลลัพธ์ต่อไปนี้: javac 11.0.5 ไปที่การตั้งค่าของ Java Compiler …

2
การเรียกเมธอดแบบเรียกซ้ำทำให้เกิด StackOverFlowError ใน kotlin แต่ไม่ใช่ใน java
ฉันมีสองรหัสที่เหมือนกันเกือบทั้งใน java และ kotlin Java: public void reverseString(char[] s) { helper(s, 0, s.length - 1); } public void helper(char[] s, int left, int right) { if (left >= right) return; char tmp = s[left]; s[left++] = s[right]; s[right--] = tmp; helper(s, left, right); } Kotlin: fun reverseString(s: CharArray): Unit { …
14 java  recursion  kotlin 

4
วิธีที่ดีที่สุดในการสร้างลำดับ List <Double> ของค่าที่กำหนดตั้งแต่เริ่มต้นสิ้นสุดและขั้นตอนคืออะไร
จริง ๆ แล้วฉันประหลาดใจมากฉันไม่สามารถหาคำตอบได้ที่นี่ แต่บางทีฉันแค่ใช้คำค้นหาที่ผิดหรืออะไรบางอย่าง ที่ใกล้เคียงที่สุดที่ฉันสามารถหาได้คือสิ่งนี้แต่พวกเขาถามเกี่ยวกับการสร้างช่วงที่เฉพาะเจาะจงdoubleด้วยขนาดขั้นตอนที่เฉพาะเจาะจงและคำตอบก็เป็นเช่นนั้น ฉันต้องการบางสิ่งที่จะสร้างตัวเลขด้วยขนาดเริ่มต้นจุดจบและขั้นตอนโดยพลการ ฉันคิดว่ามีมีจะเป็นวิธีการบางอย่างเช่นนี้ในห้องสมุดที่ไหนสักแห่งแล้ว แต่ถ้าเป็นเช่นนั้นผมไม่สามารถที่จะหามันได้อย่างง่ายดาย (อีกครั้งบางทีฉันเพียงแค่ใช้คำค้นหาบางสิ่งบางอย่างที่ไม่ถูกต้องหรือ) ดังนั้นนี่คือสิ่งที่ฉันทำเองในไม่กี่นาทีที่ผ่านมาเพื่อทำสิ่งนี้: import java.lang.Math; import java.util.List; import java.util.ArrayList; public class DoubleSequenceGenerator { /** * Generates a List of Double values beginning with `start` and ending with * the last step from `start` which includes the provided `end` value. **/ public static List&lt;Double&gt; …
14 java  double  sequence 

2
วิธีการทางคณิตศาสตร์เพื่อเปรียบเทียบตัวแปร 3 คู่
ฉันได้รับมอบหมายให้เปรียบเทียบตัวแปรคู่บวก 3 ตัวโดยไม่สนใจคำสั่งของพวกเขาใน Java ฉันทำต่อไปนี้: if ((a1 == a2 &amp;&amp; b1 == b2 &amp;&amp; c1 == c2) || (a1 == a2 &amp;&amp; b1 == c2 &amp;&amp; c1 == b2) || (a1 == b2 &amp;&amp; b1 == a2 &amp;&amp; c1 == c2) || (a1 == b2 &amp;&amp; b1 == c2 &amp;&amp; …
14 java  math  compare 

4
Spring Security 5 การแทนที่สำหรับ OAuth2RestTemplate
ในspring-security-oauth2:2.4.0.RELEASEชั้นเรียนเช่นOAuth2RestTemplate, OAuth2ProtectedResourceDetailsและClientCredentialsAccessTokenProviderทั้งหมดได้รับการทำเครื่องหมายว่าเลิก จาก javadoc ในคลาสเหล่านี้ชี้ไปที่คู่มือการโยกย้ายความปลอดภัยฤดูใบไม้ผลิที่บอกว่าคนควรโยกย้ายไปยังโครงการหลักความปลอดภัยสปริง 5 อย่างไรก็ตามฉันมีปัญหาในการค้นหาว่าฉันจะใช้กรณีการใช้งานของฉันในโครงการนี้อย่างไร เอกสารและตัวอย่างทั้งหมดพูดคุยเกี่ยวกับการรวมเข้ากับผู้ให้บริการ OAuth ส่วนที่ 3 หากคุณต้องการให้มีการตรวจสอบคำขอขาเข้าของแอปพลิเคชันของคุณและคุณต้องการใช้ผู้ให้บริการ OAuth บุคคลที่สามเพื่อยืนยันตัวตน ในกรณีที่ใช้งานทั้งหมดที่ฉันต้องการจะทำคือการร้องขอกับRestTemplateบริการภายนอกที่ได้รับการคุ้มครองโดย OAuth ขณะนี้ฉันสร้างด้วยรหัสลูกค้าและความลับของฉันซึ่งฉันผ่านเข้าไปในOAuth2ProtectedResourceDetails OAuth2RestTemplateฉันยังมีการClientCredentialsAccessTokenProviderเพิ่มแบบกำหนดเองลงในOAuth2ResTemplateที่เพิ่งเพิ่มส่วนหัวพิเศษบางอย่างลงในคำขอโทเค็นที่ต้องการโดยผู้ให้บริการ OAuth ที่ฉันใช้ ในเอกสารประกอบ Spring-security 5 ฉันได้พบส่วนที่ระบุการปรับแต่งคำขอโทเค็นแต่อีกครั้งที่ดูเหมือนจะอยู่ในบริบทของการตรวจสอบคำขอที่เข้ามากับผู้ให้บริการ OAuth บุคคลที่สาม ยังไม่ชัดเจนว่าคุณจะใช้สิ่งนี้ร่วมกับบางสิ่งเช่น a อย่างไรClientHttpRequestInterceptorเพื่อให้แน่ใจว่าแต่ละคำขอที่ส่งออกไปยังบริการภายนอกจะได้รับโทเค็นก่อนแล้วจึงได้รับสิ่งนั้นเพิ่มเข้ากับคำขอ นอกจากนี้ในคู่มือการโยกย้ายที่ลิงก์ด้านบนมีการอ้างอิงถึงสิ่งOAuth2AuthorizedClientServiceที่กล่าวว่ามีประโยชน์สำหรับการใช้ในเครื่องดักฟัง แต่อีกครั้งดูเหมือนว่าจะต้องอาศัยสิ่งต่าง ๆ เช่นClientRegistrationRepositoryที่ดูเหมือนจะเป็นที่ที่มันยังคงลงทะเบียนสำหรับผู้ให้บริการบุคคลที่สาม ที่จัดทำขึ้นเพื่อให้แน่ใจว่าคำขอที่เข้ามานั้นได้รับการรับรองความถูกต้อง มีวิธีใดบ้างที่ฉันสามารถใช้ประโยชน์จากฟังก์ชั่นใหม่ใน spring-security 5 สำหรับการลงทะเบียนผู้ให้บริการ OAuth เพื่อรับโทเค็นเพื่อเพิ่มไปยังคำขอขาออกจากแอปพลิเคชันของฉัน

1
อาร์เรย์ Java byte ขนาด 1 MB หรือมากกว่านั้นใช้ RAM เป็นสองเท่า
เล่นโค้ดด้านล่างบน Windows 10 / OpenJDK 11.0.4_x64 ผลิตเป็นผลผลิตและused: 197 expected usage: 200ซึ่งหมายความว่าอาร์เรย์ 200 ไบต์ของหนึ่งล้านองค์ประกอบใช้เวลาประมาณ RAM 200MB ทุกอย่างดี เมื่อฉันเปลี่ยนการจัดสรรอาร์เรย์ไบต์ในรหัสจากnew byte[1000000]ไปnew byte[1048576](นั่นคือ 1024 * 1024 องค์ประกอบ) จะผลิตเป็นผลผลิตและused: 417 expected usage: 200ห่า? import java.io.IOException; import java.util.ArrayList; public class Mem { private static Runtime rt = Runtime.getRuntime(); private static long free() { return rt.maxMemory() - …

4
IntelliJ IDEA ไม่เริ่มทำงาน: ไม่สามารถโหลดคลาส JDK: com.sun.jdi.Field
เมื่อฉันพยายามเริ่ม IntelliJ ฉันจะได้รับป๊อปอัพบอกว่า Cannot load a JDK class: com.sun.jdi.Field Please ensure you run the IDE on JDK rather than JRE. มันแปลกจริงๆเพราะฉันได้ชี้JAVA_HOMEและPATHตัวแปรไปยัง Java 11 JDK

2
Java ThreadPoolExecutor: การอัปเดตขนาดพูหลักปฏิเสธงานที่เข้ามาเป็นระยะ ๆ แบบไดนามิก
ฉันกำลังประสบปัญหาซึ่งถ้าฉันพยายามปรับขนาดThreadPoolExecutorแกนกลางของสระว่ายน้ำให้เป็นจำนวนที่แตกต่างกันหลังจากที่สร้างกลุ่มนั้นเป็นระยะ ๆ งานบางอย่างถูกปฏิเสธด้วยงานRejectedExecutionExceptionแม้ว่าฉันจะไม่ส่งงานมากกว่าqueueSize + maxPoolSizeจำนวน ปัญหาที่ฉันพยายามแก้ไขคือการขยายThreadPoolExecutorที่ปรับขนาดเธรดหลักตามการดำเนินการที่ค้างอยู่ซึ่งอยู่ในคิวของเธรดพูล ฉันต้องการสิ่งนี้เพราะโดยปกติแล้ว a ThreadPoolExecutorจะสร้างใหม่Threadเฉพาะเมื่อคิวเต็ม นี่คือโปรแกรม Pure Java 8 ขนาดเล็กที่มีในตัวเองซึ่งแสดงให้เห็นถึงปัญหา import static java.lang.Math.max; import static java.lang.Math.min; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executors; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; public class ThreadPoolResizeTest { public static void main(String[] args) throws Exception { // increase the number of iterations …

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