java
DoubleWeiWei001
这个作者很懒,什么都没留下…
展开
-
slf4j 的介绍,使用与分析
概述slf4j的全称是Simple Loging Facade For Java,它仅仅是一个为Java程序提供日志输出的统一接口,并不是一个具体的日志实现方案,就比如JDBC一样,只是一种规则而已。所以单独的slf4j是不能工作的,必须搭配其他具体的日志实现方案,比如apache的org.apache.log4j.Logger,jdk自带util.logging.Logger等等。slf原创 2017-09-25 13:21:42 · 1796 阅读 · 0 评论 -
简单工厂模式,工厂模式和抽象工厂的区别
转载自:http://ichennan.com/2016/08/09/DesignPattern.html简单工厂模式简单工厂模式不是23种里的一种,简而言之,就是有一个专门生产某个产品的类。比如下图中的鼠标工厂,专业生产鼠标,给参数0,生产戴尔鼠标,给参数1,生产惠普鼠标。工厂模式工厂模式也就是鼠标工厂是个父类,有生产鼠标这个接口。戴尔鼠标工厂,惠普鼠标工厂继承它,可以分别生产戴尔鼠标,惠普鼠标...转载 2018-03-07 16:50:06 · 2589 阅读 · 0 评论 -
TCP建立连接三次握手和释放连接四次握手
TCP的报文结构如下下所示:序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。 确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望...原创 2018-03-15 10:40:35 · 359 阅读 · 0 评论 -
java的代理机制
此博客参考整理于:java动态代理java静态代理我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC。对于Spring的核心AOP来说,AOP的原理就是java的动态代理机制来实现,所以本篇随笔就是对java代理做一个介绍1、代理(Dynamic Proxy) 代理分为静态代理和动态代理,静态代理是在编译时就将接口、实现类、代理类一股脑儿全部手动完成,但如果我们需要很...原创 2018-03-23 17:58:16 · 3568 阅读 · 0 评论 -
StringBuffer详细讲解
转载地址:https://blog.csdn.net/u012877472/article/details/50808554同时这里有一篇比较好的从底层讲解StringBuffer的文章:http://www.cnblogs.com/dolphin0520/p/3778589.html1、简介StringBuffer,由名字可以看出,是一个String的缓冲区,也就是说一个类似于String的字符...转载 2018-03-25 20:12:10 · 432 阅读 · 0 评论 -
Java 类加载机制
前言我们知道我们写的程序经过编译后成为了.class文件,.class文件中描述了类的各种信息,最终都需要加载到虚拟机之后才能运行和使用。而虚拟机如何加载这些.class文件?.class文件的信息进入到虚拟机后会发生什么变化?这些都是本文要讲的内容,文章将会讲解加载类加载的每个阶段Java虚拟机需要做什么事(加粗标红)。类使用的7个阶段类从被加载到虚拟机内存中开始,到卸载出内存,它的整个生命周期...原创 2018-03-27 19:22:23 · 186 阅读 · 0 评论 -
CountDownLatch使用场景以及与join函数的区别
参考:https://blog.csdn.net/zhutulang/article/details/48504487 https://www.2cto.com/kf/201710/688656.html概念:CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己的任务后,计数器的值就会减1。当计数器值到达0时,它表示...原创 2018-04-10 16:12:42 · 211 阅读 · 0 评论 -
HTTP与HTTPS的区别
转载地址:https://www.cnblogs.com/wqhwe/p/5407468.html超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。 为了解决HT...转载 2018-04-17 22:56:31 · 288 阅读 · 0 评论 -
java内存泄露和对象逃逸(整理自网络)
参考网址https://my.oschina.net/hosee/blog/638573http://www.cnblogs.com/binyue/p/3383555.htmlJava内存泄露的理解与解决依赖于引用判断的内存管理机制Java中对内存对象的访问,使用的是引用的方式。在Java代码中我们维护一个内存对象的引用变量,通过这个引用变量的值,我们可以访问到对应的内存地址中的内存对象空间。在J...原创 2018-04-21 20:51:01 · 1557 阅读 · 0 评论 -
Netty高性能之Reactor线程模型
Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件也基于Net...转载 2018-05-19 16:08:51 · 232 阅读 · 0 评论 -
ReentrantLock公平所与非公平锁,condition等待
ReentrantLock实现原理Java多线程——Condition条件java并发编程之ConditionReentrantLock加锁(lock())、释放锁(unlock())的实现转载 2018-08-26 10:08:59 · 312 阅读 · 0 评论 -
CountDownLatch、CyclicBarrier、Semaphore共同之处与区别以及各自使用场景
https://blog.csdn.net/jackyechina/article/details/52931453转载 2018-08-26 22:33:20 · 296 阅读 · 0 评论 -
java内存模型
https://blog.csdn.net/javazejian/article/details/72772461转载 2018-08-22 23:50:14 · 199 阅读 · 0 评论 -
彻底理解Java的Future模式
转载自:https://www.cnblogs.com/cz123/p/7693064.html先上一个场景:假如你突然想做饭,但是没有厨具,也没有食材。网上购买厨具比较方便,食材去超市买更放心。实现分析:在快递员送厨具的期间,我们肯定不会闲着,可以去超市买食材。所以,在主线程里面另起一个子线程去网购厨具。但是,子线程执行的结果是要返回厨具的,而run方法是没有返回值的。所以,这才是难...转载 2018-08-27 10:33:06 · 631 阅读 · 0 评论 -
Java内存模型
原文地址:原文地址 转载地址:转载地址Java内存模型规范了Java虚拟机与计算机内存是如何协同工作的。Java虚拟机是一个完整的计算机的一个模型,因此这个模型自然也包含一个内存模型——又称为Java内存模型。如果你想设计表现良好的并发程序,理解Java内存模型是非常重要的。Java内存模型规定了如何和何时可以看到由其他线程修改过后的共享变量的值,以及在必须时如何同步转载 2018-01-22 16:13:16 · 249 阅读 · 0 评论 -
从一组数据中找出和为给定值的数的两个数的下标(找出一组或者所有组合)twoSums
package LeetCode;import java.util.ArrayList;import java.util.HashMap;class node{ int index1; int index2;}public class twoSums { ArrayList nodeArr = new ArrayList(); /** * Given an array o原创 2018-01-03 17:43:53 · 702 阅读 · 0 评论 -
java自带注解了解,自定义注解的实现,自定义注解的使用
看到别的博主写的几篇接绍注解相关的东西,觉得挺好的,mark一下概述及JDK自带注解:http://blog.csdn.net/zen99t/article/details/49506919自定义注解:http://blog.csdn.net/zen99t/article/details/49508447解析注解:http://blog.csdn.net/zen99t/ar转载 2017-09-21 10:21:25 · 316 阅读 · 0 评论 -
java反射机制
对class类的认识与了解package javaReflect;public class javaClass { public static void main(String[] args) throws InstantiationException, IllegalAccessException { /** * 1.首先我们对于java的每一个class应该有一个认识原创 2017-09-21 14:43:25 · 353 阅读 · 0 评论 -
利用java反射机制绕开java的泛型
在java中,当代码进行编译时会进行去泛型化,所以如果我们可以绕过泛型,在编译和运行时将对某个泛型化的对象进行修改就不会报错。下面举个例子说明,如何利用java的反射机制来绕过java的泛型化。package javaReflect;import java.lang.reflect.Method;import java.util.ArrayList;public class gene原创 2017-09-21 17:11:06 · 510 阅读 · 0 评论 -
绝对深度解析volatile关键字的实现原理(大部分内容整理于其他博客)
我们知道volatile关键字的作用是保证变量在多线程之间的可见性,它是java.util.concurrent包的核心,没有volatile就没有这么多的并发类给我们使用。本文详细解读一下volatile关键字如何保证变量在多线程之间的可见性,在此之前,有必要讲解一下CPU缓存的相关知识,掌握这部分知识一定会让我们更好地理解volatile的原理,从而更好、更正确地地使用volatile关键字。原创 2017-10-31 17:28:55 · 6884 阅读 · 2 评论 -
volatile关键字解析(详细)
volatile关键字解析当前为作者原网址,该作者对该关键字从浅到深,对其原理做了分析,很容易懂 http://www.cnblogs.com/dolphin0520/p/3920373.htmlhttp://www.cnblogs.com/dolphin0520/p/3920373.html如下为一些参考网址:《Java 中的双重检查(Double-Check)》http:...转载 2017-11-02 11:58:17 · 163 阅读 · 0 评论 -
理解Java对象序列化
尊重原创,附上原地址:http://www.blogjava.net/jiangshachina/archive/2012/02/13/369898.html理解Java对象序列化关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结。此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制。在撰写本文时,既参考了Thin转载 2017-12-10 16:06:08 · 177 阅读 · 0 评论 -
java Collecttion的fail-fast的产生原因和处理方式 以及java中fail-fast 和 fail-safe的区别
原文链接:http://blog.csdn.net/chenssy/article/details/38151189在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList:注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentM转载 2017-12-01 15:21:49 · 595 阅读 · 0 评论 -
从浅到深了解ArrayList
根据我看到的博文,摘录了可以让我们从浅到深认识ArrayList的几篇博文,其实也算不上原创,就是进行了整理,转载的直接贴链接首先我们先了解下ArrayList的初始化,可以看这里:ArrayList初始化在了解完他的初始化以及对应的使用函数时,下面了解一下关于ArrayList扩容的问题:ArrayList底层扩容根据ArrayList的特点,分析一下他的时间复杂度等问题:原创 2017-11-30 18:32:01 · 195 阅读 · 0 评论 -
深入分析HashMap原理(存储 碰撞检测 取值 扩容 hashCode equals等)
这篇博客是在网上自己浏览时整理的几个好的帖子,关于hashMap的分析,从浅到深看完基本上可以深入掌握hashMap的工作原理下面这篇文章详细介绍了一下几个方面的东西什么时候会使用HashMap?他有什么特点?你知道HashMap的工作原理吗?你知道get和put的原理吗?equals()和hashCode()的都有什么作用?你知道hash的实现吗?为什么要这样实现?如果HashMap的大小超过了...转载 2017-11-30 11:25:11 · 650 阅读 · 0 评论 -
java enum(枚举)使用详解 + 总结
转自http://www.cnblogs.com/hemingwang0902/archive/2011/12/29/2306263.html原始的接口定义常量public interface IConstants { String MON = "Mon"; String TUE = "Tue";转载 2017-09-24 10:23:04 · 199 阅读 · 0 评论 -
equals总结以及hashSet去重原理
equals() 方法总结equals()超类 Object 中有这个 equals() 方法,该方法主要用于比较两个对象是否相等。该方法的源码如下: public boolean equals(Object obj) { return (this == obj); }所有的对象都拥有标识(内存地址)和状态(数据),同时“==”转载 2018-01-02 17:42:22 · 760 阅读 · 0 评论 -
Java 9 新特性概述
转载地址:https://www.ibm.com/developerworks/cn/java/the-new-features-of-Java-9/index.htmlJava 9 正式发布于 2017 年 9 月 21 日 。作为 Java8 之后 3 年半才发布的新版本,Java 9 带 来了很多重大的变化。其中最重要的改动是 Java 平台模块系统的引入。除此之外,还有转载 2018-01-03 11:13:57 · 396 阅读 · 0 评论 -
为什么Iterator的remove方法可保证从源集合中安全地删除对象,而在迭代期间不能直接删除集合内元素
在对集合进行操作时,我们会发现,如果我们用迭代器迭代,但是在迭代器过程中如果使用集合对象去删除,添加,清空集合存储的对象时,那么就程序就会报出异常,例如如下代码:public class IteratorTest { public static void main(String[] args) { ArrayListlist = new ArrayList(Arrays.asList原创 2017-12-27 23:28:21 · 4605 阅读 · 0 评论 -
Java 内存区域和GC机制
转载自: https://baijiahao.baidu.com/s?id=1604308216748480477&wfr=spider&for=pc目录Java垃圾回收概况JavaGC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问...转载 2018-09-05 22:33:21 · 413 阅读 · 0 评论
分享