雪花算法(snowflake)

简单描述 最高位是符号位,始终为0,不可用。 41位的时间序列,精确到毫秒级,41位的长度可以使用69年。时间位还有一个很重要的作用是可以根据时间进行排序。 10位的机器标识,10位的长度最多支持部署1024个节点。 12位的计数序列号,序列号即一系列的自增id,可以支持 »

Java泛型

泛型,只在编译阶段有效。在编译过程中,正确检验泛型结果后,会将泛型的相关信息擦出,并且在对象进入和离开方法的边界处添加类型检查和类型转换的方法。 也就是说,泛型信息不会进入到运行时阶段。 泛型类型在逻辑上看以看成是多个不同的类型,实际上都是相同的基本类型 泛型有三种使用方式 »

This application requires a Java Runtime Environment 1.7.0

系统已经安装过了 JDK,也配置了JAVA_HOME等环境变量,其他依赖 jdk 的应用程序都能正常运行。但运行jd-gui时提示需要java1.7环境,很可能程序是直接通过读取注册表判断 java 版本及相关信息引起的。 方法1 java -jar jd-gui.exe 每 »

Tomcat 配置与优化(内存、并发)

1.JVM内存配置优化 在应用服务器启动时,会将应用引用到的所有类通过ClassLoader依次全部加载到内存当中。Java的逻辑内存模型大致分为堆内存、栈内存、静态内存区,也称持久区,该区的内存不会被GC回收。堆内存用于存储类的实例、数组等引用类型数据,也就是用new生成的对象 »

ThreadLocal

ThreadLocal 不是用来解决共享变量问题的,它与多线程的并发问题没有任何关系。 1.简介   早在 JDK 1.2 的版本中就提供Java.lang.ThreadLocal,1.5 开始,ThreadLocal 开始支持泛型。ThreadLocal 为解决多线程程序 »

[笔记]Java 多线程编程核心技术

1.Java 多线程技能 1.使用 interrupt 方法中断线程,不要使用 stop、suspend等方法(不安全、且已被废弃) 当对一个线程调用了 interrupt()之后,如果该线程处于被阻塞状态(比如执行了wait、sleep或join等方法),那么会立即退出 »

碎片知识

DevOps 可参考码农翻身《什么是DevOps》 目前对 DevOps 有太多的说法和定义,不过它们都有一个共同的思想:“解决开发者与运维者之间曾经不可逾越的鸿沟,增强开发者与运维者之间的沟通和交流”。而我个人认为,DevOps 可以用一个公式表达: 文化观念的改变 + »

ActiveMQ1--安装、配置

1.下载安装 ActiveMQ ActiveMQ 官网下载地址:http://activemq.apache.org/download.html 可根据操作系统不同,下载不同版本,此处我下载的是apache-activemq-5.15.2-bin.tar.gz linux 版本 »

Java并发编程1——volatile关键字解析

阅读Java并发编程:volatile关键字解析一文后有感。 1.并发编程中的三个概念 原子性 即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 可见性 可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看 »

Spring中默认bean名称的生成策略/方式修改

在公司不同团队开发再整合时经常会遇到一个问题(公司架构基于SpringMVC),就是在使用注解的时候,两个模块里的这个资源都叫 xxxService ,这样在 Spring 启动的时候就会报错。错误如下 conflicts with existing, non-compatibl »

Spring Boot学习3——日志管理

Spring Boot在所有内部日志中使用 Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J, Log4J2 和 Logback。每种 Logger 都可以通过配置使用控制台或者文件输出日志内容。 默 »

Spring Boot学习2——自定义banner

Spring Boot程序启动的时候,会输出由字符组成的Spring符号,这个就是Spring Boot为自己设计的Banner。 其实我们可以自定义banner: 1.开启/关闭Banner Spring Boot 1.x 方法1.在Application的main方法中设置 »

Spring Boot学习1——配置文件

1.读取核心配置文件 核心配置文件是指在 resources 根目录下的 application.properties 或 application.yml 配置文件,读取这两个配置文件的方法有两种,都比较简单。 核心配置文件 application.properties 内容如下 »

断点续传

1.断点续传——下载 其实断点续传的原理很简单,就是在Http的请求上和一般的下载有所不同而已。 以七牛文件服务器为例,使用curl命令模拟分段请求,请求时把 respons 的 header dump 到一个文件里: 命令如下: cd /tmp/range/ curl - »

Springboot启动

Maven是一个常用的构建工具,但是Maven的版本和插件的配合并不是那么完美,有时候你不得不切换到一个稍微旧一些的版本,以保证所有东西正常工作。 而Gradle提供了一个Wrapper,可以很好解决版本切换的问题,当然更重要的是不需要预安装Gradle。 Maven虽然没有官方 »

Ubuntu14.04服务器篇

这个周末赶上阿里云和某东关于云服务器掐架,新用户花5元即可购买半年 ECS (配置为1核2G1M,国内三个可用区)。果断撸了一台。正好下午有时间测试一下。 1.java 环境配置 1.1 先下载jdk http://www.oracle.com/technetwork/java »