自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM基础知识

2. Java运行时环境 — 其实就是考JVMJVM与Hotspot的关系:JVM是规范,Hotspot是对规范的实现。JVM三个部分必须非常清楚:内存划分、class加载机制、GC策略。1)内存划分我们常说的对于内存的划分,通常是指Hotspot的划分方式,而非JVM规范所规定的。Hotspot将JVM内存划分为三个部分,Young Generation(年轻...

2017-03-05 13:30:17 143

原创 Java高阶语法

1. 语言基础基础部分的重点: 1)关键字:static, final, transient, volatile。2)高阶语法:内部类、泛型。具体解释:1)static: static变量不会被GC回收,也就意味着有内存泄露的风险。— 融云的项目还会造成频繁的Full GC.static会将所引用的属性、方法、内部类,与类直接产生引用关系,而不是与类...

2017-03-05 12:38:06 336

原创 林萧谈如何进入BAT

前提:1. 心态心态上要静下心来看书,一点一点扣,切忌浮躁。2. 欲望欲望是前进的动力。一。基本要求:必须会的,必考的1. 语言基础基础部分的重点: 1)关键字:statis, final, transient, volatile。2)高阶语法:内部类、泛型。具体解释:1)static: static变量不会被...

2016-11-07 14:09:18 182

原创 学习方向

2016-10-29比较薄弱的环境:1. 算法:例如贪心等 --> 面试必考2. 各种底层原理:1)各种协议,如XMPP、HTTP、TCP2)DNS解析3)Redis底层原理4)MySQL底层原理5)Kafka、zookeeper、ActiveMQ、Dobbo等3. Java框架:如Spring, Mybatis等,JS等4. 其他语言P...

2016-07-24 12:12:18 114

原创 ZooKeeper编程指导

原文地址: http://www.importnew.com/20457.html简介对于想要利用ZooKeeper的协调服务来创建一个分布式应用的开发人员来说,这篇文章提供了指导。包含了一些概念和实际性操作的信息。这篇文章的前四个章节介绍了各种ZooKeeper的概念,这对理解ZooKeeper是怎么工作的是必须的。没有包含源代码,但是它假设你对分布式处理有关的问题比较熟...

2016-07-18 16:16:53 98

原创 大型网站架构系列:负载均衡详解

原文地址:http://www.cnblogs.com/itfly8/p/5043435.htmlhttp://www.cnblogs.com/itfly8/p/5043452.htmlhttp://www.cnblogs.com/itfly8/p/5080743.htmlhttp://www.cnblogs.com/itfly8/p/5080988.html...

2016-07-18 16:16:41 84

原创 大型网站架构系列:20本技术书籍推荐

http://www.cnblogs.com/itfly8/p/5128025.html

2016-07-18 16:16:33 132

原创 8张图理解Java

原文地址:http://www.importnew.com/11725.html

2016-07-18 16:14:41 82

原创 Java并发编程

Java并发编程(1):可重入内置锁 http://www.importnew.com/20487.htmlJava并发编程(2):线程中断(含代码) http://www.importnew.com/20527.htmlJava并发编程(3):线程挂起、恢复与终止的正确方法(含代码) http://www.importnew.com/20539.htmlJava并发编...

2016-07-17 10:06:11 82

原创 理解Java虚拟机体系结构

原文地址:http://www.importnew.com/18689.html1 概述众所周知,Java支持平台无关性、安全性和网络移动性。而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一的编程接口,而不管下层操作系统是什么。正是得益于Java虚拟机,它号称的“一次编译,到处运行”才能有所保障。1.1 Java程序执行流程Java...

2016-07-17 10:05:56 83

原创 Java并发编程:线程池的使用

原文地址:http://www.cnblogs.com/dolphin0520/p/3932921.htmlJava并发编程:线程池的使用  在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:  如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线...

2016-07-17 10:03:22 91

原创 一致性哈希算法

