Java8线程池ThreadPoolExecutor底层原理及其源码解析 编程技术

Java8线程池ThreadPoolExecutor底层原理及其源码解析

小侃一下 日常开发中, 或许不会直接new线程或线程池, 但这些线程相关的基础或思想是非常重要的, 参考 林迪效应 ; 就算没有直接用到, 可能间接也用到了类似的思想或原理, 例如tomcat, jetty, 数据库连接池, MQ; 本文不会对线程的基础知识进行介绍, 所以最好已"进食"关于线程的基础知识, 再"食用"本文更佳; 由于在...
阅读全文
golang+jenkins自动化部署方案 编程技术

golang+jenkins自动化部署方案

先说一下实现思路,在gitee和Jenkins使用webhook来触发构建,构建策略中做的事情是ssh连接远程服务器,然后执行部署命令。 Jenkins环境搭建 Jenkins安装 Jenkins的安装有两种方式,一种是下载war包放在tomcat中跑,一种是docker中直接拉取镜像运行,这里只讲解第二种方式。 拉取镜像 docker pull jenkins/jen...
阅读全文
java安全编码指南之:Number操作 编程技术

java安全编码指南之:Number操作

java中可以被称为Number的有byte,short,int,long,float,double和char,我们在使用这些Nubmer的过程中,需要注意些什么内容呢?一起来看看吧。 Number的范围 每种Number类型都有它的范围,我们看下java中Number类型的范围: 考虑到我们最常用的int操作,虽然int的范围够大,但是如果我们在做一些int操作的时候还是...
阅读全文
【Java】HashMap源码分析 编程技术

【Java】HashMap源码分析

HashMap虽然常用,但是内部隐藏了很多实现细节,有太多值得推敲的东西,这里尽量去收录HashMap所有涉及的相关知识点。 数据结构-散列表 先从数据结构说起,HashMap对照的是数据结构中的 散列表 结构。在数据结构中有一种结构叫 字典 。有的书上定义:“以集合为基础的一些元素的集合,每个元素都有一个对应的key。支持元素的存在判断,插入和删除三种运算的的抽象数据类型就叫做字典“。...
阅读全文
难难难难难!对象的创建七连问 Java

难难难难难!对象的创建七连问

难难难难难!对象的创建七连问 关于 Object o = new Object() 请解释一下对象的创建过程?(半初始化) 加问 DCL 与 volatile 问题?(指令重排) 对象在内存中的存储布局?(对象与数组的存储不同) 对象头具体包括什么?(markword classpointer)...
阅读全文
HashMap源码实现分析 编程技术

HashMap源码实现分析

HashMap源码实现分析 一、前言 HashMap 顾名思义,就是用hash表的原理实现的Map接口容器对象,那什么又是hash表呢。 我们对数组都很熟悉,数组是一个占用连续内存的数据结构,学过C的朋友对这一点影响肯定更为深刻。既然是一段连续的内存,数组的特点就显而易见了,一旦你知道要查第几个数据,时间复杂度就是O(1),但是对于插入操作就很困难;还有一种数据结构你也一定很熟悉,那就是链表...
阅读全文
JVM系列之:String,数组和集合类的内存占用大小 编程技术

JVM系列之:String,数组和集合类的内存占用大小

之前的文章中,我们使用JOL工具简单的分析过String,数组和集合类的内存占用情况,这里再做一次更详细的分析和介绍,希望大家后面再遇到OOM问题的时候不再抱头痛哭,而是可以有章可循,开始吧。 数组 先看下JOL的代码和输出: //byte array log.info("{}",ClassLayout.parseInstance("www.flydean...
阅读全文
Java 并发编程之 ConcurrentHashMap 源码分析 编程技术

Java 并发编程之 ConcurrentHashMap 源码分析

走好选择的路,别选择好走的路,你才能拥有真正的自己。 我们知道哈希表是一种非常高效的数据结构,设计优良的哈希函数可以使其上的增删改查操作达到O(1)级别。Java为我们提供了一个现成的哈希结构,那就是HashMap类,在前面的文章中我曾经介绍过HashMap类,知道它的所有方法都未进行同步,因此在多线程环境中是不安全的。为此,Java为我们提供了另外一个HashTable类,它对于多线程同步的...
阅读全文
Loading...