
java
文章平均质量分 67
long-king
我是一名产品设计师、大数据架构师、项目管理师,擅长java、大数据、react、vue等各项技术。
展开
-
HashMap和ConcurrentHashMap 源码分析
注:本文所述为JDK1.8版本HashMap和ConcurrentHashMap源码分析1、HashMap1.1 概述HashMap底层是基于数组+链表+红黑树组成的。数据结构示例图:主要属性: static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 static final int MAXIMUM_CAPACITY = 1 << 30; static .原创 2021-01-12 15:14:45 · 213 阅读 · 1 评论 -
Java AQS详解及源码分析
一、概述 AbstractQueuedSynchronizer(AQS):抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch...。 以下是本文的目录大纲:概述 框架 源码详解 简单应用二、框架它维护了一个volatile int state(代表共享资源)和一个FIFO线程等待队列(多线程争用资源被阻塞时会进入此队列)。这里volatile是核心原创 2021-01-12 11:02:09 · 525 阅读 · 0 评论 -
java--线程池--源码解析
Java线程池类结构图Executor主要提供execute 线程执行方法:ExecutorService继承Executor,增加了submit、shutdown、await等方法,其中submit会返回Future回调对象AbstractExecutorService是实现了ExecutorService的抽象类:主要实现了submit方法和FutureTask的对象的构造FutureTask在获取或掉的时候会执行所包装的线程方法接下来我们详细解析下Threa原创 2021-01-08 17:12:19 · 217 阅读 · 0 评论 -
Java 内存模型--可见性-再理解
java内存模型java程序的内存模型中如下图:主内存:所有线程共享,可理解为堆;工作内存:线程独享,可理解为栈;线程在执行过程中需要从主内存拷贝共享变量,也需要将修改后的变量再写会到主内存中。在多线程场景下,主内存共享变量的可见性和一致性问题随之产生。实现可见性主要有两种方式:Synchronized加锁; volatile关键字。volatile如何实现共享变量的可见性呢?volatile变量再编译时,会生成lock指令,lock指令在多核处理器下会引发了两件事情。原创 2021-01-08 16:15:32 · 169 阅读 · 0 评论 -
Java编程实现六种OOM
Java编程实现六种OOM1、java.lang.OutOfMemoryError: Java heap spacejvm参数:-verbose:gc -XX:+PrintGCDetails -Xmx10M示例代码:public class OomTest { public static void main(String[] args) { heapOom(); } /** * java.lang.OutOfMemoryError:原创 2021-01-05 10:49:39 · 1198 阅读 · 0 评论 -
解决maven 打包报错:The POM for **jar** is invalid, transitive dependencies (if any) will not be available
解决maven 打包问题:The POM for org.javassist:javassist:jar:3.19.0-GA is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details这类问题属于POM文件下载出错或者jar包下载出错导致。解决方案:(1)将整个maven repository 删除,使用maven重新下载并导入此方法,原创 2020-12-25 15:07:39 · 23696 阅读 · 4 评论 -
Java入门基础及面试100题--初入门
Java入门基础及面试100题1、面向对象的特征有哪些方面?答:面向对象的特征主要有以下几个方面:- 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。- 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段(如果不能理解请阅读阎宏博士的《Java与原创 2020-12-15 17:48:46 · 2668 阅读 · 1 评论 -
软件架构入门之路---架构原则、架构视图、C4模型
一、软件架构之架构原则SOLID 原则是一套比较经典且流行的架构原则:单一职责:与 Unix 哲学所倡导的“Do one thing and do it well”不谋而合; 开闭原则:用新增(扩展)来取代修改(破坏现有封装),这与函数式的 immutable 思想也有异曲同工之妙; 里式替换:父类能够出现的地方子类一定能够出现,这样它们之间才算是具备继承的“Is-A”关系; 接口隔离:不要让一个类依赖另一个类中用不到的接口,简单说就是最小化组件之间的接口依赖和耦合; 依赖反转:依赖抽象原创 2020-09-30 10:38:44 · 900 阅读 · 0 评论 -
java 快速排序
java学习,实现快速排序,简单例子import java.util.Arrays;/** * class FastOrder * * @author lonkin created on 2019-09-24 */public class FastOrder { public static void main(String[] args) { in...原创 2019-09-24 16:57:52 · 242 阅读 · 0 评论 -
java 之 手写 生产者-消费者
主要考点: 数据结构:消息队列; 多线程生产,多线程消费;import java.util.concurrent.*;import java.util.concurrent.atomic.AtomicInteger;/** * class ConsumerAndProducer * * @author lonkin cre...原创 2019-09-24 16:54:03 · 354 阅读 · 0 评论 -
java 集合简述
一、概览Collection Map 二、集合中的设计模式 迭代器模式 适配器模式 三、源码分析 ArrayList Vector CopyOnWriteArrayList LinkedList HashMap ConcurrentHashMap LinkedHashMap WeakHashMap 参考资料一、概览集合主要包括 Coll...原创 2019-09-23 15:17:00 · 200 阅读 · 0 评论 -
Cookie没有HttpOnly标志设置 -- Cookie没有安全标志设置
漏洞扫描-- Cookie没有HttpOnly标志设置java设置session配置:yml文件配置:server: session: cookie: http-only: true或者properties文件配置:server.session.cookie.http-only=true ...原创 2018-11-21 10:08:06 · 10225 阅读 · 2 评论 -
docker 基本操作(发布java web应用/发布spring boot 应用/安装jenkins)
/*** docker 基本操作*/// 安装应用docker pull 应用名// 启动容器docker run -d -p 8000::8000 应用名 -d:后台启动 -p:本机端口:容器端口//停止容器docker stop 容器id// 删除容器docker rm 容器id//查看容器docker ps -adocker ps -l/***docker 发布java web应用到...原创 2018-07-05 09:21:41 · 214 阅读 · 0 评论 -
maven 操作命令-- mvn 命令释义
原创 2018-07-02 17:38:30 · 1312 阅读 · 0 评论 -
eclipse jvm 配置
在eclipse安装目录中:打开eclipse.ini文件,在-vmargs参数这一行的前面添加-vm,然后换行,添加jvm的路径,如:D:\Users\software\jdk1.8.0_05\jre\bin\server\jvm.dll原创 2017-12-14 08:55:01 · 358 阅读 · 0 评论