亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java?參數(shù)值傳遞機(jī)制的實(shí)現(xiàn)

 更新時(shí)間:2025年05月22日 08:29:19   作者:kocscs123  
本文主要介紹了Java?參數(shù)值傳遞機(jī)制的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一個很經(jīng)典的問題: java的方法入?yún)?是值傳遞還是地址傳遞?

答案是:值傳遞。

今天排查一個生產(chǎn)問題,數(shù)據(jù)庫鏈接資源沒有關(guān)閉。

大致代碼邏輯如下:

try{
    Preparestatement ps = null;
    String sql = "select * from tableA where id=?";
    this.query(ps,sql);
}catch(Exception e){
    logger.error("error:",e);
}finally{
    if(ps!=null){
        ps.close();
    }
}

private void query(Preparestatement ps ,String sql){
    ps = this.getPreparestatement();
    ........//不重要的查詢邏輯
}

可以看到 對象實(shí)例 ps 被傳到了一個私有方法:query(Preparestatement ps ,String sql) 里,并在方法里面進(jìn)行賦值。然后在方法外進(jìn)行判空關(guān)閉。

很明顯,這段代碼的作者,并不熟悉JAVA的值傳遞機(jī)制,雖然ps被傳到方法里賦值,但是方法外的ps對象依然還是null,所以finally模塊里的代碼并沒有執(zhí)行close。只是表面看起來會關(guān)閉資源。

實(shí)際上,方法外的ps,和方法里面的ps 并不是同一個對象,或者說并不是指向同一個地址。java傳遞的是值而不是地址。這是和C語言最大的區(qū)別。

Java可以在方法里修改對象的屬性(如 a.setName("myName")),這種修改是可以影響到方法外的對象,但是并不能通過=號,對對象進(jìn)行重新賦值來影響方法外的對象(如a=getNewObject())。

到此這篇關(guān)于Java 參數(shù)值傳遞機(jī)制的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java 參數(shù)值傳遞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解析HashMap中的put方法執(zhí)行流程

    解析HashMap中的put方法執(zhí)行流程

    在Java集合中,HashMap的重要性不言而喻,作為一種存儲鍵值對的數(shù)據(jù)結(jié)構(gòu),它在日常開發(fā)中有著非常多的應(yīng)用場景,也是面試中的高頻考點(diǎn),本篇文章就來分析一下HashMap集合中的put方法
    2021-12-12
  • 了解Java多線程的可見性與有序性

    了解Java多線程的可見性與有序性

    這篇文章主要介紹了了解Java多線程的可見性與有序性,在Java內(nèi)存模型中,允許編譯器和處理器對指令進(jìn)行重排序,但是重排序過程不會影響到單線程程序的執(zhí)行,卻會影響到多線程并發(fā)執(zhí)行的正確性。,需要的朋友可以參考下
    2019-06-06
  • Java中的小知識點(diǎn)總結(jié)

    Java中的小知識點(diǎn)總結(jié)

    最近在復(fù)習(xí)Java的基礎(chǔ),遇到了一些比較偏的考核題目,特地總結(jié)一下需要注意的知識點(diǎn)!不過在使用IDE編程的時(shí)候,這些問題都會馬上被IDE識別出來,編譯是通不過的。我在這里提出來就相當(dāng)于給初學(xué)者一些貢獻(xiàn)吧
    2013-07-07
  • 世界著名程序SpringMVC完整過程

    世界著名程序SpringMVC完整過程

    這篇文章主要為大家介紹了世界著名程序SpringMVC實(shí)現(xiàn)過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Mybatis分頁插件PageHelper手寫實(shí)現(xiàn)示例

    Mybatis分頁插件PageHelper手寫實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了Mybatis分頁插件PageHelper手寫實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Java異常:java.net.UnknownHostException產(chǎn)生的原因和解決方案

    Java異常:java.net.UnknownHostException產(chǎn)生的原因和解決方案

    這篇文章主要給大家介紹了關(guān)于Java異常:java.net.UnknownHostException產(chǎn)生的原因和解決方案,這個異常是java.net包中的一部分,具體說它是類的一個實(shí)例,異常通常是由主機(jī)名無法解析為IP地址引起的,文中將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • SpringBoot中集成日志的四種方式

    SpringBoot中集成日志的四種方式

    在開發(fā)中,日志記錄是保障應(yīng)用程序健壯性、可維護(hù)性的重要手段,通過日志,我們可以記錄系統(tǒng)的運(yùn)行狀態(tài)、捕獲異常并進(jìn)行調(diào)試,Spring Boot 默認(rèn)使用的是 Logback,但你也可以根據(jù)需求選擇其他框架,以下是幾種常用的日志集成方法,需要的朋友可以參考下
    2024-10-10
  • MybatisPlus批量保存原理及失效原因排查全過程

    MybatisPlus批量保存原理及失效原因排查全過程

    這篇文章主要介紹了MybatisPlus批量保存原理及失效原因排查全過程,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • java 使用簡單的demo實(shí)例告訴你優(yōu)化算法的強(qiáng)大

    java 使用簡單的demo實(shí)例告訴你優(yōu)化算法的強(qiáng)大

    本篇文章介紹了,在java中使用簡單的demo實(shí)例告訴你優(yōu)化算法的強(qiáng)大。需要的朋友參考下
    2013-05-05
  • java Runnable接口創(chuàng)建線程

    java Runnable接口創(chuàng)建線程

    這篇文章主要介紹了java Runnable接口創(chuàng)建線程的相關(guān)資料,需要的朋友可以參考下
    2017-07-07

最新評論