Xiao's Blog

生命太短暂,不要去做一些根本没有人想要的东西。


  • Home

  • About

  • Tags

  • Categories

  • Archives

  • Search

Java8中HashMap和ConcurrentHashMap解析

Posted on 2019-01-17 | In Java

HashMap是我们平时开发中用的比较多的集合容器,但是它不是线程安全的。当需要在多线程时保证安全我们会选择使用ConcurrentHashMap。下面对这两个集合介绍(基于Java8的源码,同时会与Java7的简单对比)。

Read more »

分布式锁介绍及其实现方式

Posted on 2019-01-15 | In 分布式

     提到锁,我们最先想到的是Java的synchronized关键字和JUC包中的ReentrantLock,这两个锁可以满足我们在多线程中对共享资源的安全访问,但是随着分布式的发展,本地锁已经没办法满足我们的需求了。为了在分布式环境也能对一个共享资源进行安全访问,我们需要引入分布式锁。

Read more »

一文详解Redis

Posted on 2019-01-10 | In middleware

Redis是一个开源的,基于内存的,也可进行持久化的,基于C语言编写的存储数据库。Redis能达到11w的QPS。Redis这么快的原因主要有以下几点:

  1. 完全基于内存,数据全部存储在内存中,读取时没有磁盘IO,所以速度非常快。

  2. Redis采用单线程的模型,没有上下文切换的开销,也没有竞态条件,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗。

    Read more »

Java NIO详解

Posted on 2018-10-24 | In Java

1.NIO概念

  NIO与传统IO相比最大的特点就是非阻塞。IO是阻塞的,当一个线程调用read或write方法时,线程必须等待文件读取完或者写完才能去执行其他任务;而NIO是非阻塞的,它允许线程请求从通道中读取数据,如果当前没有可用数据,线程可以继续执行其他操作,而不是一直阻塞。

Read more »

二叉搜索树Java实现

Posted on 2018-10-23 | In 数据结构和算法

二叉搜索树特性:

  • 具有二叉树的所有特性。
  • 左节点的值永远小于根结点。
  • 有节点的值永远大于根结点。
  • 具有较高的查找效率。
  • 插入效率也高,比链表要高。

Read more »

正则表达式

Posted on 2018-10-15 | In 其他

常用正则表达式

Read more »

Java原子操作类

Posted on 2018-10-07 | In Java

Java内存模型

Posted on 2018-10-07 | In Java

1、Java内存模型的抽象结构

  Java内存模型就是Java Memory Model(以下简称JMM),是Java虚拟机规范的一部分。JMM规定:变量存储在主存中,每个线程有自己的工作内存,线程工作内存中保存了变量在主存的副本拷贝。主存是线程共享的,工作内存变量是各个线程独享的。线程工作时,从主存中复制变量到线程的工作内存,然后在工作内存中操作变量副本,最后再把变量副本写回到主内存。

Read more »

nginx详解

Posted on 2018-10-06 | In 其他

1、概述

  nginx是一个跨平台的高性能web服务器。目前我们主要使用nginx用来做反向代理服务器。
  为什么选择nginx:1、更快;2、高扩展性;3、高可靠性;4、低内存消耗;5、单机支持10w以上并发连接;6、热部署。

Read more »

springboot使用mybatis加载typealias的package问题

Posted on 2018-09-30 | In web

springboot打成jar包后运行会造成mybatis设置的别名包找不到实体类的问题,这是由于mybatis默认使用DefaultVFS扫描包,在springboot中可以改成SpringBootVFS进行包扫描。具体见下面代码。


Read more »
123
任重道远

任重道远

当你选择了一种语言,意味着你还选择了一组技术、一个社区

27 posts
7 categories
15 tags
GitHub
0%
© 2021 任重道远
Powered by Hexo
|
Theme — NexT.Pisces v5.1.4