国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

一個關于Java字符串對象問題的詳細解答

開發 后端
字符串主要用于編程,概念說明、函數解釋、用法詳述見正文,這里補充一點:字符串在存儲上類似字符數組,所以它每一位的單個元素都是可以提取的。

[[417284]]

今天下班的路上,看到有人問這樣一個問題:

圖片

我看到這個問題的第一眼也有點懵。

但如果把問題換成以下代碼,答案對于我來說還是非常清晰的。

  1. String str = "test" + "1"

但是當一個字符串和一個整數相加時,會創建幾個對象呢?

作為老司機,深知實踐是檢驗真理的唯一標準,動手才是硬道理。

代碼清單如下:

  1. public class Hello { 
  2.   public static void main(String[] args) { 
  3.     String str = "test" + 1; 
  4.     System.out.println(str); 
  5.   } 

編譯以上代碼,執行,控制臺輸出沒有任何異議。

圖片

要看到創建了幾個對象,我們需要反編譯 Hello.class 文件,得到 java 字節碼指令。

圖片

看到 main 方法的字節碼指令,一切已經真相大白。

其實,作為一個老司機,早就應該想到是這樣的結果。

可是,面對這樣一道面試題,竟然還是還是蒙圈了。

那我們來解釋一下 main 方法的第一條字節碼指令。

  1. 0: ldc       
  • ldc 的意思是 LoaD Constant,即從常量池中加載一個常量并壓入(push)到操作數棧(operand stack)。
  • #2 是常量池中索引,表示常量池中的第2項。

關于 ldc 字節碼指令的詳細說明,請參考官方文檔,連接地址為:https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.ldc。

常量池中的第2個常量到底是什么,我們還需要使用 javap 命令來獲得。

  1. C:\Users\Thinkpad\Desktop>javap -v Hello.class 
  2. Classfile /C:/Users/Thinkpad/Desktop/Hello.class 
  3.   Last modified 2021-8-12; size 415 bytes 
  4.   MD5 checksum d350245a83d24798f2269149002970f5 
  5.   Compiled from "Hello.java" 
  6. public class Hello 
  7.   minor version: 0 
  8.   major version: 52 
  9.   flags: ACC_PUBLIC, ACC_SUPER 
  10. Constant pool: 
  11.    #1 = Methodref          #6.#15         // java/lang/Object."<init>":()V 
  12.    #2 = String             #16            // test1 
  13.    #3 = Fieldref           #17.#18        // java/lang/System.out:Ljava/io/PrintStream; 
  14.    #4 = Methodref          #19.#20        // java/io/PrintStream.println:(Ljava/lang/String;)V 
  15.    #5 = Class              #21            // Hello 
  16.    #6 = Class              #22            // java/lang/Object 
  17.    #7 = Utf8               <init> 
  18.    #8 = Utf8               ()V 
  19.    #9 = Utf8               Code 
  20.   #10 = Utf8               LineNumberTable 
  21.   #11 = Utf8               main 
  22.   #12 = Utf8               ([Ljava/lang/String;)V 
  23.   #13 = Utf8               SourceFile 
  24.   #14 = Utf8               Hello.java 
  25.   #15 = NameAndType        #7:#8          // "<init>":()V 
  26.   #16 = Utf8               test1 
  27.   #17 = Class              #23            // java/lang/System 
  28.   #18 = NameAndType        #24:#25        // out:Ljava/io/PrintStream; 
  29.   #19 = Class              #26            // java/io/PrintStream 
  30.   #20 = NameAndType        #27:#28        // println:(Ljava/lang/String;)V 
  31.   #21 = Utf8               Hello 
  32.   #22 = Utf8               java/lang/Object 
  33.   #23 = Utf8               java/lang/System 
  34.   #24 = Utf8               out 
  35.   #25 = Utf8               Ljava/io/PrintStream; 
  36.   #26 = Utf8               java/io/PrintStream 
  37.   #27 = Utf8               println 
  38.   #28 = Utf8               (Ljava/lang/String;)V 

我們看到常量池(Constant pool)的第二項是:test1。

也就是說,javac 在編譯代碼過程中知道:

  • 字符串 "test" 是一個字面值常量
  • 整數 1 是一個字面值常量

所以,編譯器將兩個常量在編譯過程中,計算然后合并成一個字符串常量test1,并保存在常量池中。

所以在代碼執行過程中,根本就沒有創建任何對象。

本文轉載自微信公眾號「Golang In Memory」

 

責任編輯:姜華 來源: Golang In Memory
相關推薦

2011-07-18 13:34:44

SQL Server數拼接字符串

2020-08-12 22:03:17

JavaScript開發技術

2009-11-16 17:59:13

PHP數組轉字符串

2011-06-08 15:45:41

字符串JAVA

2015-03-23 17:18:18

Java字符串問題

2010-04-30 01:17:37

unix鎖

2011-06-03 13:03:03

JAVA

2023-04-25 15:46:51

Python字符串

2024-03-11 06:05:00

C++字符串

2009-11-27 10:24:25

PHP字符串操作

2010-03-09 15:15:02

Python字符串類型

2011-07-22 15:38:54

SQL Server數存儲過程切割字符串

2011-04-20 11:34:07

SQL字符串分割

2019-01-08 09:23:16

Java字符串編碼

2022-05-10 09:47:10

Bash字符串Linux

2022-08-14 09:01:27

代碼字符串

2020-09-18 14:23:50

字符

2022-11-24 08:01:57

bash腳本字符串

2021-02-26 22:54:06

云計算公有云私有云

2020-08-20 10:41:28

云計算云安全數據
點贊
收藏

51CTO技術棧公眾號

黄色91在线观看| 国产伦理一区二区三区| yourporn在线观看视频| 久久综合久久综合亚洲| 超碰97免费观看| 久久亚洲图片| 国产精品亚洲不卡a| 91精品国产91久久久久久黑人| 国色天香2019中文字幕在线观看| 校园春色亚洲色图| 亚洲免费高清视频| 亚洲天堂免费电影| 日韩精品极品在线观看| 第一中文字幕在线| 精品久久久久久无| 黄色影院在线看| 亚洲电影中文字幕| 丁香高清在线观看完整电影视频| 7777女厕盗摄久久久| 色欧美激情视频在线| 欧美在线观看视频一区二区三区| 国产三级视频在线播放线观看| 日韩欧美一区二区三区久久| 黄色电影免费在线看| 欧美私模裸体表演在线观看| 国产黄色免费在线观看| 欧美高清性hdvideosex| 欧洲成人综合网| 亚洲美女在线看| 亚洲成人1区| 欧美国产第一页| 日韩欧美中文字幕电影| 国产精品999999| 国产国产精品| 激情五月综合色婷婷一区二区| 国产亚洲高清视频| 在线码字幕一区| 国产福利一区二区三区视频在线| 97在线国产视频| 国产亲近乱来精品视频| 99免费看香蕉视频| 日韩欧美极品在线观看| 精品孕妇一区二区三区| 日韩精品在线免费观看视频| 久久久久伊人| 日本久久久久久| 欧美久久综合| 色呦呦网站入口| 国产欧美一区二区精品婷婷| 在线小视频网址| 日韩免费电影网站| 国产一区二区av在线| 国产成人一区二区三区| 欧美视频四区| 国产欧美久久久久| 有坂深雪av一区二区精品| 中文字幕在线视频区| 国产亚洲欧美日韩精品| 九九综合九九| 天堂精品一区二区三区| 久久一区二区视频| 天堂av在线免费观看| 亚洲黄色www| 好吊日av在线| 精品久久久久中文字幕小说 | 亚洲一区二区三区香蕉| 日本午夜在线视频| 亚洲在线第一页| 在线精品视频一区二区三四| 亚洲人成网www| 大桥未久av一区二区三区| 国产亚洲一区二区三区不卡| 成人精品小视频| 欧美性生交xxxxxdddd| 丰满少妇一区| 日韩福利影院| 日韩欧美国产综合| 精品一区二区在线观看| 国产九一视频| 全球成人中文在线| 国内精品免费**视频| 亚洲国产黄色| 亚洲欧洲闷骚av少妇影院| 欧美一区二区三区四区夜夜大片| 国产视频自拍一区| 日韩欧美自拍| caoporn视频在线观看| 国产视频一视频二| 日韩一区二区免费在线电影| 亚洲成人av高清| 宅男66日本亚洲欧美视频| 99久久99视频只有精品| 国产精品333| 欧美一级生活片| 99久久.com| 黄色永久免费网站| 国产婷婷色综合av蜜臀av| 欧美日韩日本国产亚洲在线| 可以免费观看av毛片| 日韩电影免费在线观看中文字幕| 91精品天堂福利在线观看| 99视频精品免费| 日韩经典中文字幕| 欧美午夜一区| 性欧美18+| 91国产在线精品| 99久久国产综合精品女不卡| 免费网站在线观看人| 91在线观看网站| 亚洲欧美韩国综合色| 国产一区二区| 无码av天堂一区二区三区| 亚洲第一精品夜夜躁人人躁 | 欧美小视频在线观看| 久久久精品区| 国产爆乳无码一区二区麻豆| 日韩精品中文字幕一区二区三区| 亚洲五月综合| 最近2018年手机中文在线| 日本成人黄色片| 国产精品二三区| 国产精品xxxav免费视频| 六月丁香婷婷在线| www.亚洲一区| 成人永久免费视频| 超级碰碰久久| 2021狠狠干| 亚洲乱码一区av黑人高潮| 久久99热这里只有精品| 松下纱荣子在线观看| 一区精品在线| 亚洲美女在线观看| 国产麻豆精品在线观看| 蜜桃麻豆av在线| 色哟哟免费网站| 国产一区二区日韩| 粉嫩aⅴ一区二区三区四区| 国产成人精品一区二区三区在线 | 肉丝袜脚交视频一区二区| av香蕉成人| 亚洲最大色综合成人av| 亚洲国内精品在线| 国精产品一区一区三区mba桃花 | 一区二区三区视频观看| 国产宾馆实践打屁股91| 成人黄色在线| 手机视频在线观看| 日本精品视频网站| 亚洲18色成人| 亚洲黑丝一区二区| 国产在线观看www| www黄色日本| 国产ts人妖一区二区三区| 偷拍日韩校园综合在线| 在线欧美视频| 黄色视屏在线免费观看| 国产麻花豆剧传媒精品mv在线| 国产91精品黑色丝袜高跟鞋| 黑人狂躁日本妞一区二区三区| 日韩午夜精品| 一区在线影院| 骚视频在线观看| 精品国产第一页| 精品香蕉一区二区三区| 中文字幕精品一区二区精品绿巨人 | 日韩不卡一二区| 欧美日韩成人网| 亚洲 欧美综合在线网络| 在线观看不卡| 99re久久| 久草热久草在线频| 色噜噜狠狠一区二区三区| 久久精品2019中文字幕| 自拍偷拍亚洲激情| 国产欧美亚洲一区| 中文幕av一区二区三区佐山爱| 一个人看的免费视频色| 亚洲激情电影在线| 欧美在线免费看| 精品女同一区二区| 中文字幕日韩一区二区| 丝袜脚交一区二区| 日韩成人午夜| 美足av综合网| 日本电影免费看| 在线综合视频网站| 国产91免费观看| 亚洲免费电影一区| 亚洲不卡在线观看| 不卡的av在线| 在线 亚洲欧美在线综合一区| 国产一区二区在线观| 免费黄色网址在线观看| 国产av人人夜夜澡人人爽| 欧美日韩精品免费观看视一区二区 | 欧洲视频在线免费观看| 欧美图片激情小说| 5566av亚洲| 欧美国产第一页| 欧美成人video|