Fork me on GitHub

随笔分类 -  03Java编程

摘要:核心思想 读写分离,空间换时间,避免为保证并发安全导致的激烈的锁竞争。 关键点 1、CopyOnWrite适用于读多写少的情况,最大程度的提高读的效率; 2、CopyOnWrite是最终一致性,在写的过程中,原有的读的数据是不会发生更新的,只有新的读才能读到最新数据; 3、如何使其他线程能够及时读到 阅读全文
posted @ 2021-07-26 12:27 薄荷加冰2060 阅读(3396) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2021-07-07 20:07 薄荷加冰2060 阅读(24) 评论(0) 推荐(0)
摘要:db.users.find() select * from users db.users.find({"age" : 27}) select * from users where age = 27 db.users.find({"username" : "joe", "age" : 27}) sel 阅读全文
posted @ 2020-04-12 09:44 薄荷加冰2060 阅读(524) 评论(0) 推荐(0)
摘要:分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。 有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。 而twitter的SnowFlake解决了这种需求,最 阅读全文
posted @ 2019-06-19 10:50 薄荷加冰2060 阅读(2249) 评论(0) 推荐(0)
摘要:一、JVM模型概述 java虚拟机(JVM)在java程序运行的过程中,会将它所管理的内存划分为若干个不同的数据区域,这些区域有的随着JVM的启动而创建,有的随着用户线程的启动和结束而建立和销毁。一个基本的JVM运行时内存模型如下所示: 上图展示的是“JAVA SE7”的JVM虚拟机规范。注意,虚拟 阅读全文
posted @ 2019-04-26 18:56 薄荷加冰2060 阅读(624) 评论(0) 推荐(0)
摘要:概述 分库分表的必要性 首先我们来了解一下为什么要做分库分表。在我们的业务(web应用)中,关系型数据库本身比较容易成为系统性能瓶颈,单机存储容量、连接数、处理能力等都很有限,数据库本身的“有状态性”导致了它并不像Web和应用服务器那么容易扩展。那么在我们的业务中,是否真的有必要进行分库分表,就可以 阅读全文
posted @ 2018-07-15 12:10 薄荷加冰2060 阅读(3014) 评论(1) 推荐(0)
摘要:首先看两段代码,一段是Integer的,一段是AtomicInteger的,为以下: 以下是AtomicInteger的: 以上两段代码,在使用Integer的时候,必须加上synchronized保证不会出现并发线程同时访问的情况,而在AtomicInteger中却不用加上synchronized 阅读全文
posted @ 2018-02-06 01:00 薄荷加冰2060 阅读(233) 评论(0) 推荐(0)
摘要:实现原理 数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数制约。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量 阅读全文
posted @ 2018-01-30 23:13 薄荷加冰2060 阅读(586) 评论(0) 推荐(0)
摘要:ArrayList LinkedList 阅读全文
posted @ 2018-01-19 19:53 薄荷加冰2060 阅读(332) 评论(0) 推荐(0)
摘要:源代码: 1 用Oolong工具将java字节码翻译为类汇编语言 2 java –verbose查看运行类是加载了那些jar文件 3 javap查看字节码 阅读全文
posted @ 2018-01-19 16:29 薄荷加冰2060 阅读(5549) 评论(0) 推荐(0)
摘要:从Java平台的逻辑结构上来看,我们可以从下图来了解JVM: 从上图能清晰看到Java平台包含的各个逻辑模块,也能了解到JDK与JRE的区别 对于JVM自身的物理结构,我们可以从下图鸟瞰一下: 对于JVM的学习,在我看来这么几个部分最重要: Java代码编译和执行的整个过程 JVM内存管理及垃圾回收 阅读全文
posted @ 2018-01-17 11:19 薄荷加冰2060 阅读(157) 评论(0) 推荐(0)
摘要:1 //单链表结点类 2 public class Node { //单链表结点类,T指定结点的元素类型 3 4 public T data; //数据域,保存数据元素 5 public Node next; //地址域,后任结点引用 6 7 //构造结点,data指定数据元... 阅读全文
posted @ 2018-01-15 20:30 薄荷加冰2060 阅读(213) 评论(0) 推荐(0)
摘要:1.根据已有的密码字符串去生成一个密码+盐字符串,可以将盐的加密字符串也存放在数据库(看需求), 2.验证时将提交的密码字符串进行同样的加密再从数据库中取得已有的盐进行组合密码+盐的字符串和已有的进行验证 阅读全文
posted @ 2018-01-12 13:27 薄荷加冰2060 阅读(4009) 评论(0) 推荐(0)
摘要:Intellij IDEA中有很多快捷键让人爱不释手,stackoverflow上也有一些有趣的讨论。每个人都有自己的最爱,想排出个理想的榜单还真是困难。以前也整理过Intellij的快捷键,这次就按照我日常开发时的使用频率,简单分类列一下我最喜欢的十大快捷-神-键吧。 1 智能提示 Intelli 阅读全文
posted @ 2018-01-09 12:04 薄荷加冰2060 阅读(113) 评论(0) 推荐(0)
摘要:1、概述 log4j是Apache提供的一个日志实现,可以用于我们项目中的日志记录,有log4j1和log4j2两个版本,本文使用log4j2这个版本。SLF4J(Simple logging facade for Java)不是一个真正的日志实现,而是一个抽象层,相当于一个统一的接口,它允许你在后 阅读全文
posted @ 2018-01-08 18:00 薄荷加冰2060 阅读(305) 评论(0) 推荐(0)
摘要:一,volatile关键字的可见性 要想理解volatile关键字,得先了解下JAVA的内存模型,Java内存模型的抽象示意图如下: 从图中可以看出: ①每个线程都有一个自己的本地内存空间--线程栈空间,线程执行时,先把变量从主内存读取到线程自己的本地内存空间,然后再对该变量进行操作 ②对该变量操作 阅读全文
posted @ 2018-01-08 11:28 薄荷加冰2060 阅读(172) 评论(0) 推荐(0)
摘要:一对一返回resultType 返回resultMap 一对多 多对多 resultType: 作用: 将查询结果按照sql列名pojo属性名一致性映射到pojo中。 场合: 常见一些明细记录的展示,比如用户购买商品明细,将关联查询信息全部展示在页面时,此时可直接使用resultType将每一条记录 阅读全文
posted @ 2018-01-07 12:22 薄荷加冰2060 阅读(316) 评论(0) 推荐(0)
摘要:一、什么是SpringBoot 描述:Spring Boot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目。大多数SpringBoot项目只需要很少的配置文件。二、SpringBoot核心功能1、独立运行Spring项目 Spring boot 可以以jar包形式独立运 阅读全文
posted @ 2018-01-05 13:01 薄荷加冰2060 阅读(2104) 评论(0) 推荐(1)
摘要:首先,流是什么? 流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以“流”的方式进行。设备可以是文件,网络,内存等。 流具有方向性,至于是输入流还是输出流则是一个相对的概念,一般以程序为参考,如果数据的流向是程序至设备,我们成为输出流,反之我们称为输入流。 可以 阅读全文
posted @ 2017-12-31 14:48 薄荷加冰2060 阅读(331) 评论(0) 推荐(0)
摘要:在Spring中,支持 5 自动装配模式。 no – 缺省情况下,自动配置是通过“ref”属性手动设定,在项目中最常用byName – 根据属性名称自动装配。如果一个bean的名称和其他bean属性的名称是一样的,将会自装配它。byType – 按数据类型自动装配。如果一个bean的数据类型是用其它 阅读全文
posted @ 2017-12-23 16:31 薄荷加冰2060 阅读(2957) 评论(0) 推荐(1)