Java
「已注销」
这个作者很懒,什么都没留下…
展开
-
Java程序员必备基础结构图
作者:捡田螺的小男孩来源:捡田螺的小男孩前言最近看了深入理解Java虚拟机第三版,整理了一些基础结构图,算是比较全的了,做一下笔记,大家一起学习。1.Java虚拟机运行时数据区图JVM内存结构是Java程序员必须掌握的基础。程序计数器程序计数器,可以看作当前线程所执行的字节码的行号指示器它是线程私有的。Java虚拟机栈线程私有的,生命周期与线程相同。每个方法被执行的时候都会创建一个"栈帧",用于存储局部变量表(包括参数)、操作数栈、动态链接、方法出口等信息。局部变量表存放.原创 2020-05-11 13:40:49 · 700 阅读 · 0 评论 -
redis 底层数据结构深入理解
说明说到Redis的数据结构,我们大概会很快想到Redis的5种常见数据结构:字符串(String)、列表(List)、散列(Hash)、集合(Set)、有序集合(Sorted Set),以及他们的特点和运用场景。不过它们是Redis对外暴露的数据结构,用于API的操作,而组成它们的底层基础数据结构又是什么呢简单动态字符串(SDS) 链表 字典 跳跃表 整数集合 压缩列表Red...转载 2019-09-12 19:31:48 · 218 阅读 · 0 评论 -
Java 二十三种设计模式
一、单例模式定义Ensure a class has only one instance, and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。)Singleton类称为单例类,通过使用private的构造函数确保了在一个应用中只产生一个实例,并且是自行实例化的(在Singleton中自己使...原创 2019-09-12 18:16:00 · 355 阅读 · 0 评论 -
知识集合之Lock
synchronized的缺陷synchronized是java中的一个关键字,也就是说是Java语言内置的特性。那么为什么会出现Lock呢?在synchronized文章中,我们了解到如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里获取锁的线程释放锁只会有两种情况:获取锁的线程执行完了该...转载 2019-09-11 17:44:42 · 100 阅读 · 0 评论 -
Parameter Server架构
Parameter Server架构现在的机器学习系统,但凡是大一点的公司,恐怕都在用分布式了。而在分布式机器学习领域,最出名的恐怕就是少帅的PS框架了。在本博文里,PS框架特指第三代PS框架,即少帅的PS框架,PS框架在本文里有和分布式机器学习框架等同的意义。本片博客是论文笔记性质,特此声明。现在的大数据机器学习系统,通常数据在1TB到1PB之间,参数范围在109和1012左右。再这...原创 2019-09-11 17:43:39 · 231 阅读 · 0 评论 -
LinkedBlockingDeque
一、LinkedBlockingDeque简介 java6增加了两种容器类型,Deque和BlockingDeque,它们分别对Queue和BlockingQueue进行了扩展。 Deque是一个双端队列,deque(双端队列) 是 "Double Ended Queue" 的缩写。因此,双端队列是一个你可以从任意一端插入或者抽取元素的队列。实现了在队列头和队列尾的高效插入和移除。 ...原创 2019-09-11 17:39:02 · 239 阅读 · 0 评论 -
Slf4j和Log4j的区别
log4j 大家都知道,就不在多说了,重点说说slf4j;简单日记门面(simple logging Facade for Java)SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。准确的说,slf4j并不是一种具体的日志系统,而是一个用户日志系统的facade,允许用户在部署最终应用时方便的变更其日志...转载 2019-08-29 17:19:39 · 9125 阅读 · 0 评论 -
Spring Bean的生命周期(非常详细)
Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的生命周期是非常必要的。我们通常使用ApplicationContext作为Spring容器。这里,我们讲的也是 ApplicationContext中Bean的生命周期。而实际上BeanFactory也是差不多的,只不过处理器需要手动注册。转载请注明地址 http://www.c...转载 2019-08-27 11:01:52 · 162 阅读 · 0 评论 -
Java设计模式——设计原则
一、单一职责原则应该有且仅有一个原因引起类的变更。单一职责原则的好处:类的复杂性降低,实现什么职责都有清晰明确的定义;可读性提高,复杂性降低,那当然可读性提高了;可维护性提高,可读性提高,那当然更容易维护了;变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的实现类有影响,对其他的接口无影响,这对系统的扩展性、维护性都有非常大的帮助。注意: 单一...原创 2019-08-26 19:00:37 · 153 阅读 · 0 评论 -
Java8 特性详细教程
Java 8 特性官方网址https://wizardforcel.gitbooks.io/java8-tutorials/content/index.html原创 2019-08-16 12:27:36 · 167 阅读 · 0 评论 -
Java final关键字用法注意点
Java final关键字用法注意点(按照Java代码惯例,final变量就是常量,而且通常常量名要大写:)final关键字声明的static变量(属于类)必须在声明、类初始化(static{})的时候初始化,而且不能重复赋值;而非static变量(属于对象),必须在声明、对象初始化({}方法)或者构造函数里面初始化,也不可以重复赋值。(有例子)final static作为常量的时候,jv...原创 2019-08-16 12:21:29 · 648 阅读 · 0 评论 -
ConcurrentHashMap原理与源码解读
一. ConcurrentHashMap 概述HashMap 是 Java Collection Framework 的重要成员,也是Map族(如下图所示)中我们最为常用的一种。不过遗憾的是,HashMap不是线程安全的。也就是说,在多线程环境下,操作HashMap会导致各种各样的线程安全问题,比如在HashMap扩容重哈希时出现的死循环问题,脏读问题等。HashMap的这一缺点往往会造成诸多不...转载 2019-07-28 20:46:56 · 245 阅读 · 0 评论 -
LinkedHashMap原理与源码解读
HashMap和双向链表合二为一即是LinkedHashMap。所谓LinkedHashMap,其落脚点在HashMap,因此更准确地说,它是一个将所有Entry节点链入一个双向链表的HashMap。由于LinkedHashMap是HashMap的子类,所以LinkedHashMap自然会拥有HashMap的所有特性。比如,LinkedHashMap的元素存取过程基本与HashMap基本类似,只是...转载 2019-07-28 18:16:08 · 118 阅读 · 0 评论 -
HashMap原理与源码解读
Map 综述(一):彻头彻尾理解 HashMap一、HashMap概述Map 是 Key-Value 对映射的抽象接口,该映射不包括重复的键,即一个键对应一个值。HashMap 是 Java Collection Framework 的重要成员,也是Map族(如下图所示)中我们最为常用的一种。简单地说,HashMap 是基于哈希表的 Map 接口的实现,以 Key-Value 的形式存在,即存...转载 2019-07-28 17:50:58 · 92 阅读 · 0 评论