原文地址:http://www.blogjava.net/hello-yun/archive/2012/10/10/389289.html一致性哈希算法是分布式系统中常用的算法。比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所有的数据映射都...

2016-07-17 10:02:55 82

原创 Java虚拟机

JAVA虚拟机的生命周期:http://www.importnew.com/17455.html【深入Java虚拟机(1)】:Java内存区域与内存溢出 http://www.importnew.com/19946.html【深入Java虚拟机(2)】:Class类文件结构 http://www.importnew.com/19987.html【深入Java虚拟机(3)】:...

2016-07-17 10:02:42 90

原创 Java并发编程:Lock

原文地址:http://www.cnblogs.com/dolphin0520/p/3923167.html在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。  也许有朋友会问,既然都可以通过sync...

2016-07-13 10:34:03 63

原创 Java集合框架:HashMap

原文地址:http://www.importnew.com/18604.htmlJava集合框架概述Java集合框架无论是在工作、学习、面试中都会经常涉及到,相信各位也并不陌生,其强大也不用多说,博主最近翻阅java集合框架的源码以及搜索一些相关资料整理出Java集合框架的系列。一方面是做一个总结,方便以后查阅,另一方面希望各位小伙伴能够提出不足之处,我会及时更新修改。这里写图...

2016-07-13 10:15:09 71

原创 HashMap的实现原理

原文地址:http://www.importnew.com/16301.htmlHashMap概述HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap的数据结构在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引...

2016-07-13 10:11:24 54

原创 HashMap的工作原理

原文地址:http://www.importnew.com/7099.htmlHashMap的工作原理首页所有文章资讯Web架构基础技术书籍教程我要投稿更多频道 »HashMap的工作原理2013/11/15 | 分类: 基础技术 | 24 条评论 | 标签: HASHPMAP分享到: 306本文由 ImportNew - 唐小娟 翻译自 Javarevisit...

2016-07-13 10:08:57 62

原创 Java线程面试题 Top 50

原文地址:http://www.importnew.com/12773.htmlJava线程面试题 Top 50不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面...

2016-07-13 09:58:27 65

原创 GC回收过程

Java的GC堆空间可分为年轻代(new Generation) 和年老代(old Generation), new Generation分为Eden, From, To区。其大小默认比例是8:1:1. 新的对象总是在Eden Space中被创建,当Eden区域满时,会触发Monitor GC, 这时会将仍在被使用的读写从Eden区copy到From区,然后清除Eden区;这样Eden区空了,新对...

2016-07-12 19:09:10 129

原创 聊天室总结

聊天室总结1. 我刚来公司的时候,聊天室是单机的方案:即只有一个chatroom服务,以chatroomId作为targetId, 这意味着,一个聊天室的所有行为,都只能在一台server上。包括加入、退出聊天室;聊天室发消息、聊天室发Notify,以及最终的用户来聊天室拉取消息。2. 随着聊天室业务的爆发性增长,单机方案已经无法撑住高并发的用户量。这时的架构改进为:把notify...

2016-07-09 15:18:05 455

原创 读写锁总结

1. ReadWriteLock对象的方法中一旦加入了synchronized关键字,则任何时刻只能有一个线程访问synchronized修饰的块。假设有个数据对象用户拥有写方法和读方法,那么多线程环境下要保证数据的安全,需要对该对象的读、写方法都加synchronized关键字。 这样, 1)对于任何线程在写入时,其他线程都无法读,也无法写; 2)如果有线程在读时,其他线...

2016-04-02 16:14:45 205

原创 架构设计经验:高可用与可伸缩

1. 分布式架构要解决的主要问题1)高可用:举个单机房高可用的例子,你肯定不希望因为一个磁盘损坏,或一个机器损坏,或者一个交换机损坏,就导致整个系统的服务不可用了。2)在系统容量增长的情况下,如何实现可伸缩。3)偏管理的方面:如果能够让7--10人的小组的工作是独立的服务单元,各个小组之间的工作有比较清晰的边界,这样他们合作起来会方便很多。4)服务质量:有南北方机房...

