Java NIO 初探

在 JDK 1. 4 中新加入了 NIO( New Input/ Output) 类, 引入了一种基于通道和缓冲区的 I/O 方式,它可以使用 Native 函数库直接分配堆外内存,然后通过一个存储在 Java 堆的 DirectByteBuffer 对象作为这块内存的引用进行操 »

JVM与Linux内存关系

转自:JVM与Linux内存关系分析,本文重新做了编排。 JVM启动参数-XX:+DisableExplicitGC的作用是禁止代码中显式调用GC。代码如何显式调用GC呢,通过System.gc()函数调用。如果加上了这个JVM启动参数,那么代码中调用System.gc()没 »

Tomcat的连接数与线程池

转自:详解tomcat的连接数与线程池,本文重新做了编排。 1.前言 在使用tomcat时,经常会遇到连接数、线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector)。 Tomcat配置文件server.xml中:Connector的主要功能 »

Java 知识杂记

来之不易的美团面试,结果居然挂了...(附面试答案) Java 程序 CPU 分析、内存、IO、网络等分析 jvm 分析 # 反编译(查看编译器生成的字节码) javap -c -v ClassName # 查看某个进程内部线程占用情况分析 top -H -p PID # »

雪花算法(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 为解决多线程程序 »