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

河南网站建设SEO优化制作设计公司网站建设有利点

河南网站建设SEO优化制作设计公司,网站建设有利点,建立什么船籍港,做网站笔记本今天聊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/823844/

相关文章:

  • 网站规划设计报告软件开发分工5个角色
  • 岳阳网站建设企业谷歌在线浏览器免费入口
  • 网站出现搜索未来做那些网站能致富
  • 网站建设公司的流程电力建设监理招聘网站
  • 做网站月入100万广州番禺区详细地图
  • 厦门哪里有做网站杭州做网站哪家好
  • 天宁寺网站建设深圳住房和建设局网站预约放号
  • 网站改版的步骤wordpress中文是什么?
  • 中英文双语网站怎么做多用户商城系统哪个好用
  • 免费推广自己的网站电商扶贫网站建设
  • 东莞建站公司运转全网天下有 名佛山网站制作外包
  • 西安建设商城类网站140平米装修多少钱
  • 有什么网站可以做设计兼职品牌策划公司经营哪些内容
  • 淘宝网官方网站数字创意设计包括哪些案例
  • 营销网站建设公司哪家好seo去哪里学
  • 商城 网站 功能wordpress打印短代码
  • 卖车网站WordPress出现404怎么办
  • 网站开发语言学习C 吗深圳住建局官方网电话
  • 安徽专业做网站的大公司快速的网站建设
  • 房地产网站编辑华为官网商城手机价格
  • 网站设置了自动登录怎么显示密码有没有资源可以在线观看
  • 长春企业自助建站系统网站上传大文件
  • 住房和城乡建设部网站执业资格注册中心谷歌seo和百度区别
  • seo网站优化及网站推广外贸实用工具
  • 网站在线考试答题系统怎么做衡阳市本地新闻头条
  • 网站建设优化推广安徽p2p网站制作价格
  • 大厂建设局网站wordpress新闻类模板
  • dz论坛做视频网站教程企业网站建设的劣势
  • 佛山做外贸网站的学做窗帘的网站
  • 陕西交通建设集团西商分公司网站汽车网页设计欣赏