自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

转载 String类为什么要设计成不可变的

这是一个老生常谈的话题(This is an old yet still popular question). 在Java中将String设计成不可变的是综合考虑到各种因素的结果,想要理解这个问题,需要综合内存,同步,数据结构以及安全等方面的考虑. 在下文中,我将为各种原因做一个小结。

2017-10-22 10:55:21 580

原创 String.indexOf源码分析

最近看了下String的一些源码,觉得indexOf(String str)这个方法有点意思,这个方法的功能是找到当前字符串中第一次出现str的位置,返回int表示位置。试想一下,如果不看源码,我们自己实现一个这样的方法,我们会怎么做呢?先说下我的思路:1.遍历当前字符串,找到当前字符串中和str字符串第一个字符相同的字符,比如当前字符串为"abcdabcdefg",str为"def",那

2017-10-22 10:43:12 7371 2

原创 synchronized和ReentrantLock的区别

重入锁可以说是synchronized的替代品甚至可以说是增强版,重入锁可以完全替代synchronized关键字。看到网上有很多重入锁的性能远远好于synchronized的说法,事实上,在JDK5.0以前的确这样,但从JDK6.0开始,JDK在synchronized做了大量的优化,使得两者的性能差距并不大。1.重入锁的灵活性更好与synchronized相比,重入锁有着现实的操作过程

2017-10-21 18:00:20 1604

原创 高可用的服务设计

可复用的服务模块为业务产品提供基础公共服务,大型网站中这些服务通常都独立分布式部署,被具体应用远程调用。可复用的服务和应用一样,也是无状态的服务,因此可以使用类似负载均衡的失效转移策略实现高可用的服务。除此之外,具体实践中,还有以下几点高可用的服务策略:一.分级管理分级管理意思是,对核心服务和非核心服务进行分级,核心服务部署在更好的硬件上,同时在服务部署上进行必要的隔离,避免故障的连锁

2017-10-15 10:35:39 605

原创 应用服务器集群的Session管理

应用服务器的高可用架构设计主要基于服务无状态这一特性,但是事实上,业务总是有状态的,在交易类的电子商务网站,需要有购物车记录用户的购买信息,用户每次购买请求都是向购物车中增加商品,在社交类的网站中,需要记录用户的当前登录状态,最新发布的消息及好友状态等,用户每次刷新页面都需要更新这些消息。Web应用中将这些多次请求修改使用的上线文对象称为会话(Session),单机情况下,Session可由部

2017-10-15 10:35:09 258

原创 提高网站性能的常见方法

一.Web前端性能优化一般来说Web前端指网站业务逻辑之前的部分,包括浏览器加载,网站视图模型,图片服务,CDN服务等,主要优化手段有优化浏览器访问,使用反向代理,CDN等。1..浏览器访问优化(1)减少http请求HTTP协议是无状态的应用层协议,意味着每次HTTP请求都需要简历通信链路,进行数据传输,而在服务器端,每个HTTP都需要启动独立的线程去处理,这些通信和服务的开销都很

2017-10-15 10:34:22 9150

原创 大型网站架构模式

为了解决大型网站面临的高并发访问,海量数据处理,高可靠运行等一系列问题和挑战,大型互联网公司在实践中提出来许多解决方案,以实现网站高性能,高可用,易伸缩,可扩展,安全等技术架构目标。一.分层分层是企业应用系统中最常见的一种架构模式,分层将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统。大型网站架构将网站软件系统分为

2017-10-15 10:33:39 278

原创 大型网站架构演化

一.大型网站系统的特点与传统企业应用系统相比,大型互联网应用系统有以下特点:1.高并发,高流量:需要面对高并发用户,大流量访问。2.高可用:系统7*24小时不间断服务。3.海量数据:需要存储管理海量数据,需要使用大量服务器。4.用户分布广泛,网络情况复杂:用户分布范围广,各地网络情况千差万别。5.安全环境恶劣:每天都会被黑客攻击。6.需求快速变更,发布频繁:为了满足用户

2017-10-15 10:26:53 234

原创 重构代码总结

一.代码的坏味道1.重复代码书中将"重复代码"作为代码的坏味道第一点,足以说明"重复代码"的危害。“坏味道行列中首当其冲的就是重复代码”。最单纯的重复代码就是“同一个类的两个函数含有相同的表达式”。这时候你需要使用提炼函数提炼出重复的代码,然后让这两个地点都调用被提炼出来的那一段代码。2.过长函数拥有短函数的对象会获得比较好,比较长。“程序越长越难以理解”,你应该积极地分解函数。我

2017-10-09 10:41:41 467

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除