2016-04-02 16:13:49 243

原创 top命令学习

top是Linux下的性能分析工具,用于实时显示系统各进程的资源占用情况,类似于windows的资源管理器。1. 前5行是整体的统计信息区:第一行,任务队列信息top - 14:13:29 up 14 days, 23:41, 3 users, load average: 0.00, 0.03, 0.051)14:13:29 --> 系统当前时间2)up 14 days...

2016-03-19 15:36:48 120

原创 Log API 性能总结

Log的三种写法:1. LOGGER.info(String.format("aaaaaa%sbbbbbb%sccccc%sdddddd%s", "11", "22", "33", "44"));2. LOGGER.info("aaa{}", "bb");3. LOGGER.info("aaaaaa"+"1111"

2016-03-19 15:34:22 433

原创 Zookeeper学习

1. 什么是zookeeper?zookeeper是一个分布式的,开源的"分布式应用程序协调服务"。它包含了一个简单的原语集,分布式应用程序可以基于它实现同步服务、配置维护、命名服务等。zookeeper是hadoop的一个子项目。在分布式应用中,由于工程师不能很好滴使用“锁”机制,以及基于消息的协调机制不适合在某些应用中使用,因此,需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来...

2016-03-19 15:32:07 77

原创 Redis工作总结

1. 需求:把ChrmMember类存入Redis, 以备重启server后,聊天室的成员不会丢失。ChrmMember类的结构:-- private int msgNum; //聊天室中的消息数-- private long lastMsgTime; //聊天室中最新的消息时间-- private Stack list = new Stack(); //存储聊天室成员user...

2016-03-19 15:28:46 115

原创 SSDB学习

ssdb把数据存储到磁盘上,性能接近于redis, 但又不像redis那样纯内存那样昂贵,所以可以存储数据量大,且对于读写速度要求大于传统DB的情况。1. LSM原理 + 异步: (Log-Structured-mechanism), 磁盘内容的所有操作,都将会被顺序地写入一个类似日志的结构中,从而提供文件的写入效率。(通过异步)。同时该日志中还包含了索引信息以提高日志的读效率。日志会被划...

2016-03-19 14:48:06 336

原创 工作中多线程总结

当两个线程并发地执行一个HashSet的时候,一个线程对HashSet做遍历(Iterator或者for循环,或者.clone()), 另一个线程对它.add或者.remove的时候,会抛出:java.util.ConcurrentModificationException.而读的时候,hashSet.size(). hashSet.contains(XXX); 则不会发生异常。解...

2016-03-17 17:45:58 206

原创 Before starting

一. Basic Life1. 保持好从容和平的心态2. 每天坚持锻炼3. 少吃油腻,多吃清淡4. 保证每天睡眠充足5. 每天按部就班进步二. 学习方法1. 简明(从官网或博客上学习,书和视频为辅助)2. 实践驱动(安装到本地,写些有代表性的小例子,总结写精炼的知识点)3. 底层原理(细究底层原理:通过网上及自己测试,总结成果...

2016-03-06 18:36:25 131

原创 架构师学习方向

2017-07-09:需要做的:1. 总结聊天室的架构和优化方案。总结出聊天室从单机到当前的分布式的结构演化过程,以及未来要做的优化和架构调整。2. 学习Zookeeper, CMP,Cluster, 导航等单位中的技术架构和知识。3. 学透这三本书:《深入了解JVM的高级特性与最佳实践》、《Java并发编程实践》、《大型分布式网站的架构》4. 学习Python, ...

2015-12-18 09:41:24 275

原创 MongoDB学习

MongoDB是基于分布式文件存储的数据库。由C++编写,目的是为web应用提供"可扩展的高性能数据存储"解决方案。MongoDB是介于关系数据库和非关系数据库之间的产品。是非关系数据库当中功能最丰富,最像关系数据库的。1. NoSQL简介NoSQL(Not Only SQL), 意思是"不仅仅是SQL"NoSQL指的是非关系型数据库,用于超大规模的数据的存储。这些类型的数...

2015-12-08 14:18:28 90

原创 MySQL学习(索引、引擎、优化)

索引对于查询的速度至关重要,理解索引也是数据库调优的起点。1. 建立索引前,先设计好建立索引列的数据类型。1)越小的数据类型性能越好:因为越小的数据类型对于硬盘读取、内存、CPU缓存都需要更少的空间,处理起来更快。2)简单的数据类型更好:整型比字符型更好。3)尽量避免使用NULL: 建立索引的列最好是Not Null约束的,如果一定要用NULL,可以用0或者某特殊值替代。因为在...

