
java底层
文章平均质量分 79
三思_1234
这个作者很懒,什么都没留下…
展开
-
JVM的GC机制初探
JVM内存管理和JVM垃圾回收JVM内存组成结构JVM内存结构由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示:1)堆所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制。堆被划分为新生代和旧生代,新生代又被进一步划分为Eden和Survivor区,最后Survivor由FromSpace和ToSpace组成,结构图如下所示:新生代。新建的对象都是用新生代分配内...转载 2018-02-26 11:14:58 · 898 阅读 · 0 评论 -
HashMap与HashTable的区别
线程安全 HashMap线程不安全而HashTable线程安全 也可以通过以下代码将hashMap转化为线程安全的实现: HashMap test = new HashMap(); Map synchronizedMap = Collections.synchronizedMap(test); ...原创 2019-04-16 11:41:26 · 465 阅读 · 0 评论 -
JAX-RS规范-常用注解浅析
一、@Path 若希望一个Java类能够处理REST请求,则这个类必须至少添加一个@Path("/")的annotation; 对于方法,这个annotation是可选的,如果不添加,则继承类的定义。(1)@Path里的值可以是一个复杂的表达式,例如@Path("{id}") ,其中 {id}表达式代码了一个模板参数; 一个模板参数是一个定义在@Path里的通配符,它以 { 开...转载 2018-05-22 10:37:01 · 1378 阅读 · 0 评论 -
JDK8特性:lambda表达式简单使用介绍
新公司的代码中很多使用的 -> 这样的写法,看得我一脸懵逼,查了一下才知道这事JDK8提供的新特性,lambda表达式,在一定程度上可以简化某些代码的写法,下面我们就来一起看一下。1.对匿名内部实现的支持: 在java中使用多线程,一般会添加一个java类实现Runable接口或者继承Thread类。也还有一种比较粗暴的方式就是创建匿名内部类,如://标准写法 ...原创 2018-05-21 17:24:23 · 512 阅读 · 0 评论 -
jvm内存分区和GC机制详解:一
按照对象的生存与回收进行划分: 首先明确,这一部分都是在jvm的堆上进行操作的,jvm对所有的线程提供同一个堆供其进行操作,而为每一个线程单独分配一个栈供其使用。 所以堆内存中所有的数据是线程们都可以进行操作的,而且也因为jvm只提供了一个堆内存,才有了jvm独特的GC机制和堆内存的划分。(图来自 https://www.cnblogs.com/ygj0930/p/6522828.ht...原创 2018-04-27 18:14:45 · 1728 阅读 · 0 评论 -
HashMap源码解读
HashMap是基于以Hash算法计算Key的hash值并提供K-V类型存储的Map非同步实现类,由于是非同步实现,所以是线程不安全的,但是HashMap支持key值和value值的null的插入。先看一下HashMap提供的构造方法:/** * Constructs an empty <tt>HashMap</tt> with the specified ini...原创 2018-04-12 19:36:48 · 150 阅读 · 0 评论 -
sleep和wait的区别,以及源码解读
首先要明确,wait是Object类的方法,也就是说,所有的对象都有wait方法,而且都是Object中的wait方法因为wait方法被标为final无法被重写,源码如下:[java] view plain copypublic final native void wait(long timeout) throws InterruptedException; native关键字修饰,表示...原创 2018-04-11 17:38:22 · 2413 阅读 · 0 评论 -
ThreadPoolExecutor的源码解读
public class ThreadPoolExecutor extends AbstractExecutorService ThreadPoolExecutor 继承了ExecutorService接口的抽象实现类AbstractExecutorService,提供了四个构造方法供编码者使用:前面三个方法都是给定默认参数替代没有传递的参数然后this调用最后一个满参数的构造函数,源代码如...原创 2018-04-11 17:38:02 · 379 阅读 · 0 评论 -
简单的多生产多消费模式代码
资源描述类:/** * 资源描述类 * @author gaojh * */public class Product { List<String> product = null; public Product() { super(); this.product = new ArrayList<>(); } /** * 生产方法 *...原创 2018-04-16 16:25:25 · 314 阅读 · 0 评论 -
多线程的一些问题和回答
已知线程有五大状态 (图来自:https://blog.youkuaiyun.com/u012403290/article/details/64910926?locationNum=11&fps=1)新建状态:新建线程对象,并没有调用start()方法之前就绪状态:调用start()方法之后线程就进入就绪状态,但是并不是说只要调用start()方法线程就马上变为当前线程,在变为当前线程之前都是为就绪状...原创 2018-04-09 19:49:59 · 805 阅读 · 1 评论 -
自定义注解(@interface)学习
@interface 关键字表示本类为注解类,类结构: public @interface 自定义注解名 { 自定义注解体 } 注解体中支持的元素类型: 1.所有基本数据类型(int,float,boolean,byte,double,char,long,short) 2.String类型 3.Class类型 4.enum类型 5...原创 2018-02-28 18:19:04 · 4785 阅读 · 1 评论 -
ConcurrentHashMap与HashMap的区别,以及怎么简单自己实现ConcurrentHashMap
1.HashMap是线程不安全的,所以效率相对于HashTable较高。HashTable是线程安全的,所以相对于HashMap效率较低。2.ConcurrentHashMap可以看作是HashMap的线程安全版本,但是内部实现机制与HashTable不同。在不同版本的JDK中有不同的实现。3. HashMap的键值对允许有null,但是ConCurrentHashMap都不允许。HashTabl...原创 2018-04-08 18:57:02 · 1087 阅读 · 0 评论 -
阅读阿里巴巴Java开发手册,截取一些需要注意的地方
原文出自 阿里巴巴Java开发手册,禁止用于商业用途,违者必究【推荐】集合初始化时,指定集合初始值大小。 说明:HashMap 使用 HashMap(int initialCapacity) 初始化, 正例:initialCapacity = (需要存储的元素个数 / 负载因子) + 1。注意负载因子(即loader factor)默认为 0.75,如果暂时无法确定初始值大小,请设置为 16(即...转载 2018-02-27 16:44:28 · 298 阅读 · 0 评论 -
Java web相关 -- Cookie相关
Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。 Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。 即用户A购买了一件商品放入购物车内,当再次购买商品时服务器已经无法判断该购买行为是属于用户A的会话还是用户B的...转载 2018-02-26 17:25:49 · 185 阅读 · 0 评论 -
Java web相关 -- SESSION相关
一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建,注意如果JSP没有显示的使用 <% @page session=”false”%> 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句 HttpSession ses...转载 2018-02-26 16:53:23 · 264 阅读 · 0 评论 -
JVM什么情况下会触发Full GC(Major GC)
除直接调用System.gc外,触发Full GC执行的情况有如下四种。1. 旧生代空间不足旧生代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,当执行Full GC后空间仍然不足,则抛出如下错误:java.lang.OutOfMemoryError: Java heap space 为避免以上两种状况引起的FullGC,调优时应尽量做到让对象在Minor GC阶段被回...转载 2018-02-26 11:21:37 · 22311 阅读 · 0 评论 -
JAVA内存图解
部分转载自:https://blog.youkuaiyun.com/hu1991die/article/details/430522811. JAVA内存结构 2. JVM运行时数据区内存结构 ...转载 2019-11-12 11:54:32 · 247 阅读 · 0 评论