PHP7源码之array_unique函数分析

PHP7源码之array_unique函数分析

 {            if (lastkept->i > cmpdata->i) {                p = &lastkept->b;                lastkept = cmpdata;            } else {                p = &cmpdat...
你真的知道并发问题产生的源头吗?

你真的知道并发问题产生的源头吗?

通常使用抢占的方式来获取操作系统的时间片。Java的并发编程中都是基于多线程,线程的切换时机通常在一条cpu指令执行完毕之后,而Java作为一门高级编程语言,通常一条语句可能由多个cpu指令来完成。例如:count+=1,至少需要三条指令。指令1:首先,需要把变量count从该内存加载到cpu的寄存器指令2:之后,在寄存器中执行+1操作指令3:最后,将结果写...
线程封闭之栈封闭和ThreadLocal

线程封闭之栈封闭和ThreadLocal

的方式来实现,在上面的图中,我用虚线来表示弱引用,弱引用的意思是在JVM进行垃圾回收的时候这个引用会被回收(无论内存足够与否);试想一下,如果使用强引用并且栈中的引用消失了,那么在线程结束之前这个threadLocal对象不会被回收且无法访问,也就是造成内存泄漏。 3、Java四种引用的简要概述  上面在ThreadLocal提到了弱引用,这里顺便简单的说下...
mvc请求管道(一)

mvc请求管道(一)

求到达IIS     同样先看流程图,Sys服务监听到有请求到达IIS,IIS会把这个请求转发给ISAPI,ISAPI即InternetServerApplicationProgramInterface(互联网应用服务接口),是微软提供的一套面向Internet服务的API接口,它根据后缀判断需要把该请求转发...
【Java基础】谈谈集合.List

【Java基础】谈谈集合.List

x);EoldValue=elementData(index);elementData[index]=element;returnoldValue;}1.3remove方法常用的删除方法有如下,这些方法的功能根据方法名很容易就看懂,这边就不贴源代码了。publicEremove(intindex);publicbooleanremove(Objecto);p...
Java垃圾回收机制

Java垃圾回收机制

llelOldGC来使用。CMS收集器CMS收集器是一个并发收集器,CMS即ConcurrentMarkSwap,主要用于老年代,使用标记-清除算法,可以通过设置参数-XX:+UseConcMarkSweepGC来使用。CMS收集器可以并行的执行用户程序和垃圾回收,这样就可以减少回收的停顿时间。CMS收集器设计的主要目的就是为了减少回收停顿时间,目前很多的J...
JVM垃圾回收(上)

JVM垃圾回收(上)

。一旦某个对象的引用计数器为0,则说明该对象已经死亡,便可以被回收了。其具体实现为:如果有一个引用,被赋值为某一对象,那么将该对象的引用计数器+1。如果一个指向某一对象的引用,被赋值为其他值,那么将该对象的引用计数器-1。也就是说,我们需要截获所有的引用更新操作,并且相应地增减目标对象的引用计数器。看似很简单的实现,其实里面有不少缺陷:需要额外的空间来存储计...
Java 8 Optional:优雅地避免 NPE

Java 8 Optional:优雅地避免 NPE

设计,应该让代码中尽量少出现null关键字,因此Java8引入Optional类来避免NPE问题,同时也提升了代码的美观度。但并不是对null关键字的一种替代,而是对于null判定提供了一种更加优雅的实现,从而避免NPE问题。Optional类为了更好的解决和避免常见的NPE问题,Java8中引入了一个新的类java.util.Optional,Option...
×