最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 方法簽名詳解及實(shí)例代碼

 更新時(shí)間:2016年10月26日 10:31:54   作者:戎碼人生  
這篇文章主要介紹了 Java 方法簽名詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下

java 方法簽名,我想做java 開(kāi)發(fā)的朋友也知道,方法簽名的重要性,是方法重載的一個(gè)比較好的解釋?zhuān)?/span>尤其是在后續(xù)優(yōu)化方面,這里記錄下,有看到的朋友也可看下,

方法簽名的意義

對(duì)于同名不同類(lèi)、同類(lèi)不同名的方法,方法簽名的意義并不是很大,但是對(duì)于重載方法來(lái)說(shuō),方法簽名的意義就十分巨大了。由于重載方法之間的方法名是相同的,那么我們勢(shì)必要從構(gòu)成方法的其他幾個(gè)要素中找到另一個(gè)要素與方法名組成能夠唯一標(biāo)示方法的簽名,方法體當(dāng)然不予考慮。那么就是形參列表和返回值了,但是由于對(duì)于調(diào)用方法的人來(lái)說(shuō),方法的形參數(shù)據(jù)類(lèi)型列表的重要程度要遠(yuǎn)遠(yuǎn)高于返回值,所以方法簽名就由方法名+形參列表構(gòu)成,也就是說(shuō),方法名和形參數(shù)據(jù)類(lèi)型列表可以唯一的確定一個(gè)方法,與方法的返回值一點(diǎn)關(guān)系都沒(méi)有,這是判斷重載重要依據(jù),所以,以下的代碼是不允許的

public long aaaa(){ 

} 
public int aaaa(){ 

} 


方法簽名的格式

首先我們先看幾個(gè)方法以及他們的方法簽名:

public void test1(){}          test1()V
public void test2(String str)   test2(Ljava/lang/String;)V
public int test3(){}           test3()I

從以上三個(gè)例子,我們就可以很簡(jiǎn)單的看出一些小小的規(guī)律:

JVM為我們提供的方法簽名實(shí)際上是由方法名(上文的例子為了簡(jiǎn)單沒(méi)有寫(xiě)出全類(lèi)名)、形參列表、返回值三部分構(gòu)成的,基本形式就是:

全類(lèi)名.方法名(形參數(shù)據(jù)類(lèi)型列表)返回值數(shù)據(jù)類(lèi)型

Java方法簽名中特殊字符/字母含義

