
Java
Coffee-84
这个作者很懒,什么都没留下…
展开
-
Java架构师之旅
Java架构师之旅一:MVC框架的演变Java架构师之旅二:Java企业级高并发Java架构师之旅三:JAVATomcat企业级学习Java架构师之旅四:Java分布式Session项目处理方案Java架构师之旅五:Java高并发场景的数据隔离方案Java架构师之旅六:Java单例设计模式Java架构师之旅七:SpringMVC深入了解Java架构师之旅八:Spring...转载 2018-12-29 12:00:35 · 296 阅读 · 0 评论 -
BitMap位图与海量数据的理解
1. Bit Map算法简介 来自于《编程珠玑》。所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。 2、 Bit Map的基本思想 我们先来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假设这些元素没有重复)。...转载 2019-01-03 12:38:50 · 255 阅读 · 0 评论 -
JVM的内存区域划分
原文链接:http://www.cnblogs.com/dolphin0520/p/3613043.html 学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢? 由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域...转载 2016-04-15 09:37:02 · 338 阅读 · 0 评论 -
JVM原理和优化
原文链接:http://blog.youkuaiyun.com/ning109314/article/details/10411495 JVM工作原理和特点主要是指操作系统装入JVM是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境. 1.创建JVM装载环境和配置 2.装载JVM.dll 3.初始化JVM.dll并挂界...转载 2016-04-15 10:06:43 · 421 阅读 · 0 评论 -
JVM参数配置大全
原文链接:http://www.cnblogs.com/edwardlauxh/archive/2010/04/25/1918603.html 前阵子遇到几个面试题都是关于对Java内存控制的,因此从网上找到这篇文章,希望自己对Java的内存分配有重新的认识/usr/local/jdk/bin/java -Dresin.home=/usr/local/resin -server -Xm...转载 2016-04-15 10:14:12 · 287 阅读 · 0 评论 -
详解设计模式(一)
原文链接:http://blog.youkuaiyun.com/zhangerqing/article/details/8194653/ 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是...转载 2016-04-15 10:42:30 · 440 阅读 · 0 评论 -
详解设计模式(二)
原文链接:http://blog.youkuaiyun.com/zhangerqing/article/details/8239539 我们接着讨论设计模式,上篇文章我讲完了5种创建型模式,这章开始,我将讲下7种结构型模式:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式。其中对象的适配器模式是各种模式的起源,我们看下面的图: 6、适配器模式(Adapter)适配...转载 2016-04-15 10:58:43 · 305 阅读 · 0 评论 -
详解设计模式(三)
原文链接:http://blog.youkuaiyun.com/zhangerqing/article/details/8243942 今天会讲到第三类设计模式——行为型模式,共11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。这11种模式关系又分成以下四类:第一类:通过父类与子类的关系进行实现。...转载 2016-04-15 11:07:47 · 338 阅读 · 0 评论 -
详解设计模式(四)
原文链接:http://blog.youkuaiyun.com/zhangerqing/article/details/8245537 其实每个设计模式都是很重要的一种思想,看上去很熟,其实是因为我们在学到的东西中都有涉及,尽管有时我们并不知道,其实在Java本身的设计之中处处都有体现,像AWT、JDBC、集合类、IO管道或者是Web框架,里面设计模式无处不在。首先还是上一下上篇开头的那个图:...转载 2016-04-15 11:18:58 · 315 阅读 · 0 评论 -
Spring实践:面向切面编程(AOP)
原文链接:http://blog.youkuaiyun.com/zjf280441589/article/details/50816802 AOP引介 AOP(Aspect Oriented Programing)面向切面编程采用横向抽取机制,以取代传统的纵向继承体系的重复性代码(如性能监控/事务管理/安全检查/缓存实现等).横向抽取代码复用: 基于代理技术,在不修改原来代码的前提下,对原...转载 2016-04-15 20:37:56 · 387 阅读 · 1 评论 -
设计模式六大原则详解
原文链接:http://www.cnblogs.com/lhws/archive/2012/03/10/2389189.html 一、单一职责原则(Single Responsibility Principle) 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变...转载 2016-04-18 02:37:11 · 2040 阅读 · 0 评论 -
HashMap实现原理及源码分析
哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JDK7的HashMap源码进行分析。目录 一、什么是哈希表 二、...转载 2018-12-28 18:29:02 · 142 阅读 · 0 评论 -
Hash算法解决冲突的方法
Hash算法解决冲突的方法一般有以下几种常用的解决方法 1, 开放定址法: 所谓的开放定址法就是一旦发生了冲突,就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将记录存入 公式为:fi(key) = (f(key)+di) MOD m (di=1,2,3,……,m-1) ※ 用开放定址法解决冲突的做法是:当冲突发生时,使用某种探测技术在散列表中形成一个探测序列。沿此序...转载 2018-12-28 18:31:25 · 232 阅读 · 0 评论 -
Java中什么样的对象才能作为gc root,gc roots有哪些
GC管理的主要区域是Java堆,一般情况下只针对堆进行垃圾回收。方法区、栈和本地方法区不被GC所管理,因而选择这些区域内的对象作为GC roots,被GC roots引用的对象不被GC回收。详细:GC Root常说的GC(Garbage Collector) roots,特指的是垃圾收集器(Garbage Collector)的对象,GC会收集那些不是GC roots且没有被GC ro...转载 2018-12-28 18:48:40 · 5063 阅读 · 3 评论 -
生成32位字符串ID工具类UUIDUtil
public class UUIDUtils { public static String getUUID() { String s = UUID.randomUUID().toString(); return s.substring(0, 8) + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23) + s....原创 2018-12-29 10:24:31 · 1635 阅读 · 0 评论 -
读配置文件取配置参数工具类PropertiesUtil
public class PropertiesUtil { private static Properties properties = new Properties(); static { InputStream in = PropertiesUtil.class.getResourceAsStream("/config.properties"); try { prope...原创 2018-12-29 10:26:43 · 494 阅读 · 0 评论 -
压缩图片工具类ZipImageUtil
四个常量配置参数可以按需求做相应调整。public class ZipImageUtil { private final static int FILE_SIZE_LIMIT = 100 * 1024; private final static int STREAM_SIZE_LIMIT = 100 * 1024; private final static do...原创 2018-12-29 10:32:41 · 418 阅读 · 0 评论 -
雪花算法生成长整型ID工具类SnowflakeUtil
JS语言不支持15位以上的长整型,该工具使用与否要有取舍。public class SnowflakeUtil { /** 开始时间截 (2015-01-01) */ private final static long TWEPOCH = 1420041600000L; /** 工作机器ID(0~31) */ private final static long WORKER_I...原创 2018-12-29 10:42:52 · 4865 阅读 · 1 评论 -
Java NIO 系列教程
Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。Java NIO: Channels and Buffers(通道和缓冲区)标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲...转载 2019-01-14 14:13:10 · 258 阅读 · 0 评论