当前位置: 首页 > news >正文

做名片哪个网站可以找网站地图怎么做XML

做名片哪个网站可以找,网站地图怎么做XML,wordpress进入后台空白,c 网站模板文章目录 1、什么是intern#xff1f;2、经典例题解释例1例2例3 1、什么是intern#xff1f; String::intern()是一个本地方法#xff0c;它的作用是如果字符串常量池中已经包含一个等于此String对象的字符串#xff0c;则返回代表池中这个字符串的String对象的引用#… 文章目录 1、什么是intern2、经典例题解释例1例2例3 1、什么是intern String::intern()是一个本地方法它的作用是如果字符串常量池中已经包含一个等于此String对象的字符串则返回代表池中这个字符串的String对象的引用否则会将此String对象包含的字符串添加到常量池中并且返回此String对象的引用。----书上描述 已经包含。。。可能不太好理解。我画图解释 方法的执行顺序肯定是从下向上依次执行的。 String s1 “11”; 先去字符串常量池中查看是否已经存在“11”如果存在则直接返回11的地址如果不存在则会在字符串常量池中创建“11”然后返回创建好的“11”的地址。因为之前未创建过所以该指令会先去字符串常量池中创建“11”然后返回11的地址 501。 String s2 new String(“11”); 也是先去字符串常量池中查看是否已经存在“11”如果有就在堆中创建对象存的是字符串常量池中“11”的地址501最后将堆中对象的地址601返回给S2 。 String s3 s2.intern(); intern方法会从字符串常量池中查询当前s2字符串11是否存在若不存在就会在字符串常量池中创建字符串11的实例 由于s1已经在字符串常量池中已经创建了“11”s2.intern()则返回501。 System.out.println(s1s2); System.out.println(s1s3);false trues1s2 返回false是因为s1指向的是字符串常量池中的11对象501而s2指向的是堆中存储了11的地址的对象601 s1s3 返回true 是因为s3和s1都指向的是字符串常量池中的11。 对String srt new String(“str”)与 str1 ”str“的区别不了解的话可以看篇文章 2、经典例题解释 例1 //1 String s new String(1); //2 s.intern();//调用此方法之前字符串常量池中已经存在了1. //3 String s2 1; //4 System.out.println(ss2);执行1会创建两个对像在字符串常量池中创建一个”1“在堆中创建一个String对象并存储“1”在字符串常量池中的的地址。执行2调用此方法之前字符串常量池中已经存在了1所以此指令什么都没做此时s指向堆中的对象。执行3由于字符串常量池中已经存在了“1”所以不需要再创建返回“1”的地址s2指向字符串常量池中的”1“。执行4由于s指向堆中对象s2指向字符串常量池中的对象所以打印结果是false。 这是比较简单的例子 下面上强度了 例2 //1String s3 new String(1)new String(1);//2s3.intern();//3String s4 11;//4System.out.println(s3s4);执行1会在堆中创建两个存储字符串”1“的地址的对象和一个字面量为”11“的String对象在字符串常量池中创建一个”1“字符串实例。 在编译期间在创建String对象之前会先创建一个StringBuilder对象后面每次在堆中创建完一个String对象会对该字符串执行LDC指令LDC指令会先到字符串常量池中查找是否存在对应字符串实例的引用如果有的话那么直接返回这个字符串实例的地址给堆中的new的String对象如果没有的话会创建一个字符串实例然后将其添加到字符串常量池中之后再返回这个字符串实例对象的地址给堆中创建的对象。完成String对象初始化后都会执行StringBuilder::append()方法将该字符串拼接到StringBuilder对象里。当都拼接完会执行StringBuilder::toString()方法返回一个在堆中新new的String对象value为11。 可以通过编译后的字节码文件清晰的观察整个过程 标注的都是刚才介绍的行为。 执行2由于toString()方法只在堆中创建了一个”存储11的String对象并没有在字符串常量池中创建11字符串实例。按之前的说法intern应该去字符串常量池中创建字符串”11“的实例但是在JDK7中并没有在字符串常量池中创建字符串11的实例由于堆中已经存在了11这个String对象那么为了节省空间会在字符串常量池中申请一块空间存放这个String对象的地址并返回存放的地址也就是堆中存储11的String对象的地址。 执行3会去字符串常量池中查找是否存在11,因为第二行已经在字符串常量池中创建了存储堆中存储11的String对象的地址的空间则直接返回空间里面存储的堆中String对象的地址所以s4也指向了堆中存储11的String对象。 由于s3和s4都指向堆中同一个对象所以打印结果为true。 如图所示 通过debug可以看到两个句柄指向的地址是一样的 打印结果 例3 //1String s3 new String(1)new String(1);//2String s4 11;//3s3.intern();//4System.out.println(s3s4);第一行执行结果与例2的第一行执行结果一致。执行2由于字符串常量池中还没有11,则向字符串常量池中创建字符串11的实例并返回实例的地址。执行3由于字符串常量池中已经存在11,则不需要再创建返回实例的地址但由于没有赋值操作所以该行代码没有什么作用。此时s3指向堆中存储了“11”的String对象而s4指向的是字符串常量池中字符串为11的实例所以指向的地址不同打印结果为false 通过debug可以看到两个句柄指向的地址是不同的 打印结果
http://www.hkea.cn/news/14410001/

相关文章:

  • 企业网站模板 htmlwordpress 搜索频率
  • 绵阳网站开发公司百度权重工具
  • 做新闻类网站ftp媒体库 wordpress
  • 网站建设后的心得网站开发国内外研究背景
  • 移动端网站定制网站被黑客入侵怎么办
  • 网站建设学习网公司有哪些快速seo关键词优化技巧
  • 知名高端网站建设报价wordpress 百度主题
  • 江苏建设集团有限公司网站网站制作金华公司电话
  • 有没有做美食的网站商标设计app
  • 网站怎么做自己站长wordpress 安装主题 主机名
  • 徐州网站建设招聘网wordpress页面类型
  • 网站建设包括哪些技术网上做网站网站代理赚钱吗
  • 做创新方法工作网站建筑学网站
  • 广东专业网站优化制作公司企业营销推广型网站建设
  • 网站建设如何提案襄阳seo优化排名
  • 新建的网站打不开网站开发的实训报告
  • 环境艺术设计网站推荐房产中介网站模板
  • 微信如何引流推广精准加人网站建设及推广优化
  • 作品集的个人网站怎么做做班级网站的实训报告
  • 网站YYQQ建设在网上做效果图网站
  • 网站建设程序文件网站源码 酷
  • 怎样做医院网站网站搭建谷歌seo
  • 江宁区建设工程质量监督站网站太原建站模板网站
  • ps网站CAD做PS地砖贴图网页显示站点不安全
  • 房屋经纪人网站端口怎么做哪些人不适合学电子商务专业
  • 生存曲线哪个网站可以做国外wordpress
  • 做网站是怎么赢利的wordpress怎么给产品编号
  • 天津网站建设模板做简历的网站viso
  • 做百度推广会送网站吗网页 网站及与之相关的概念
  • 网站建设800元全包数据库作业代做网站