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

第一ppt网站wordpress外部链接

第一ppt网站,wordpress外部链接,网站建设类型分类,旅游资源网站建设的功能及内容String 对象作为 Java 语言中重要的数据类型#xff0c;是内存中占据空间最大的一个对象。高效地 使用字符串#xff0c;可以提升系统的整体性能。 来一到题来引出这个话题 通过三种不同的方式创建了三个对象#xff0c;再依次两两匹配#xff0c;每组被匹配的两个对象是否… String 对象作为 Java 语言中重要的数据类型是内存中占据空间最大的一个对象。高效地 使用字符串可以提升系统的整体性能。 来一到题来引出这个话题 通过三种不同的方式创建了三个对象再依次两两匹配每组被匹配的两个对象是否相等 代码如下 结尾有东西 String 的不可变性 了解了 String 对象的实现后你有没有发现在实现代码中 String 类被 final 关键字修饰 了而且变量 char 数组也被 final 修饰了。 我们知道类被 final 修饰代表该类不可继承而 char[] 被 finalprivate 修饰代表了 String 对象不可被更改。Java 实现的这个特性叫作 String 对象的不可变性即 String 对 象一旦创建成功就不能再对它进行改变。 String 对象的优化 1. 如何构建超大字符串 字符串常量的累计 编程过程中字符串的拼接很常见。前面我讲过 String 对象是不可变的如果我们使用 String 对象相加拼接我们想要的字符串是不是就会产生多个对象呢例如以下代码 分析代码可知首先会生成 ab 对象再生成 abcd 对象最后生成 abcdef 对象从理论 上来说这段代码是低效的。 但实际运行中我们发现只有一个对象生成这是为什么呢难道我们的理论判断错了我 们再来看编译后的代码你会发现编译器自动优化了这行代码如下 String str abcdef; 字符串变量的累计 上面我介绍的是字符串常量的累计我们再来看看字符串变量的累计又是怎样的呢  上面的代码编译后你可以看到编译器同样对这段代码进行了优化。不难发现Java 在进 行字符串的拼接时偏向使用 StringBuilder这样可以提高程序的效率。 综上已知即使使用 号作为字符串的拼接也一样可以被编译器优化成 StringBuilder 的方式。但再细致些你会发现在编译器优化的代码中每次循环都会生成一个新的 StringBuilder 实例同样也会降低系统的性能。 所以平时做字符串拼接的时候我建议还是要显示地使用 String Builder 来提升系统性 能。 如果在多线程编程中String 对象的拼接涉及到线程安全你可以使用 StringBuffer。但 是要注意由于 StringBuffer 是线程安全的涉及到锁竞争所以从性能上来说要比 StringBuilder 差一些 2 如何使用String.Intern节省内存 Twitter 每次发布消息状态的时候都会产生一个地址信息以当时 Twitter 用户的规模预 估服务器需要 32G 的内存来存储地址信息。 考虑到其中有很多用户在地址信息上是有重合的比如国家、省份、城市等这时就可以 将这部分信息单独列出一个类以减少重复代码如下  通过优化数据存储大小减到了 20G 左右。但对于内存存储这个数据来说依然很大怎 么办呢 提供公共都有的部分 这个案例来自一位 Twitter 工程师在 QCon 全球软件开发大会上的演讲他们想到的解决 方法就是使用 String.intern 来节省内存空间从而优化 String 对象的存储 具体做法就是在每次赋值的时候使用 String 的 intern 方法如果常量池中有相同值就 会重复使用该对象返回对象引用这样一开始的对象就可以被回收掉。这种方式可以使重 复性非常高的地址信息存储大小从 20G 降到几百兆 为了更好地理解我们再来通过一个简单的例子回顾下其中的原理 输出结果 a b 在字符串常量中默认会将对象放入常量池在字符串变量中对象是会创建在堆内存中 同时也会在常量池中创建一个字符串对象复制到堆内存对象中并返回堆内存对象引用。 如果调用 intern 方法会去查看字符串常量池中是否有等于该对象的字符串如果没有 就在常量池中新增该对象并返回该对象引用如果有就返回常量池中的字符串引用。堆 内存中原有的对象由于没有引用指向它将会通过垃圾回收器回收. 了解了原理我们再一起看看上边的例子。 在一开始创建 a 变量时会在堆内存中创建一个对象同时会在加载类时在常量池中创 建一个字符串对象在调用 intern 方法之后会去常量池中查找是否有等于该字符串的对 象有就返回引用。 在创建 b 字符串变量时也会在堆中创建一个对象此时常量池中有该字符串对象就不 再创建。调用 intern 方法则会去常量池中判断是否有等于该字符串的对象发现有等 于abc字符串的对象就直接返回引用。而在堆内存中的对象由于没有引用指向它将 会被垃圾回收。所以 a 和 b 引用的是同一个对象。 下面我用一张图来总结下 String 字符串的创建分配内存地址情况 使用 intern 方法需要注意的一点是一定要结合实际场景。因为常量池的实现是类似于一 个 HashTable 的实现方式HashTable 存储的数据越大遍历的时间复杂度就会增加。如 果数据过大会增加整个字符串常量池的负担。 3. 如何使用字符串的分割方法 最后我想跟你聊聊字符串的分割这种方法在编码中也很最常见。Split() 方法使用了正则 表达式实现了其强大的分割功能而正则表达式的性能是非常不稳定的使用不恰当会引起 回溯问题很可能导致 CPU 居高不下。 所以我们应该慎重使用 Split() 方法我们可以用 String.indexOf() 方法代替 Split() 方法完 成字符串的分割。如果实在无法满足需求你就在使用 Split() 方法时对回溯问题加以重 视就可以了 结尾更容易懂 题解
http://www.hkea.cn/news/14382669/

相关文章:

  • 信息化建设 网站html5网站首页代码
  • 电商网站开发要求北大青鸟的网站建设课程多少钱
  • 急求一张 网站正在建设中的图片商丘企业网站建设公司
  • 上海做网站seo做网站建设的怎么拓展业务
  • 更改网站后台thinkphp可以做网站吗
  • 如何用代码做分数查询的网站永久免费国外ip代理
  • 11108给换成119333做网站做淘宝图片的网站
  • 网站分类查询28商机网
  • 兰州建设工程信息网站黄冈便宜的网站推广怎么做
  • 公司网站建设小江wordpress主题路径
  • 网站 添加备案号正方教务系统管理系统入口
  • 去年做那些网站能致富网站建设用到什么软件
  • 济南做网站软件如何用wordpress插件下载
  • 制作网站设计作品wordpress数据库怎么替换链接
  • 灵台网站建设wordpress 博客 知名
  • 市直部门网站建设维护工作总结崇州市城乡建设局网站
  • 公司网页网站如何做外贸自己做网站
  • 外贸网站一般用什么框架分类信息网站开发教程
  • 网站建设要规避的公司找人做网站需要什么
  • 专业做域名的网站php网站开发的第三章
  • 大淘客网站如何做seo园岭中小网站建设
  • 网站建设的主要结构中国城乡建设结合部网站
  • 哈尔滨网站建设制作坪山网站建设要多少钱
  • 产品图册用什么软件做seo技术
  • 苏州网站建设开发公司用花瓣网站上的图片做游戏行吗
  • 上海网站建设集中交友征婚婚恋网站系统php+mysql.rar
  • 如何做校园网站推广计划a设置了短语否定匹配关键词为招聘
  • 临海城市建设网站暴富建站
  • 建设wap手机网站制作外贸网店平台
  • 专注网站建设微信开发廊坊网页关键词优化