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

北京品牌建设网站东莞推广系统哪家强

北京品牌建设网站,东莞推广系统哪家强,自己做外贸自己做网站,展厅设计公司选四度科技今天聊Java构建字符串以及其内存原理 我们先来看一个小例子。一个是String,一个是StringBuilder. 通过结果对比,StringBuilder要远远快于String. String/StringBuilder/StringBuffer这三个构建字符串有什么区别? 拼接速度上,StringBuilder…

今天聊Java构建字符串以及其内存原理

我们先来看一个小例子。一个是String,一个是StringBuilder.

 

通过结果对比,StringBuilder要远远快于String.

String/StringBuilder/StringBuffer这三个构建字符串有什么区别?

拼接速度上,StringBuilder/StringBuffer的速度要远远快于String但StringBuilder多线程并发操作不安全,StringBuffer多线程并发操作下安全(StringBuffer里面加了锁,速度稍微慢一点点)。

原理:

        在内存中,每个存储单元大小为1字节。如果想要获取10000B大小的数据,要向内存申请一万次才能得到全部数据单元,所以操作系统为了提高效率,把内存按内存页划分,每页4096个字节(4KB)。这样,每次申请后读取一个内存页。10000B大约是3个内存页。

        一个内存页只有一个总地址(开头),在一个内存页中只能储存一个变量,其他的是找不到的。数组里面的变量是可以存在一个内存页的,但是对于python,php,js等弱类型语言,数组默认不区分类型,但是在底层被c语言翻译后还是被区分为不同类型的语言分页储存,所以弱类型语言对内存的消耗很大。

        每个内存页设计为4KB大小,这是一个折中的策略。既保证了一定的读取速度,也不至于过大,导致太多的浪费。所以操作系统一次分配的最小内存单元为4KB.。

回到我们刚才的小例子

        String类型一旦创建,原地址处不可变,只能不断开辟新的内存页,前4096次每次申请一个内存页后4097~8192一次申请两个内存页……以此类推。所以对内存的消耗是十分巨大的 。

如果是本地可变的话就会极大的降低内存的损耗。StringBuilder就是这样,它默认有16字节的缓冲区存储空间,当然,这个空间的大小也可以自己设置。StringBuilder的前身就是StringBuffer。一般缓冲区(buffer)底层都是这种数组结构,速度都很快。哪些操作需要到缓冲区呢?

        文件流操作,网络流操作,其实stream流操作本质上就是数组

http://www.yayakq.cn/news/937340/

相关文章:

  • html网站地图在线生成赶集网2022年最新招聘
  • 企业网站结构图邯郸现代建设集团网站
  • 网站建设基础内容近期十大热点事件
  • 深圳设计公司安卓手机优化神器
  • 做淘宝的导购网站网站开发摊销期
  • 网站维护方案怎么做新网站优化怎么做
  • 网站开发的经验技巧鞍山网站设计制作
  • 专业建站公司怎么收费wordpress网站 frp穿透
  • 外贸网站是什么意思外国网站开发
  • 常德市建设工程造价网站网站设计业务
  • 北京建设注册中心网站怎样制作网站和软件
  • 南宁做网站 的打开网站是iis7
  • 网站建设必备语言温州网页建站模板
  • 企业网站建设项目计划书wordpress主题APP
  • 手表哪个网站正品建设资讯网站
  • 黄石网站建设多少钱邯郸市房价
  • 做app网站需要什么flash 做ppt的模板下载网站
  • 怎么做网站的超级链接邯郸网络营销推广平台
  • 建设网站几种方法音乐网站开发开发
  • 太原本地网站搭建公司字体设计图片
  • wordpress怎么搭建分享网站微云做网站
  • 建立网站建设营销型网站设计方案
  • 用来做调查问卷的网站农产品十大交易平台
  • html5网站 源码怎么建手机网站平台
  • 网站开发 零基础贸易公司做推广的网站
  • 义乌设计网站国内酒店网站建设
  • 轻松做网站公司网站哪家做的好
  • 静态网站如何入侵wordpress 4.5.7漏洞
  • 网站设计开发软件有哪些网站的外链建设
  • 网站流量 次网站域名被注册