特殊字符 數(shù)據(jù)類(lèi)型 特殊說(shuō)明
V void 一般用于表示方法的返回值
Z boolean
B byte
C char
S short
I int
J long
F float
D double
[ 數(shù)組 以[開(kāi)頭,配合其他的特殊字符,表示對(duì)應(yīng)數(shù)據(jù)類(lèi)型的數(shù)組,幾個(gè)[表示幾維數(shù)組
L 全類(lèi)名; 引用類(lèi)型 以 L 開(kāi)頭 ; 結(jié)尾,中間是引用類(lèi)型的全類(lèi)名

一定要注意的是方法重載時(shí),方法返回值沒(méi)有什么意義,是由方法名和參數(shù)列表決定的

利用javap生成方法簽名

類(lèi)庫(kù)類(lèi)

$ javap -s java.lang.String 
Compiled from "String.java" 
public final class java.lang.String extends java.lang.Object implements java.io.Serializable,java.lang.Comparable,java.lang.CharSequence{ 
public static final java.util.Comparator CASE_INSENSITIVE_ORDER; 
 Signature: Ljava/util/Comparator; 
public java.lang.String(); 
 Signature: ()V 
public java.lang.String(java.lang.String); 
 Signature: (Ljava/lang/String;)V 
public java.lang.String(char[]); 
 Signature: ([C)V 
public java.lang.String(char[], int, int); 
 Signature: ([CII)V 
public java.lang.String(int[], int, int); 
 Signature: ([III)V 
public java.lang.String(byte[], int, int, int); 
 Signature: ([BIII)V 
public java.lang.String(byte[], int); 
 Signature: ([BI)V 
public java.lang.String(byte[], int, int, java.lang.String)  throws java.io.UnsupportedEncodingException; 
 Signature: ([BIILjava/lang/String;)V 
public java.lang.String(byte[], int, int, java.nio.charset.Charset); 
 Signature: ([BIILjava/nio/charset/Charset;)V 
public java.lang.String(byte[], java.lang.String)  throws java.io.UnsupportedEncodingException; 
 Signature: ([BLjava/lang/String;)V 
public java.lang.String(byte[], java.nio.charset.Charset); 
 Signature: ([BLjava/nio/charset/Charset;)V 
public java.lang.String(byte[], int, int); 
 Signature: ([BII)V 
... 

自定義類(lèi)

package com.demo; 
 public class SigTest { 
   public static final String name = null; 
   public int getName(int[] data,long index) { 
     return 0; 
   } 
 } 

輸出

$ javac SigTest.java 
$ javap -s -p com.demo.SigTest
Compiled from "SigTest.java"
public class com.demo.SigTest extends java.lang.Object{
public static final java.lang.String name;
 Signature: Ljava/lang/String;
public com.demo.SigTest();
 Signature: ()V
public int getName(int[], long);
 Signature: ([IJ)I
static {};
 Signature: ()V
}

-s 表示打印簽名信息

-p 表示打印所有函數(shù)和成員的簽名信息,默認(rèn)只打印public的簽名信息

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • JPA之使用JPQL語(yǔ)句進(jìn)行增刪改查

    JPA之使用JPQL語(yǔ)句進(jìn)行增刪改查

    這篇文章主要介紹了JPA之使用JPQL語(yǔ)句進(jìn)行增刪改查,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 圖文詳解Java環(huán)境變量配置方法

    圖文詳解Java環(huán)境變量配置方法

    這篇文章主要以圖文結(jié)合的方式詳細(xì)介紹了Java環(huán)境變量配置方法,文中步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-04-04
  • Java實(shí)現(xiàn)購(gòu)物管理系統(tǒng)

    Java實(shí)現(xiàn)購(gòu)物管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)購(gòu)物管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 解決springboot遇到autowire注入為null的問(wèn)題

    解決springboot遇到autowire注入為null的問(wèn)題

    這篇文章主要介紹了解決springboot遇到autowire注入為null的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • spring cloud 使用Zuul 實(shí)現(xiàn)API網(wǎng)關(guān)服務(wù)問(wèn)題

    spring cloud 使用Zuul 實(shí)現(xiàn)API網(wǎng)關(guān)服務(wù)問(wèn)題

    這篇文章主要介紹了spring cloud 使用Zuul 實(shí)現(xiàn)API網(wǎng)關(guān)服務(wù)問(wèn)題,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-05-05
  • SpringBoot整合Echarts繪制靜態(tài)數(shù)據(jù)柱狀圖和餅圖

    SpringBoot整合Echarts繪制靜態(tài)數(shù)據(jù)柱狀圖和餅圖

    這篇文章給大家介紹了SpringBoot整合Echarts繪制靜態(tài)數(shù)據(jù)柱狀圖和餅圖,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-03-03
  • Java中控制多線程執(zhí)行順序的8種方法

    Java中控制多線程執(zhí)行順序的8種方法

    在并發(fā)編程中,控制線程執(zhí)行順序是一個(gè)常見(jiàn)且重要的需求,Java提供了多種機(jī)制來(lái)實(shí)現(xiàn)線程順序控制,本文將全面介紹8種核心方法,涵蓋從基礎(chǔ)到高級(jí)的各種場(chǎng)景需求,需要的朋友可以參考下
    2025-03-03
  • springboot?@Validated的概念及示例實(shí)戰(zhàn)

    springboot?@Validated的概念及示例實(shí)戰(zhàn)

    這篇文章主要介紹了springboot?@Validated的概念以及實(shí)戰(zhàn),使用?@Validated?注解,Spring?Boot?應(yīng)用可以有效地實(shí)現(xiàn)輸入驗(yàn)證,提高數(shù)據(jù)的準(zhǔn)確性和應(yīng)用的安全性,本文結(jié)合實(shí)例給大家講解的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • MyBatisPlus深入探究映射匹配的兼容性

    MyBatisPlus深入探究映射匹配的兼容性

    在最近的工作中,碰到一個(gè)比較復(fù)雜的返回結(jié)果,發(fā)現(xiàn)簡(jiǎn)單映射已經(jīng)解決不了這個(gè)問(wèn)題了,只好去求助百度,學(xué)習(xí)mybatis映射匹配應(yīng)該怎么寫(xiě),將學(xué)習(xí)筆記結(jié)合工作碰到的問(wèn)題寫(xiě)下本文,供自身查漏補(bǔ)缺,同時(shí)已被不時(shí)之需
    2022-08-08
  • Java設(shè)計(jì)模式之java觀察者模式詳解

    Java設(shè)計(jì)模式之java觀察者模式詳解

    這篇文章主要介紹了Java經(jīng)典設(shè)計(jì)模式之觀察者模式,簡(jiǎn)單分析了觀察者模式的概念、原理并結(jié)合實(shí)例形式給出了java觀察者模式的具體用法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2021-09-09

最新評(píng)論

楚雄市| 扎鲁特旗| 罗平县| 普兰县| 尉氏县| 陈巴尔虎旗| 泽普县| 尚志市| 响水县| 驻马店市| 封开县| 赤壁市| 呼图壁县| 贵定县| 城口县| 横峰县| 嘉义县| 隆德县| 延安市| 略阳县| 水富县| 北宁市| 阿克陶县| 绥德县| 集安市| 贞丰县| 辽源市| 合川市| 巩留县| 麻城市| 潼南县| 册亨县| 敦煌市| 垣曲县| 清苑县| 洪洞县| 伊金霍洛旗| 株洲市| 驻马店市| 禹州市| 镇宁|