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

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

java基礎之String知識總結(jié)

瀏覽:43日期:2022-08-12 10:45:57
目錄一、概念二、特點三、三種構(gòu)造方式:四、字符串常量池一、概念

String代表字符串,java語言中所有雙引號的字符串都是String的對象,不管是否是new出來的對象。

二、特點

1.String類由于被final修飾,因此其不能被繼承,注意一下哈,我開始也以為字符串不能夠改變是因為其被final修飾,事實上并不是這樣,String底層是用char數(shù)組保存,它被final修飾只是不能夠改變地址指向,但是其內(nèi)容是可以改變的。因此字符串不能改變和其是否被final修飾沒有關(guān)系。

2.字符串由于不能被改變,因此其能共享使用。

3.字符串底層使用char[]數(shù)組存儲。

三、三種構(gòu)造方式:

1.public String():創(chuàng)建空字符串對象

2.public String(char[] array):使用char數(shù)組創(chuàng)建字符串

3.public String(byte[] array):使用byte數(shù)組創(chuàng)建字符串,這種方式將對應數(shù)字按照ASCII碼轉(zhuǎn)成字符,如97代表字符a一種直接創(chuàng)建:String str = “abc”

四、字符串常量池

在jdk1.6及之前,字符串常量池是在方法區(qū)內(nèi),jdk1.7及之后字符串常量池從方法區(qū)分離出來,存儲在堆中。

jdk1.6和jdk1.7的相同點:

1.用雙引號創(chuàng)建字符串在JVM運行時都直接在字符串常量池中創(chuàng)建字符串對象,但是不會在堆中創(chuàng)建對象;

2.new一個字符串對象(String s = new String(“abc”)),這里面涉及兩個對象的創(chuàng)建,一個是堆對象,一個是字符串常量池中的對象(“abc”是用雙引號的),如果字符串常量池存在與該字符串相同的對象(這里是指內(nèi)容相同,而不是地址)則只需要創(chuàng)建一個堆對象,如果字符串常量池沒有相同的對象,那么需要在字符串常量池和堆內(nèi)都要創(chuàng)建對象,注意一點:這兩個對象之間不存在引用,即其中一個對象保存的值是另一個對象的地址。

String test1 = 'test';String test3 = 'test';String test2 = new String('test'); System.out.println(test1 == test2);//falseSystem.out.println(test1 == test3);//true

第一個輸出是false是因為test1是字符串常量池中的對象,而test2是堆中的對象,因此他們的地址是不相等,故結(jié)果是false;第二個輸出為true是因為當用雙引號創(chuàng)建字符串時,首先會去字符串常量池中查找是否存在值相同得到對象,如果存在就直接返回引用地址,如果不存在才創(chuàng)建對象,因此test1和test3指向的是同一個地址。

jdk1.6和jdk1.7的不同點:

jdk1.6的字符創(chuàng)常量池存儲是對象,jdk1.7字符常量池中既可以存儲對象,又可以存儲對象的引用。

還需要明確一點:使用引號包含文本的方式創(chuàng)建的String對象之間使用“+”連接產(chǎn)生的新對象才會被加入字符串池中,對于所有包含new方式新建對象(包括null)的“+”連接表達式,它所產(chǎn)生的新對象都不會被加入字符串池中

String s6 = new String('go') +new String('od');String s7 = s6.intern();String s8 = 'good';System.out.println(s6 == s7);//trueSystem.out.println(s7 == s8);//trueSystem.out.println(s6 == s8);//true

右上面的介紹可知,s6指向的是堆中字符串good對象的地址,且這個對象沒有在字符串常量池中被創(chuàng)建,當執(zhí)行到 String s7 = s6.intern();時由于字符創(chuàng)常量池沒有這個對象,且堆中存在該對象,因此在字符串常量池中創(chuàng)建一個引用指向堆中的對象,所以s6和s7指向同一個對象,如果是jdk1.6,會直接在字符串常量池創(chuàng)建一個對象然后返回這個對象的引用,此時s6和s7指向的是不同的對象。

String s2 = new String('lo') + new String('ng');String s3 = s2.intern();System.out.println(s2 == s3);//false

這里按照上面的分析應該返回true,但是這里返回false,原因如下:

