电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

分析Java中為什么String不可變

瀏覽:49日期:2022-08-11 10:01:56
目錄常量池便利安全引申問題String在Java中的【引用傳遞】常量池

Java中我們創(chuàng)建String對(duì)象有兩種基本方法。

String str1 = 'zxhtom';String str2 = new String('zxhtom');

上面兩種方式我們創(chuàng)建了兩個(gè)String變量 。 但是第一種通過雙引號(hào)創(chuàng)建的zxhtom這個(gè)對(duì)象我們稱之為常量 。 在JVM中是存儲(chǔ)在一塊叫【常量池】中的。而第二種str2是我們稱之為普通變量。new一次就在JVM中開辟一塊內(nèi)存。

【常量池】的作用就是復(fù)用,當(dāng)同樣的內(nèi)容再次被通過常量方式創(chuàng)建的時(shí)候Java會(huì)指向同一塊地址。通過如下代碼理解:

String z1 = 'zxhtom';String z2 = 'zxhtom';

分析Java中為什么String不可變

通過上圖我們可以了解 z1 , z2兩個(gè)變量其實(shí)引用的是同一內(nèi)存地址 。 所以z1==z2 為true .

到這里引發(fā)出為什么String被設(shè)計(jì)為不可變 。 上列中z1 被修改成zxh . 如果String是可變得那么z2就會(huì)被莫名其妙修改成zxh .

便利

在Java中判斷兩個(gè)對(duì)象相等時(shí)通過地址判斷。但是地址被抽象話為一段hash函數(shù)。在Java使用中hash是經(jīng)常被使用的。將String設(shè)置為不可變性那么hash就可以一直使用下去。不需要重新計(jì)算體現(xiàn)了便捷性

安全

仍是上面的情況 , z2會(huì)被不知情的情況下被修改了。這在多線程中很常見。我們?cè)谑褂玫臅r(shí)候會(huì)被其他情況將數(shù)據(jù)更改。這樣我們的數(shù)據(jù)將會(huì)失去了準(zhǔn)確性。

引申問題

在上部中我們提到String的常量池。針對(duì)常量池引發(fā)思考 【String.intern()】

該方法的功能就是擴(kuò)充【常量池】。z2.intern() 表示判斷常量池中是否存在與該值相同的對(duì)象如果有則返回該對(duì)象的引用。 如果沒有則將該值注冊(cè)到內(nèi)存中。注意這里并不是將z2對(duì)象注冊(cè)過去。而是將z2的值注冊(cè)進(jìn)去。

String z1=new String('zxhtom');String z2=z1.intern();System.out.println( z1==z1.intern() );System.out.println( z1.hashCode()+' '+z2.hashCode() );System.out.println( z2==z1 );System.out.println( z2==z1.intern() );

輸出結(jié)構(gòu)

false

-688175064 -688175064

false

true

分析一下輸出結(jié)果不難發(fā)現(xiàn),z1.intern()是常量池中沒有zxhtom,會(huì)將zxhtom值創(chuàng)建到常量池中,z2就是引用常量池中的引用。這個(gè)時(shí)候z1==z2 為false說明注冊(cè)到常量池中的并不是z1的地址,而是相當(dāng)于z1的一個(gè)對(duì)象拷貝。

string創(chuàng)建方式的確定簡單歸結(jié):

通過雙引號(hào)創(chuàng)建的 == 常量創(chuàng)建 通過常量拼接 == 常量創(chuàng)建 通過非常量與常量拼接 = 非常量創(chuàng)建 通過new 創(chuàng)建 == 非常量創(chuàng)建String在Java中的【引用傳遞】

在Java中方法參數(shù)傳遞都是通過值傳遞的。但是為什么String給我們的感覺是引用傳遞的呢?

public static void main(String[] args) {String x = new String('ab');change(x);System.out.println(x);} public static void change(String x) {x = 'cd';}

String不是基本對(duì)象所以String是引用傳遞。但是這里的引用傳遞知識(shí)傳遞String引用的地址 .當(dāng)執(zhí)行x=cd是原來ab的對(duì)象還在JVM中。外部x的引用地址沒有變 。 變得知識(shí)change方法中x的指向。所以外部打印的還是ab

