- 博客(11)
- 收藏
- 关注
原创 String类的零碎知识点
String类的零碎知识点1、关于==和equals前者是引用一致判断,对内存中引用对象的比较,如果两个对象指向了同一个内存空间(或叫内存地址,封装一下叫引用对象),则返回true;后者是自定义的比较,如果不重写equals默认和==一样,但是后者可以通过改写hashcode和equals方法来实现自定义比较;相比==,equals更注重内容一致性判断;对于==返回ture的,equals一定返回t
2017-11-27 17:05:01
562
原创 浅谈Linux的I/O模型
今天看了篇文章,在聊Linux下的I/O模型,也让我复习一下操作系统方面的知识,让我以后写网络I/O模型的时候也能够有所借鉴。具体的介绍就不说了,人家写的挺好。点击这里,可以看到:http://my.oschina.net/xianggao/blog/662803。 我主要想说一下我的理解,对于I/O模型,基本上所有的web应用都少不了。那么我想说一下对于几个服
2016-07-01 11:20:16
509
原创 浅谈生产者/消费者模型
最近看了一些源码(jdk的concurrent包),看了一本书(《大型网站技术架构》),从中发现了一个非常有用的模型:生产者/消费者模型。模型如下图:线程池:在concurrent包中,比较典型的就是线程池了,线程池的作用就是复用线程,通过限制线程的创建,来降低创建线程锁产生的开销。在JDK中,提供了便利且好用的创建线程池的类来供调用,你可以自定义调用ThreadPoolExe
2016-06-23 16:34:18
933
原创 数据结构之几种简单树的区别
本科学的数据结构,当时学的挺不错的,随着接触的东西越来越多,树这部分的知识优点混淆了,B树、B+树、B-树、红黑树、平衡二叉树等等,这其中的区别和共性让我有点晕头转向,今天在家看到了,想借此机会总结一下。1. B树和平衡二叉树:B树是二叉查找树(Binary Search Tree),又叫二叉排序树(Binary Sort Tree),形成B树需要满足三个条件:
2016-06-07 18:45:26
2237
原创 Redis内部数据结构的实现
还有两个多月就找工作了,决定把之前看的一些东西整理一下,做个记录,也整理一下最近的思路。Redis 作为一个基于key=>value的内存数据库,使用ANSI C语言实现,以其高性能和支持丰富的数据结构闻名于世,而其数据结构也是其高性能的基础,今天分享一下我对此的理解,并以redis3.2的正式版源码分析。在Redis内部,有非常多的数据结构:sds(简单动态字符串),list,i
2016-06-06 15:42:47
10947
4
原创 Java并发编程的艺术(上)
ChapterOne 并发编程的挑战 1. 并发编程的目的是为了让程序更快速的运行,但是并不是启用更多的线程就能让程序最大限度的并发执行。2. 进行多线程并发编程时,会遇到许多挑战,列举三个:上下文切换、死锁、其他资源限制。3. 是否并发一定就比串行快? 例子:public class CurrencyTest { private static final long coun
2016-05-05 20:24:00
1995
4
转载 Java回调机制(CallBack)详解
序言最近学习java,接触到了回调机制(CallBack)。初识时感觉比较混乱,而且在网上搜索到的相关的讲解,要么一言带过,要么说的比较单纯的像是给CallBack做了一个定义。当然了,我在理解了回调之后,再去看网上的各种讲解,确实没什么问题。但是,对于初学的我来说,缺了一个循序渐进的过程。此处,将我对回调机制的个人理解,按照由浅到深的顺序描述一下,如有不妥之处,望不吝赐教!开始之
2016-05-04 14:58:56
600
原创 Java设计模式之代理模式
定义:所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之前起到中介的作用。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。生活中的例子:过年加班比较忙,没空去买火车票,这时可以打个电话到附近的票务中心,叫他们帮你买张回家的火车票,当然这会附加额外的
2016-05-01 20:50:13
501
原创 Java数据结构--排序
最近实验室的技术沙龙开展起来了,我想着讲点基础的,讲讲最基本的排序算法吧。相比于画图讲思想,我更喜欢实现了的代码,所以我就根据代码写一下。(代码默认升序排列)插入排序://插入排序 public static void InsertSort(int[] num){ if (num.length<=0) { //判断数组是否为空 return;
2016-04-27 15:37:52
476
转载 Java成神之路——技术栈
这个是我在一篇博客上看到的文章,觉得写的挺全的,我也应该往这个方向充实自己,粘下来和大家共勉。 一、基础篇1.1 JVM1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收1.1.2. 了解JVM各种参数及调优1.1.3. 学习使用Java工具 jps, jstack, jmap, jconsole, jinfo, jhat, javap, … h
2016-04-27 14:36:04
11844
1
原创 Redis为什么这么快?
今天我在一个技术群里提出一个问题:Redis为什么这么快,Redis的那些特性能够支持了它的高并发?之前的我,也只是知道Redis是内存数据库,所以读取速度快;IO使用的是多路复用,使用一个线程来轮询描述符,减少了线程上下文的切换,将数据库的开、关、读、写都转化成了时间,所以IO时也有加速。虽然理解上就是这些(当然还有一些数据结构的原因,全程使用hash结构,加速读写) 突然想写下来
2016-04-27 13:04:54
15453
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人