java基礎之String知識總結(jié)

到此這篇關(guān)于java基礎之String知識總結(jié)的文章就介紹到這了,更多相關(guān)Java String內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Java
相關(guān)文章:
主站蜘蛛池模板: 轴承振动测量仪电箱-轴承测振动仪器-测试仪厂家-杭州居易电气 | 考勤系统_人事考勤管理系统_本地部署BS考勤系统_考勤软件_天时考勤管理专家 | 广西资质代办_建筑资质代办_南宁资质代办理_新办、增项、升级-正明集团 | ★济南领跃标识制作公司★济南标识制作,标牌制作,山东标识制作,济南标牌厂 | 登车桥动力单元-非标液压泵站-非标液压系统-深圳市三好科技有限公司 | 无锡装修装潢公司,口碑好的装饰装修公司-无锡索美装饰设计工程有限公司 | 缝纫客| 球磨机,节能球磨机价格,水泥球磨机厂家,粉煤灰球磨机-吉宏机械制造有限公司 | 上海办公室设计_办公楼,写字楼装修_办公室装修公司-匠御设计 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 皮带式输送机械|链板式输送机|不锈钢输送机|网带输送机械设备——青岛鸿儒机械有限公司 | 气力输送设备_料封泵_仓泵_散装机_气化板_压力释放阀-河南锐驰机械设备有限公司 | 上海噪音治理公司-专业隔音降噪公司-中广通环保 | atcc网站,sigma试剂价格,肿瘤细胞现货,人结肠癌细胞株购买-南京科佰生物 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 球磨机,节能球磨机价格,水泥球磨机厂家,粉煤灰球磨机-吉宏机械制造有限公司 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 | 铸铝门厂家,别墅大门庭院大门,别墅铸铝门铜门[十大品牌厂家]军强门业 | 东莞ERP软件_广州云ERP_中山ERP_台湾工厂erp系统-广东顺景软件科技有限公司 | 真空吸污车_高压清洗车厂家-程力专用汽车股份有限公司官网 | 香港新时代国际美容美发化妆美甲培训学校-26年培训经验,值得信赖! | 订做不锈钢_不锈钢定做加工厂_不锈钢非标定制-重庆侨峰金属加工厂 | 蜘蛛车-高空作业平台-升降机-高空作业车租赁-臂式伸缩臂叉装车-登高车出租厂家 - 普雷斯特机械设备(北京)有限公司 | 体坛网_体坛+_体坛周报新闻客户端| 今日扫码_溯源二维码_产品防伪一物一码_红包墙营销方案 | 山东集装箱活动房|济南集装箱活动房-济南利森集装箱有限公司 | 室内室外厚型|超薄型|非膨胀型钢结构防火涂料_隧道专用防火涂料厂家|电话|价格|批发|施工 | 微型气象仪_气象传感器_防爆气象传感器-天合传感器大全 | DNA亲子鉴定_DNA基因检测中心官方预约平台-严选好基因网 | 新中天检测有限公司青岛分公司-山东|菏泽|济南|潍坊|泰安防雷检测验收 | 手术示教系统-数字化手术室系统-林之硕医疗云智能视频平台 | 土壤养分检测仪_肥料养分检测仪_土壤水分检测仪-山东莱恩德仪器 大型多片锯,圆木多片锯,方木多片锯,板材多片锯-祥富机械有限公司 | 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 乐考网-银行从业_基金从业资格考试_初级/中级会计报名时间_中级经济师 | Dataforth隔离信号调理模块-信号放大模块-加速度振动传感器-北京康泰电子有限公司 | 深圳天际源广告-形象堆头,企业文化墙,喷绘,门头招牌设计制作专家 | 磷酸肌酸二钠盐,肌酐磷酰氯-沾化欣瑞康生物科技 | 同学聚会纪念册制作_毕业相册制作-成都顺时针宣传画册设计公司 | 拉卡拉POS机官网 - 官方直营POS机办理|在线免费领取 | 影像测量仪_三坐标测量机_一键式二次元_全自动影像测量仪-广东妙机精密科技股份有限公司 | 流量卡中心-流量卡套餐查询系统_移动电信联通流量卡套餐大全 |