以上就是分析Java中為什么String不可變的詳細(xì)內(nèi)容,更多關(guān)于Java中為什么String不可變的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 博博会2021_中国博物馆及相关产品与技术博览会【博博会】 | 多功能干燥机,过滤洗涤干燥三合一设备-无锡市张华医药设备有限公司 | 合肥钣金加工-安徽激光切割加工-机箱机柜加工厂家-合肥通快 | 奶茶加盟,奶茶加盟店连锁品牌-甜啦啦官网 | 曙光腾达官网-天津脚手架租赁-木板架出租-移动门式脚手架租赁「免费搭设」 | 隧道烘箱_隧道烘箱生产厂家-上海冠顶专业生产烘道设备 | 聚氨酯催化剂K15,延迟催化剂SA-1,叔胺延迟催化剂,DBU,二甲基哌嗪,催化剂TMR-2,-聚氨酯催化剂生产厂家 | 合肥角钢_合肥槽钢_安徽镀锌管厂家-昆瑟商贸有限公司 | 注塑机-压铸机-塑料注塑机-卧式注塑机-高速注塑机-单缸注塑机厂家-广东联升精密智能装备科技有限公司 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 苏州工作服定做-工作服定制-工作服厂家网站-尺品服饰科技(苏州)有限公司 | 交联度测试仪-湿漏电流测试仪-双85恒温恒湿试验箱-常州市科迈实验仪器有限公司 | 圆盘鞋底注塑机_连帮鞋底成型注塑机-温州天钢机械有限公司 | 低气压试验箱_高低温低气压试验箱_低气压实验箱 |林频试验设备品牌 | 西安微信朋友圈广告投放_微信朋友圈推广_西安度娘网络科技有限公司 | 浙江红酒库-冰雕库-气调库-茶叶库安装-医药疫苗冷库-食品物流恒温恒湿车间-杭州领顺实业有限公司 | 天津次氯酸钠酸钙溶液-天津氢氧化钠厂家-天津市辅仁化工有限公司 | 智慧消防-消防物联网系统云平台| 新型锤式破碎机_新型圆锥式_新型颚式破碎机_反击式打沙机_锤式制砂机_青州建源机械 | 办公室家具公司_办公家具品牌厂家_森拉堡办公家具【官网】 | 小程序开发公司_APP开发多少钱_软件开发定制_微信小程序制作_客户销售管理软件-济南小溪畅流网络科技有限公司 | 臭氧实验装置_实验室臭氧发生器-北京同林臭氧装置网 | 无线讲解器-导游讲解器-自助讲解器-分区讲解系统 品牌生产厂家[鹰米讲解-合肥市徽马信息科技有限公司] | 上海防爆真空干燥箱-上海防爆冷库-上海防爆冷柜?-上海浦下防爆设备厂家? | 带压开孔_带压堵漏_带压封堵-菏泽金升管道工程有限公司 | 广东护栏厂家-广州护栏网厂家-广东省安麦斯交通设施有限公司 | 常州企业采购平台_常州MRO采购公司_常州米孚机电设备有限公司 | 发电机组|柴油发电机组-批发,上柴,玉柴,潍柴,康明斯柴油发电机厂家直销 | 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 青岛美佳乐清洁工程有限公司|青岛油烟管道清洗|酒店|企事业单位|学校工厂厨房|青岛油烟管道清洗 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 室内室外厚型|超薄型|非膨胀型钢结构防火涂料_隧道专用防火涂料厂家|电话|价格|批发|施工 | 全自动翻转振荡器-浸出式水平振荡器厂家-土壤干燥箱价格-常州普天仪器 | 东莞工作服_东莞工作服定制_工衣订做_东莞厂服 | 新疆乌鲁木齐网站建设-乌鲁木齐网站制作设计-新疆远璨网络 | 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 | 齿轮减速电机一体机_蜗轮蜗杆减速马达-德国BOSERL齿轮减速机带电机生产厂家 | 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 上海小程序开发-上海小程序制作公司-上海网站建设-公众号开发运营-软件外包公司-咏熠科技 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 播音主持培训-中影人教育播音主持学苑「官网」-中国艺考界的贵族学校 |