Java
文章平均质量分 76
Believe勤能补拙
Javaer,个人github:https://github.com/SayNight
展开
-
Memcache学习总结
基于内置内存Key-Value形式存储数据(字符串、对象)集群服务器是通过数组+链表方式存储K-V数据基于哈希路由,集群之间不相互通信两阶段哈希:1、Client端通过Hash(一致性hash)算法+Key计算存储节点;2、服务端通过内部Hash(取模)算法+key计算存储位置集群重启之后,该集群对应数据全部丢失。原创 2023-01-17 13:03:01 · 553 阅读 · 0 评论 -
Java线程(三):Callable、Future、RunnableFuture、FutureTask
Callable public interface Callable返回结果并且可能抛出异常的任务。Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是 Runnable 不会返回结果,并且无法抛出经过检查的异常。Executors 类包含一些从其他普通形式转换成 Callable 类的实用方法。接口中定义的唯一一个方法。 /**原创 2017-11-02 17:43:58 · 491 阅读 · 0 评论 -
Java常见集合框架(二十二): Map之Dictionary、Hashtable
Dictionary、Hashtable及与HashMap区别原创 2017-10-25 17:23:55 · 2154 阅读 · 0 评论 -
Java常见集合框架(十四):Queue之Queue、BlockingQueue、AbstractQueue
Queue结构图Queue public interface Queue extends Collection在处理元素前用于保存元素的 collection。除了基本的 Collection 操作外,队列还提供其他的插入、提取和检查操作。每个方法都存在两种形式:一种抛出异常(操作失败时),另一种返回一个特殊值(null 或 false,具体取决于操作)。定义的接口如下: /**原创 2017-10-16 16:36:42 · 938 阅读 · 0 评论 -
Java常见集合框架(九):Set之Set、AbstractSet
Set结构图Set public abstract interface Set extends Collection不包含重复元素的 collection重写了equals和hashCode方法无序声明方法如下: '''返回 set 中的元素数(其容量)。''' public abstract int size(); /*如果 set 不包含元素,则返回 true。*原创 2017-10-13 11:25:06 · 2002 阅读 · 0 评论 -
Java常见集合框架(十三):Set总结
Set、TreeSet、HashSet、LinkedHashSet、CopyOnWriteArraySet、ConcurrentSkipListSet、EnumSet。原创 2017-10-13 18:07:26 · 350 阅读 · 0 评论 -
Java线程(二):Thread、Runnable、ThreadLocal
Thread public class Thread implements Runnable线程 是程序中的执行线程。Java 虚拟机允许应用程序并发地运行多个执行线程。每个线程都有一个优先级,高优先级线程的执行优先于低优先级线程。创建新执行线程有两种方法。一种方法是将类声明为 Thread 的子类。该子类应重写 Thread 类的 run 方法。new Thread().start()。另原创 2017-11-01 19:06:24 · 1479 阅读 · 0 评论 -
Java线程(一):线程结构图及状态
线程结构图、线程状态及状态转换图原创 2017-11-01 17:21:16 · 5904 阅读 · 1 评论 -
Java常见集合框架(二十一): Map之ConcurrentMap、ConcurrentHashMap
ConcurrentMap、ConcurrentHashMap原创 2017-10-24 18:12:07 · 653 阅读 · 0 评论 -
Java常见集合框架(二十): Map之LinkedHashMap、SortedMap、NavigableMap、TreeMap
LinkedHashMap、SortedMap、NavigableMap、TreeMap原创 2017-10-24 16:03:48 · 1205 阅读 · 0 评论 -
Java常见Lock(一): lock之Condition、ConditionObject、LockSupport
lock结构图图git地址 Condition public interface Condition Condition 将 Object 监视器方法(wait、notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对象提供多个等待 set(wait-set)。Lock 替代了 synchronized 方法和语句的使用,Cond原创 2017-10-26 15:24:24 · 744 阅读 · 0 评论 -
Java常见Lock(二): lock之ReentrantLock
ReentrantLock原创 2017-10-26 16:50:10 · 313 阅读 · 0 评论 -
Java常见Lock(三): lock之ReadWriteLock、ReentrantReadWriteLock
ReadWriteLock、ReadWriteLockReadWriteLock原创 2017-10-26 18:26:26 · 412 阅读 · 0 评论 -
Java线程(四):Delayed、ScheduledFuture、RunnableScheduledFuture
Delayed、ScheduledFuture、RunnableScheduledFuture原创 2017-11-06 11:16:01 · 11088 阅读 · 0 评论 -
Java常见集合框架(三):List之List、AbstractList 、ArrayList
List结构图1.List public abstract interface List extends Collection 有序、允许有重复元素、值可为NULL。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。 List 接口在 iterator、add、remove、equals 和 hashCode 方法的协定上加了一些其他约定,原创 2017-09-25 18:58:47 · 1144 阅读 · 0 评论 -
Java常见集合框架(二):Iterable、Collection(List、Set、Queue)、AbstractCollection
Iterable<T> 是Collection(List、Set、Queue)的顶级接口,api释义:实现这个接口允许对象成为 "foreach" 语句的目标。 可用于迭代。之所以List、Set没有直接实现Iterator接口,是由于Iterator的迭代(next及hashNext方法)是基于迭代器的当前位置。若直接实现,则当集合类被当做方法参数传递时,迭代位置...原创 2017-09-25 14:35:43 · 770 阅读 · 0 评论 -
Java虚拟机(二):GC垃圾收集器与内存分配策略
2.1概述 垃圾收集(Garbage Collection)简称GC。1960年诞生于MIT的Lisp语言,GC的历史比Java久远。 程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作;方法或线程结束时内存自动回收。Java堆和方法区内存的分配和回收都是动态的,故垃圾收集主要针...原创 2017-05-19 16:18:17 · 614 阅读 · 0 评论 -
Java线程(十):ThreadPoolExecutor+BlockingQueue线程池示例
源码下载首先定义扩展线程池ExtThreadPoolExecutor ExtThreadPoolExecutor作用是对线程池的增强,如在初始化线程池时、在线程执行前、执行后等处可添加自定义逻辑。import java.util.concurrent.BlockingQueue;import java.util.concurrent.RejectedExecutionHandler;impo原创 2017-11-23 10:45:16 · 826 阅读 · 0 评论 -
Java线程(九):ScheduledExecutorService、ScheduledThreadPoolExecutor
ScheduledExecutorService public interface ScheduledExecutorService extends ExecutorService一个 ExecutorService,可安排在给定的延迟后运行或定期执行的命令。schedule 方法使用各种延迟创建任务,并返回一个可用于取消或检查执行的任务对象。ScheduledThreadPoolExecutor原创 2017-11-06 18:28:28 · 2496 阅读 · 0 评论 -
Java线程(八):ThreadPoolExecutor、RejectedExecutionHandler
ThreadPoolExecutor public class ThreadPoolExecutor extends AbstractExecutorService线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增强的性能,并且还可以提供绑定和管理资源(包括执行任务集时使用的线程)的方法。RejectedExecutionHandler原创 2017-11-06 17:24:58 · 674 阅读 · 0 评论 -
Java线程(五):Executors、ThreadFactory
Executors public class Executors 一个功能非常强大的辅助类。此包中所定义的 Executor、ExecutorService、ScheduledExecutorService、ThreadFactory 和 Callable 类的工厂和实用方法。此类支持以下各种方法:创建并返回设置有常用配置字符串的 ExecutorService 的方法。创建并返回设置有原创 2017-11-02 18:23:42 · 6670 阅读 · 0 评论 -
Java线程(七):AbstractExecutorService、CompletionService、ExecutorCompletionService
AbstractExecutorService、CompletionService、ExecutorCompletionService原创 2017-11-06 16:00:04 · 530 阅读 · 0 评论 -
Java线程(六):Executor、ExecutorService
Executor public interface Executor执行已提交的 Runnable 任务的对象。此接口提供一种将任务提交与每个任务将如何运行的机制(包括线程使用的细节、调度等)分离开来的方法。内存一致性效果:线程中将 Runnable 对象提交到 Executor 之前的操作 happen-before 其执行开始(可能在另一个线程中)。通俗地理解是线程的提交与如何执行分离原创 2017-11-06 14:53:47 · 385 阅读 · 0 评论 -
Java常见集合框架(十二):Set之ConcurrentSkipListSet、EnumSet
ConcurrentSkipListSet、EnumSet原创 2017-10-13 16:36:04 · 927 阅读 · 0 评论 -
Java常见集合框架(十一):Set之LinkedHashSet、CopyOnWriteArraySet
LinkedHashSet、CopyOnWriteArraySet原创 2017-10-13 16:04:09 · 595 阅读 · 0 评论 -
Java常见集合框架(十):Set之TreeSet、HashSet
TreeSet、HashSet原创 2017-10-13 11:46:53 · 375 阅读 · 0 评论 -
Java常见集合框架(四):List之AbstractSequentialList、LinkedList
1.AbstractSequentialList 提供了 List 接口的骨干实现,从而最大限度地减少了实现受“连续访问”数据存储(如链接列表)支持的此接口所需的工作。 支持数据的按次序顺序访问,对于随机访问数据(如数组),应该优先使用 AbstractList,而不是先使用此类。 主要是为支持LinkedList的链式访问。 提供一友好的构造方法及在 AbstractList原创 2017-09-26 11:47:47 · 415 阅读 · 0 评论 -
Java常见集合框架
Java常见集合框架:Collection<E>(List<E>、Set<E>、Queue<E>均继承它) 和 Map<K, V>介绍原创 2017-09-25 11:24:33 · 765 阅读 · 0 评论 -
java中fail-fast 和 fail-safe的区别
并发修改。1.什么是并发修改? 当一个或多个线程正在遍历一个集合Collection,此时另一个线程修改了这个集合的内容(添加,删除或者修改)。这就是并发修改2.什么是 fail-fast 机制? fail-fast机制在遍历一个集合时,当集合结构被修改,会抛出Concurrent Modification Exception。 fail-fa转载 2017-09-25 15:56:59 · 238 阅读 · 0 评论 -
Java虚拟机(五):虚拟机类加载机制
5.1 概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。5.2 类加载的时机 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。其中验证、准备、解析3个部分统称为连接,原创 2017-05-31 17:43:49 · 354 阅读 · 0 评论 -
Java代理机制及动态代理和CGLIB代理详解
Java代理机制及动态代理和CGLIB代理详解原创 2017-06-11 15:28:25 · 546 阅读 · 0 评论 -
Class.forName和ClassLoader的区别及Native关键字介绍
一 共同点 都可对类进行加载,返回Class对象(不是实例对象,Class对象是将.class文件加载到内存中,实例对象就是通常我们所说的new Object())二 区别 Class中有两个重要方法:forName(StringclassName):返回与带有给定字符串名的类或接口相关联的Class对象。forName(Stringn...原创 2017-05-18 11:49:33 · 1202 阅读 · 0 评论 -
Java虚拟机(四):类文件结构
Class类文件的结构、字节码指令简介、公有设计和私有现实原创 2017-05-26 10:59:27 · 835 阅读 · 0 评论 -
Java虚拟机(三):虚拟机性能监控与故障处理工具
虚拟机性能监控与故障处理工具:jps、jsinfo、jstat、jmap、jhat、jstack原创 2017-05-23 11:46:35 · 616 阅读 · 0 评论 -
java设计模式之单例模式
java设计模式之单例模式原创 2016-03-28 16:31:05 · 372 阅读 · 0 评论 -
Java泛型E、T、K、V、N、?等含义
Java泛型E、T、K、V、N、?等含义转载 2016-11-21 15:46:00 · 2427 阅读 · 0 评论 -
Java常见集合框架(五):List之CopyOnWriteArrayList
1.CopyOnWrite Copy-On-Write简称COW,是一种用于程序设计中的优化策略。CopyOnWrite容器即写时复制的容器。通俗的理解是当往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是可以对CopyOnWrite容器进行并发的读,而不需要加锁,原创 2017-09-26 18:36:23 · 740 阅读 · 0 评论 -
Java常见集合框架(六):List之Vector
1.Vector public class Vector extends AbstractList implements List, java.io.Serializable 实现可增长的对象数组 可以使用整数索引进行访问, 可根据需要增大或缩小 方法上加synchronized保证同步的,fail-fast。 成员变量 /** * 存储向量组件的数原创 2017-09-28 14:45:14 · 385 阅读 · 0 评论 -
基于jxls的Lreports
1.项目简介 基于jxls的xls及cvs文件生成下载(目前暂适用于浏览器下载),在excel或cvs模板中使用特殊表达式来定义输出格式和数据布局。 github地址:https://github.com/SayNight/Lreports 为解决日常中通过浏览器下载报表文件,从而在jxls基础上开发适用大部分下载场景。 目前暂提供下载接口原创 2017-09-20 10:40:06 · 646 阅读 · 0 评论 -
Java常见Lock(五): lock之CyclicBarrier
CyclicBarrier public class CyclicBarrier又名回环栅栏或循环栅栏。可重用。成员变量 /** * 内部类 */ private static class Generation { boolean broken = false; } /** 可重复入锁 */ private fina原创 2017-10-30 11:45:56 · 579 阅读 · 0 评论