JVM垃圾收集机制与内存分配策略总结(上)

参考: https://www.jianshu.com/p/8f5fa8288d9b     &a...

2019-03-17 15:31:02

阅读数 126

评论数 0

Mysql索引总结

本文针对InnoDB索引总结 总结于:掘金小册 MySQL 是怎样运行的:从根儿上理解 MySQL https://juejin.im/book/5bffcbc9f265da614b11b731 作者:小孩子4919 数据页结构分析 InnoDB存储引擎会把表数据存储到磁盘上,当想对数据操作时需...

2019-05-23 21:42:54

阅读数 109

评论数 0

剑指Offer:把数组排成最小的数 (java代码实现)

题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 解题思路 1.暴力解 全排列 列出所有情况 下面是代码实现 import java.util.ArrayLis...

2019-05-23 08:14:08

阅读数 32

评论数 0

JDK1.7HashMap源码解析

HashMap已经看了很多篇文章了,今天还是自己解析一遍吧。 我先大致介绍下HashMap的内部结构再跟着源码解读一番 众所周知HashMap的内部就是一个哈希表 什么是哈希表? 如果我们利用数组可随机访问的特性,将要存入的键通过一种哈希算法转换成一个数字,并把这个数字转换成数组的下标,然后将键...

2019-05-22 23:30:57

阅读数 65

评论数 0

学成总结(分布式事务)

什么是分布式事务? 在单体应用中只有一个系统并且操作一个数据库,事务为本地事务,数据库本身就支持了对本地事务回滚的解决方案。 在分布式系统中有这2个情况可能会产生分布式事务: 多个系统分别有自己的数据库 比如订单系统有自己的订单数据库,库存系统有自己的库存数据库 当在订单系统中在订单表增加了一...

2019-05-20 11:46:37

阅读数 47

评论数 0

学成总结(认证和授权)

本项目使用spring scurity + oauth2 + jwt 实现了认证授权完成了单点登录 Oauth2是一个标准的开放的授权协议,Spring security 是一个强大的和高度可定制的身 份验证和访问控制框架,Spring security 框架集成了Oauth2协议 Oauth2...

2019-05-19 10:55:44

阅读数 47

评论数 0

Rabbitmq的几种工作模式总结

先看下rabbitqmq的基本架构 可以看到rabbitmq包含这几个组件 生产者 producer 消费者 consumer broker 该消息队列进程 就代表这个消息队列 broker里面包含了重要的2个组件 一个是交换机:Exchange 一个是队列:Queue 下面介绍几种工...

2019-05-17 20:15:11

阅读数 93

评论数 0

学成在线总结(1)

学成在线是一个在线教育平台,提供IT职业课程在线学习,它有门户、课程管理中心、系统管理中心、学习中心等系统。 门户系统负责,注册登录、门户首页展示、课程搜索等功能。 教学管理中心提供:课程管理、媒资管理、问答管理等功能。 系统管理中心提供:CMS页面管理、数据字典、分类管理等功能。 本项目采用前后...

2019-05-17 09:50:47

阅读数 595

评论数 0

Redis学习篇之持久化机制

Redis是一款基于key-value的内存数据库,它所有的数据都存在内存中,我们必须采用合适的持久化机制将数据保存在磁盘中,否则一旦服务器重启,宕机,数据就会丢失。 Redis提供两种持久化机制:RDB、AOF RDB持久化机制 RDB会在某个时间点上将数据库中的数据全部导入到一个.rdb的二进...

2019-05-08 15:06:49

阅读数 28

评论数 0

Redis学习篇之数据库实现和过期策略相关

参考:Redis设计与实现 事先声明:本文为对该书的总结。并参考 https://segmentfault.com/a/1190000016951866 作者:java3y 数据库相关 Redis服务器的服务器状态由redis.h/redisServer结构来表示,其中的redisDb数组代表当...

2019-05-08 09:16:42

阅读数 16

评论数 0

mysql学习篇之锁

参考:高性能Mysql(第三版) java3y:https://segmentfault.com/a/1190000015738121#articleHeader12 https://blog.csdn.net/hxpjava1/article/details/79407961 介绍锁之前先来简...

2019-04-29 15:20:28

阅读数 33

评论数 0

多线程学习篇之Condition实现细节

ReentrantLock提供Condition来实现和wait notify类似的等待通知功能。 使用condition可以实现有选择的通知,在使用notify/notifyAll()方法进行通知时,被通知的线程是由 JVM 选择的。 lock接口中提供了该方法创建Condition对象 //获...

2019-04-21 21:29:40

阅读数 15

评论数 0

多线程学习篇之ReentrantLock(相关实现细节)

本文参考: https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/synchronized.md https://www.javadoop.com/post/AbstractQueuedSynchronizer-2 java并发...

2019-04-21 15:47:10

阅读数 20

评论数 0

多线程学习篇之AQS解析和相关实现

参考:http://www.cnblogs.com/waterystone/p/4920797.html java并发编程艺术 AQS 即 AbstractQueuedSynchronizer(队列同步器) 第一次看到这个类 一脸懵逼, 它其实就是一个抽象类,它是用来构建锁和其他同步组件的基...

2019-04-19 14:01:17

阅读数 72

评论数 0

多线程学习篇之等待/通知

等待/通知机制 ·在总结死锁文章中 为了解决死锁我们用到了循环调用apply()方法,判断是否满足同时能获取到2个资源 (2把锁)这个条件,然后在转账操作结束后调用free()方法 释放2个资源。 代码如下: class Allocator { private List&l...

2019-04-16 18:10:10

阅读数 132

评论数 0

多线程基础学习篇之死锁

讲死锁之前先讲一个转账的例子 @Data @AllArgsConstructor @NoArgsConstructor public class Account { // 余额 private int balance; // 转账 public void trans...

2019-04-12 19:48:32

阅读数 23

评论数 0

多线程基础学习篇之停止线程

在java中有3种停止线程的方法 线程正常退出,也就是当前线程的run方法正常执行完毕后线程终止 使用stop方法强行终止线程 不过这个方法已经被废弃 使用interrupt()方法中断线程 接下来介绍这些方法的优缺点 首先介绍interrupt()方法 如果仅仅在当前线程调用interrup...

2019-04-08 23:05:11

阅读数 25

评论数 0

并发编程前序之java内存模型(JMM)

本文主要是对深入理解java虚拟机等书籍和各路大神的博客的总结并谈谈自己的理解 理解java内存模型之前我们需要先了解以下物理计算机中的并发问题,物理机的并发处理方案对JVM的实现有很大的参考意义。 物理机内存架构 通过一张图我们看一下物理机硬件内存架构 由上图我们可以看到在CPU内部有一组C...

2019-03-28 23:31:29

阅读数 77

评论数 0

java8之Lambda表达式

在软件工程,一个众所周知的问题就是,用户的需求不断的在变化 这里我举个例子:比如有一个员工类Employee 和员工列表 @Data @AllArgsConstructor @NoArgsConstructor @EqualsAndHashCode pub...

2019-03-26 23:18:13

阅读数 68

评论数 0

java对象创建过程

对象的创建过程 java程序在运行的过程中无时无刻都有对象被创建出来 那对象的创建过程是怎样的呢? 当java虚拟机遇到一条new指令时,首先会去检查这个指令的参数能否再常量池中定位到这个类的符号引用。如果这个符合引用没有被加载 那么jvm会执行相应的类加载过程(加载,验证 准备 解析 初始化) ...

2019-03-24 20:03:06

阅读数 41

评论数 0

提示
确定要删除当前文章?
取消 删除