当前位置: 首页 > 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.hkea.cn/news/62044/

相关文章:

  • 国内做国外代购在哪个网站好百度平台客服怎么联系
  • 菏泽网站获客网站建设公司中国站长网入口
  • 黄冈网站建设推荐seo查询排名软件
  • 自己怎么做百度网站广州seo网站公司
  • 京东企业的电子网站建设百度seo教程网
  • 弥勒网站设计公司share群组链接分享
  • 网站建设栏目管理百度推广搜索排名
  • 企业管理类的网站全球搜是什么公司
  • 网站开发自我介绍seo报告
  • 网站应用软件设计海口seo网络公司
  • 武汉站建设深圳网站开发制作
  • 网站建设的平台分析北京seo技术
  • 手表价格网站百度推广天津总代理
  • 如何将域名和网站绑定排名seo怎么样
  • 旅游网站推广方案色盲测试图
  • 现在开发个网站多少钱安全优化大师
  • 网站开发工程师工资多少百度统计工具
  • 征信报告优化大师好用吗
  • 一个ip地址做多个网站网络营销公司是做什么的
  • 赤峰网站建设公司旅行网站排名
  • seo网站优化工具软件拉新推广平台
  • 政府网站设计方案无锡网站制作优化
  • 社交网站盈利吗如何在各种网站投放广告
  • 建设工程合同民法典东莞快速优化排名
  • 泗县口碑营销互联网营销推荐咨询青岛seo计费
  • 做电影网站用什么服务器中文域名注册官网入口
  • 做网站那里好win10系统优化工具
  • 做外贸上哪些网站找客户口碑营销的概念是什么
  • 外贸建站magento百度地图推广
  • 做网站和管理系统全网热度指数