转载:<StringBuilder在高性能场景下的正确用法> by 江南白衣 关于StringBuilder,一般同学只简单记住了,字符串拼接要用StringBuilder,不要用+,也不要用StringBuffer,然后性能就是最好的了,真的吗吗吗吗? 还有些同学,还听过三句似是而非的经验: 1. Java编译优化后+和StringBuilder的效果一样: 2. StringBuilder不是线程安全的,为了“安全”起见最好还是用StringBuffer: 3. 永远不要自己拼接日志信息的…
1. HashMap 在JDK 7 与 JDK8 下的差别 顺便理一下HashMap.get(Object key)的几个关键步骤,作为后面讨论的基础. 1.1 获取key的HashCode并二次加工 因为对原Key的hashCode质量没信心,怕会存在大量冲突,HashMap进行了二次加工. JDK7的做法: h ^= (h >>> 20) ^ (h >>> 12);return h ^ (h >>> 7) ^ (h >>> 4);…
关于StringBuilder,一般同学只简单记住了,字符串拼接要用StringBuilder,不要用+,也不要用StringBuffer,然后性能就是最好的了,真的吗吗吗吗? 还有些同学,还听过三句似是而非的经验: 1. Java编译优化后+和StringBuilder的效果一样: 2. StringBuilder不是线程安全的,为了“安全”起见最好还是用StringBuffer: 3. 永远不要自己拼接日志信息的字符串,交给slf4j来. 1. 初始长度好重要,值得说四次. StringBu…
Qunar机票技术部就有一个全年很关键的一个指标:搜索缓存命中率,当时已经做到了>99.7%.再往后,每提高0.1%,优化难度成指数级增长了.哪怕是千分之一,也直接影响用户体验,影响每天上万张机票的销售额. 在高并发场景下,提供了保证线程安全的对象.方法.比如经典的ConcurrentHashMap,它比起HashMap,有更小粒度的锁,并发读写性能更好.线程安全的StringBuilder取代String.StringBuffer等等(Java在多线程这块实现是非常优秀和成熟的). Java…
package xxx; import java.sql.Timestamp; import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicLong; /** * 高并发场景下System.currentTimeMillis()的性能问题的优化 * <p><p> * System.currentTimeMillis()的调用比new一个普通对象要耗时的多(具体耗时高出多少我还没测试过,有人说是100…
Linux C语言多线程库Pthread中条件变量的的正确用法逐步详解   多线程c语言linuxsemaphore条件变量 (本文的读者定位是了解Pthread常用多线程API和Pthread互斥锁,但是对条件变量完全不知道或者不完全了解的人群.如果您对这些都没什么概念,可能需要先了解一些基础知识) 关于条件变量典型的实际应用,可以参考非常精简的Linux线程池实现(一)——使用互斥锁和条件变量,但如果对条件变量不熟悉最好先看完本文. Pthread库的条件变量机制的主要API有三个: int…
*****************开篇介绍**************** ----------------------------------------------------------------------------------------------------------------------- 三个重要的标准: ---大型缓存架构中需要首先说一下: 海量数据:支持海量数据缓存,支持大规模数据: 高并发:在亿级QPS的场景下,可以做到满足业务需求: 高可用:表示redis可以做…
原文地址http://blog.csdn.net/ly502541243/article/details/52105466 原文地址http://blog.csdn.net/ly502541243/article/details/52105466 Context 在Android开发的时候,很多地方我们都会用上Context这个东西,比如我们最常用的startActivity,以前也没怎么在意这个到底有什么用,方法要参数就直接传过去,今天看到getApplicationContext和getAp…
http://docs.ceph.com/docs/master/radosgw/s3/objectops/#initiate-multi-part-upload 根据分片上传的API描述,因为对同一个文件需要多个upload的HTTP请求.那么很显然,存在多个RGW负载均衡的场景下,不同的HTTP请求会被负载均衡到不同的RGW上. 那么这是否会导致RGW不能把文件分片正确的合并为一个大文件的问题呢(也就是说 文件分片是否必须被上传到同一个RGW)? 验证步骤: 1. 使用 s3 java sd…
Spring MVC是个非常优秀的框架,其优秀之处继承自Spring本身依赖注入(Dependency Injection)的强大的模块化和可配置性,其设计处处透露着易用性.可复用性与易集成性.优良的设计模式遍及各处,使得其框架虽然学习曲线陡峭,但 一旦掌握则欲罢不能.初学者并不需要过多了解框架的实现原理,随便搜一下如何使用“基于注解的controller”就能很快上手,而一些书籍诸如 “spring in action”也给上手提供了非常优良的选择. 网上的帖子多如牛毛,中文的快速上手,英文的…