随笔分类 - Java
摘要:HTTP轮询模型长短轮询http协议是一种client-server模型的应用层协议,这种c-s的模式虽然大多数情况都能满足需求,但是某些场景也需要服务端能够将一些信息实时的推送到客户端,即实现服务器向客户端推消息的功能。比如:配置管理中心服务端需要将更新的配置推送到...
阅读全文
摘要:Java String 乱码问题今天在工作的时候,本地能正常work的的代码,推到预发环境却出现了部分数据乱码。一开始是怀疑提供这些数据后端服务用错了编码方式,但是本地能work直接否定了这种怀疑。问题出在预发和本地环境的系统编码方式不一致,本地系统默认是UTF-8,...
阅读全文
摘要:Java8特性:函数接口和集合操作Function简单函数Function类似于数学中的函数: y=f(x)" role="presentation">y=f(x)y=f(x) 输入时x,输出是y,函数关系是f。Java8中的函数的写法类似于lambda表达式:Fun...
阅读全文
摘要:slf4j的全称是Simple Logging Facade for Java,是各种日志系统实现(例如log4j, logback和java.util.logging)的抽象层或者外观层。因此不难看出,slf4j类似于各种日志框架的api层,这样如果我们在我们需要使...
阅读全文
摘要:一致性哈希算法一致性哈希算法(Consistent Hasing,以下简称CH)是一种特殊的哈希算法,使用CH的哈希表扩容的时候,平均只有K/n" role="presentation">K/nK/n个关键字需要被重新映射(或者移动),这里的K" role="pres...
阅读全文
摘要:Java位移运算符Java位移运算符分为两大类:左移右移x = x > ,保留最高位(符号位),其余的高位补0,带符号右移保留被右移的数的正负符号,例如-1对应的二进制位串为11111111 11111111 11111111 11111111,则带符号右移1位为:1...
阅读全文
摘要:1. Java线程与线程池 1.1 线程 相比于“繁重”的进程,线程可以算是一种轻量级的进程,大多数操作系统都是支持以线程作为调度执行单元以提高系统的并发性。毫不例外,Java也支持多线程。 多个线程交替甚至并行的执行,特别在多处理器时代,可以极大的提高资源的利用率。通常我们使用多线程来并发的执行多
阅读全文
摘要:HashMap工作原理 HashMap扩容 1 HashMap的扩容时机 2 HashMap的扩容过程 补充 1 容量必须是2的幂 2 rehash References 1. HashMap工作原理 HashMap作为优秀的Java集合框架中的一个重要的成员,在很多编程场景下为我们所用。HashM
阅读全文
摘要:Java ArrayListSet互相转化 ArrayListSet互转实例 1 ArrayList互转 2 ListSet互转 3 ArraySet互转 ArraysasList 和 CollectiontoArray Java Array、List、Set互相转化 1. Array、List、S
阅读全文
摘要:JVM内存区域二对象的创建1 对象创建过程2 堆内存分配的问题3 源码分析对象的内存布局对象的访问定位JVM内存区域(二)1. 对象的创建1.1 对象创建过程Java是一种面向对象的语言,在使用java的日常,我们常常和对象打交道。在JVM内存区域中也存在专门的堆内存...
阅读全文
摘要:JVM内存区域一 运行时内存区域分类 运行时内存区域含义 JVM内存区域(一) 1. 运行时内存区域分类 JVM运行时内存区域主要包含: 程序计数器 栈 堆 方法区 其中属于线程私有的是程序计数器、栈;属于共享的是堆,方法区。 2. 运行时内存区域含义 程序计数器 程序计数器是一块较小的内存空间,他
阅读全文
摘要:Maven简介与Maven安装 简介 1 目标 2 标准化 3 应用 下载安装 创建Maven项目 1 创建项目 2 修改POM 总结 Maven简介与Maven安装 1.简介 1.1 目标 Maven是一个自动化构建工具,常用来构建和管理java项目。 Maven的主要目的是让开发人员在最短的时间
阅读全文
摘要:Java的longdouble类型的原子性读取问题 检验 Java的long、double类型的原子性读取问题 In programming, an atomic action is one that effectively happens all at once. An atomic action
阅读全文
摘要:Java并发之Executors简介 ExecutorExecutorService和ScheduleExecutorService 几种线程池ThreadPollExecutorScheduleThreadPollExecutor和ForkJoinPool 生产者-消费者模型 Java并发之Exe
阅读全文
摘要:java中单例的几种写法 一单例模式常见的写法 二枚举类型实现单例模式 java中单例的几种写法 单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。 单例通常有很多种写法,但是性能和效果却是差距挺大。下面列举了几种常见的写法
阅读全文
摘要:Java equals compareTo()的区别 看JDK源代码尤其是集合框架源代码的时候,经常会看见两个方法: int equals(Object obj); int compareTo(Object obj); 在集合框架中大多数集合类是采用equals方法来对key进行区分的,例如Hash
阅读全文
摘要:Java getClass() VS instanceof VS == 含义 getClass() 返回调用对象object的运行时类(runtime class),一个Class实例。 a instanceof T 返回a是否是T类型的实例或者T类型的子类型的实例 a == b 判断a和b引用的是
阅读全文
摘要:HashMap与LinkedHashMap 简介 二者的区别 源码阅读 Best Practices HashMap与LinkedHashMap 1. 简介 在日常开发中我们经常会批量操作数据,因此很多高级语言除了提供数组,还给我们提供很多高级的、抽象的数据类型来让我们处理批量数据时得心应手。由于这
阅读全文
摘要:Java动态代理简述 一、代理简介 代理一词含义十分宽泛,例如金融领域的股票发行代理、营销领域的销售代理、以及计算机领域中的代理设计模式等。尽管代理一词被使用的领域如此广泛,但是代理一词的大致的抽象含义是相似的或者说是相同的。代理是一个被委托人委托其执行如下活动:参加活动、行驶权力、执行任务等。这样
阅读全文
摘要:Java虚拟机的结构(二) 5.运行时数据域(Run-Time Data Areas) JVM定义了不同的运行时数据域,这些数据域在程序被执行时被使用。一些数据域是在JVM启动的时候就创建,在JVM退出的时候被销毁。而另一些数据域是属于每一个线程的,每一个线程的数据域是随着线程创建而创建,随着线程退
阅读全文

浙公网安备 33010602011771号