2015-11-08 20:28:05 89

原创 单例模式的4种写法

1. 饿汉:[code="java"]public class Singleton { private static Singleton instance; private Singleton(){} public static Singleton getInstance() { if (instance == nul...

2015-11-08 13:00:30 160

原创 Oracle数据库性能调优

一. SQL优化1. Where中条件语句的放置顺序:Oracle是自后向前解析,所以要把能过滤掉最大记录数的条件放在最后面。例如“主键ID=?”这样的条件。2. select语句中不要使用*Oracle在解析时,会把*转换成所有的列名,这个工作是通过查询数据字典完成的,这会耗费更多的时间。3. 使用索引:使用索引的好处:可提高查询的效率使用索引的坏处:索引需要...

2015-11-03 00:12:54 170

原创 Spring学习

1. 模拟实现Spring.为什么要使用Spring呢?先考虑下最常用的访问数据库的框架:1)POJO层有一个类User2)Service层有一个类UserService,里面有一个成员变量User u,一个addUser(User u)方法3)DAO层用来访问数据库(数据库可以在MySQL和Oracle之间任意切换):有一个UserDao接口(里面有一个addUser(User ...

2015-10-02 11:51:35 66

原创 java设计模式(二)

2. 代理模式(Proxy)适用场景:秀才让小六代其求婚[img]http://dl2.iteye.com/upload/attachment/0110/6608/22b0822e-dbb3-33dd-a398-101d2c4e2f44.jpg[/img]abstract class QiuHun{ public abstract void songHua ();...

2015-08-03 22:03:41 85

原创 习题汇总

一。java基础1. 输出一个字符串中的大写英文字母数、小写英文字母数、非英文字母数。2. 输出一个字符串中,指定字符串出现的次数。3. 在命令行中以树状结构展现特定的文件夹及子文件(夹)。4. 比较对象的大小(实现Comparable接口,重新compareTo, hashCode方法)...

2015-08-03 11:11:48 105

原创 设计模式学习

预备知识:UML图1. 泛化generation,也就是继承。表示"is-a"关系。用实线+空心箭头表示。如:老虎类继承自动物类2. 实现realization,也就是实现接口。用虚线+空心箭头表示。如:大雁类实现了飞翔接口3. 聚合aggregation。表示"has-a"关系,聚合是弱包含关系。如:雁群里面有大雁。Class YanQun { ...

2015-07-26 22:54:02 69

原创 Java线程基础学习

1. 线程和进程的区别?1)什么是进程:例如一个exe文件,一个class文件,一个QQ程序,一个ppt每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销。2)什么是线程:一个程序里的执行路径。(一个程序内部的顺序控制流)线程可以看做是轻量级的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器,线程切换的开销小。3)多进程:在操作系统...

2015-06-22 14:31:15 101

原创 Java并发包学习

[b]1. ConcurrentHashMap[/b]顾名思义,ConcurrentHashMap是应用于高并发场景的HashMap.由于HashMap是非线程安全的,而HashTable在HashMap的基础上使用了Synchronized, 以此来保证线程安全。但问题在于,HashTable的Synchronized是针对整个Hash表的,即每次锁定整张表让该线程独占,这样虽然保证了线...

2015-05-24 13:41:22 186

空空如也

空空如也

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

TA关注的人

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