問一個java問題(java面試問的問題)

本文目錄一覽:

問一個java問題

gp.go() 就是調用text對象的go()方法,go()方法返回值為void,錯誤提示也是告訴的你System.out.println()的參數不能為空,你把

System.out.println(text.go());

System.out.println(gp.go());

這兩句改成:

text.go();

gp.go();

就能正常輸出了

java問題

這裡直接把s賦值給readContent是有問題的,問題點如下:

假設文件有兩行

第一行

第二行

則讀取循環兩次,第一次s賦值給readContent,readContent的值為 “第一行”,然後又循環,讀取第二行,再次賦值,則readContent就會變成 “第二行”,第一行的值就丟失了;

這裡StringBuff的作用是把讀取到的內容連接起來成為一個字符串;

不過這裡的例子的確有問題,問題卻不在StringBuffer上,而在 s 變量上,s中間兩步是不必要的,循環內直接改成如下形式:

刪除s.getBytes()和new String

另外,除了以上問題,來總結下這段代碼的問題吧:

1、文件資源沒有釋放

2、在不涉及多線程的情況下,應使用StringBuilder類進行字符串拼接,而不是StringBuffer,因為StringBuilder更快(但是StringBuilder線程不安全,StringBuffer線程安全);

3、異常處理有問題,如果出現IO異常,就返回異常信息的字符串?那麼如何區分這個字符串是發生了異常還是從文件中讀取到的內容呢?這裡不應該返回字符串,而是直接聲明異常,有異常就向外拋,直到能處理的頂層程序處理。

基於以上幾點,修改代碼如下:

注意第27行,聲明本方法可能拋出 IOException 異常,稍後主程序將進行處理。另外注意第30行,創建InputStreamReader 的時候指定了文件編碼為utf8,以避免亂碼,你的文件如果存儲的是其他編碼類型,則會出現亂碼。

調用代碼如下:

getContent函數調用主程序

注意18行和21行,是分別處理正常情況和異常情況,當讀取異常時,將會調用第21行,打印異常信息;

整體代碼如下:

全部代碼

接下來我們看看代碼執行情況。

1、當我們要讀的文件不存在時,執行結果如下:

我們要讀的文件不存在時,拋出異常

看,當文件不存在時,拋出異常,並由異常處理程序捕獲和打印,你可以看到具體哪一行代碼出錯[getContent(App.java:29)],說明在App.java 文件中的getContent方法,文件的29行出錯。

2、那麼正常情況下呢?當然是輸出文件內容了,我們放一個有如下內容的文件在”D:\\file.txt”處:

要讀取的文件內容

執行結果如下:

正常情況下,輸出文件內容

最後,我不知道你看的是什麼書,是不是課本,但感覺質量不高,這裡給你推薦幾本,可以買來看看:

1、Head First java

2、菜鳥教程 Java

3、最權威的,自然是The Java® Language Specificati了

祝你學習之路順利

一個JAVA問題!

lz你一定要搞清楚數組的

下標的概念,從你定義的數組的元素來看,其實你的數組看起來是個二維數組(2行三列),但是java里實際是沒有多維數組的,我們暫且把這個數組當二維數組看。

從下面你的複製來看,第一行num[0][3]=1;已經訪問到第一行的第四個元素了,這是根本不存在的元素。因為數組的下標是從0開始的,num[0][3]=1;的3下標就是第四個元素。實際你的數組是一個int

[1][2]num的

數組。同理下面的

賦值語句都是有問題的。

第二行代碼num[1][4]=2;為第5個元素賦值了,其實根本沒有開闢內存空間。

第三行代碼num[2][4]=3;為第三行第五個元素賦值了,也是沒有開闢內存空間的。

我想看了上面的解釋你應該明白了吧,主要就是你沒弄清楚數組的下標問題,記住下表是從0開始的。

Java問題

這裡直接把s賦值給readContent是有問題的,問題點如下:

假設文件有兩行

第一行

第二行

則讀取循環兩次,第一次s賦值給readContent,readContent的值為 “第一行”,然後又循環,讀取第二行,再次賦值,則readContent就會變成 “第二行”,第一行的值就丟失了;

這裡StringBuff的作用是把讀取到的內容連接起來成為一個字符串;

不過這裡的例子的確有問題,問題卻不在StringBuffer上,而在 s 變量上,s中間兩步是不必要的,循環內直接改成如下形式:

刪除s.getBytes()和new String

另外,除了以上問題,來總結下這段代碼的問題吧:

1、文件資源沒有釋放

2、在不涉及多線程的情況下,應使用StringBuilder類進行字符串拼接,而不是StringBuffer,因為StringBuilder更快(但是StringBuilder線程不安全,StringBuffer線程安全);

3、異常處理有問題,如果出現IO異常,就返回異常信息的字符串?那麼如何區分這個字符串是發生了異常還是從文件中讀取到的內容呢?這裡不應該返回字符串,而是直接聲明異常,有異常就向外拋,直到能處理的頂層程序處理。

基於以上幾點,修改代碼如下:

注意第27行,聲明本方法可能拋出 IOException 異常,稍後主程序將進行處理。另外注意第30行,創建InputStreamReader 的時候指定了文件編碼為utf8,以避免亂碼,你的文件如果存儲的是其他編碼類型,則會出現亂碼。

調用代碼如下:

getContent函數調用主程序

注意18行和21行,是分別處理正常情況和異常情況,當讀取異常時,將會調用第21行,打印異常信息;

整體代碼如下:

全部代碼

接下來我們看看代碼執行情況。

1、當我們要讀的文件不存在時,執行結果如下:

我們要讀的文件不存在時,拋出異常

看,當文件不存在時,拋出異常,並由異常處理程序捕獲和打印,你可以看到具體哪一行代碼出錯[getContent(App.java:29)],說明在App.java 文件中的getContent方法,文件的29行出錯。

2、那麼正常情況下呢?當然是輸出文件內容了,我們放一個有如下內容的文件在”D:\\file.txt”處:

要讀取的文件內容

執行結果如下:

正常情況下,輸出文件內容

最後,我不知道你看的是什麼書,是不是課本,但感覺質量不高,這裡給你推薦幾本,可以買來看看:

1、Head First java

2、菜鳥教程 Java

3、最權威的,自然是The Java® Language Specificati了

祝你學習之路順利

問大家JAVA問題,問題如下?

要想不對k進行賦值,只能讓其做方法的參數,否則其他情況都需要進行賦值先

Java中運算符^表示的是邏輯異或,並不是乘方的意思,需調用Math.pow(a,b)來求平方

public static void computer(double k){

Math.sqrt((24*(1+Math.pow(k, 2))/Math.pow((3+Math.pow(k, 2)), 2))-

(4*36*(1+Math.pow(k, 2))/(3+4*Math.pow(k, 2))));

}

原創文章,作者:GFZNY,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/129747.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
GFZNY的頭像GFZNY
上一篇 2024-10-03 23:27
下一篇 2024-10-03 23:27

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Python官網中文版:解決你的編程問題

    Python是一種高級編程語言,它可以用於Web開發、科學計算、人工智能等領域。Python官網中文版提供了全面的資源和教程,可以幫助你入門學習和進一步提高編程技能。 一、Pyth…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • 如何解決WPS保存提示會導致宏不可用的問題

    如果您使用過WPS,可能會碰到在保存的時候提示「文件中含有宏,保存將導致宏不可用」的問題。這個問題是因為WPS在默認情況下不允許保存帶有宏的文件,為了解決這個問題,本篇文章將從多個…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發佈。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論