09 2020 档案

摘要:之前粗略看了一下List和Map,今咱来聊一下Set。 主要看以下几个: (1)HashSet (2)Collections.synchronizedSet (3)LinkedHashSet (4)CopyOnWriteArraySet (5)TreeSet 一、HashSet HashSet是日常 阅读全文
posted @ 2020-09-30 19:16 上古伪神 阅读(293) 评论(0) 推荐(0)
摘要:聊一下Map。主要有以下几个类: (1)HashMap (2)Hashtable (3)ConcurrentHashMap (4)LinkedHashMap (5)WeakHashMap 环境是java8,上述hashMap和ConcurrentHashMap在java7的时候实现会有不同。 Map 阅读全文
posted @ 2020-09-29 23:04 上古伪神 阅读(233) 评论(0) 推荐(0)
摘要:开始看一下集合Collection,List是Collection的一个子接口,主要是看一下其下的几个类。 1、AbstractList 2、ArrayList 3、Collections.synchronizedList 4、Vector 5、LinkedList 6、CopyOnWriteArr 阅读全文
posted @ 2020-09-28 22:23 上古伪神 阅读(236) 评论(0) 推荐(0)
摘要:JDK动态代理是代理模式的一种,且只能代理接口。spring也有动态代理,称为CGLib,现在主要来看一下JDK动态代理是如何实现的? 一、介绍 JDK动态代理是有JDK提供的工具类Proxy实现的,动态代理类是在运行时生成指定接口的代理类,每个代理实例(实现需要代理的接口)都有一个关联的调用处理程 阅读全文
posted @ 2020-09-27 21:48 上古伪神 阅读(1343) 评论(0) 推荐(0)
摘要:前两篇对es的操作只是在开发或生产环境中排查问题需要大量使用,最常用的还是在代码中对es的增删改查,下面就来看一下。 引入依赖: 先定义一下常量: 一、TransportClient 对es的操作是通过TransportClient的,需要先创建TransportClient 二、索引 对索引的操作 阅读全文
posted @ 2020-09-26 15:15 上古伪神 阅读(330) 评论(0) 推荐(0)
摘要:对es查询的索引的company,其有如下字段,下面是一个示例数据 "id": "1", //id "name": "张三",//姓名 "sex": "男",//性别 "age": 49,//年龄 "birthday": "1970-01-01",//生日 "position": "董事长",//职 阅读全文
posted @ 2020-09-24 21:28 上古伪神 阅读(958) 评论(0) 推荐(0)
摘要:近端时间在搬砖过程中对es进行了操作,但是对es查询文档不熟悉,所以这两周都在研究es,简略看了《Elasticsearch权威指南》,摸摸鱼又是一天。 es是一款基于Lucene的实时分布式搜索和分析引擎,今天咱不聊其应用场景,聊一下es索引增删改。 环境:Centos 7,Elasticsear 阅读全文
posted @ 2020-09-23 22:24 上古伪神 阅读(283) 评论(0) 推荐(0)
摘要:上篇文章说到,Class类可以通过一个类的全限定名去加载类,那么底层是如何去加载的呢?这就是我们今天要聊的类加载器ClassLoader,其可以通过一个类的全限定名来获取描述此类的二进制字节流,也即是将编译过后的Class文件加载到内存中。 需要注意的是,即使是同一个类,类加载器不一样,就必定不相等 阅读全文
posted @ 2020-09-22 22:22 上古伪神 阅读(253) 评论(0) 推荐(0)
摘要:日常敲码中,如果想要在程序运行阶段访问某个类的所有信息,并支持修改类的状态或者行为的话,肯定会用到反射,而反射靠的就是Class类。Java的动态代理也用到了这个东西,所以了解其基本操作在苦逼的CRUD中会添加一丝丝乐趣(有点意思)。 首先来看看Class的操作有哪些? public final c 阅读全文
posted @ 2020-09-21 21:38 上古伪神 阅读(474) 评论(0) 推荐(0)
摘要:今天来看一下Thread和ThreadLocal类的源码。 一、Thread (1)首先看一下线程的构造方法,之后会说每种参数的用法,而所有的构造函数都会指向init方法 //空构造创建一个线程 Thread() //传入Runnable对象创建一个线程 Thread(Runnable target 阅读全文
posted @ 2020-09-20 16:31 上古伪神 阅读(256) 评论(0) 推荐(0)
摘要:众所周知,redis是内存数据库,在运行期间会将所有数据加载到内存中,所以如果不把数据落到磁盘的话,redis进程一旦被停掉,数据就会全部丢失。 例如:(redis持久化已关闭,看下情况)。 一开始redis里面有多个key存在,关掉重启之后,数据都已丢失。 如何把数据落到磁盘上呢? Redis提供 阅读全文
posted @ 2020-09-19 16:47 上古伪神 阅读(163) 评论(0) 推荐(0)
摘要:上一篇说了Redis有五种数据类型,今天就来聊一下Redis底层的数据结构是什么样的。是这一周看了《redis设计与实现》一书,现来总结一下。(看书总是非常烦躁的!) Redis是由C语言所写,所以以下会有c语言的片段,不过都是一些定义,很好理解。 Redis底层数据结构有六种: 1、简单动态字符串 阅读全文
posted @ 2020-09-18 22:37 上古伪神 阅读(2014) 评论(0) 推荐(0)
摘要:今天咱来聊一下Redis五种数据类型的详细用法以及在代码中如何使用。废话不多说,开始! Redis五种数据类型: string:字符串对象 list:列表对象 hash:散列 set:集合 zset:有序集合 接下来一一进行操作(命令行操作,由于很多,就不一一截图了): 一、统一操作(五种数据类型都 阅读全文
posted @ 2020-09-17 22:59 上古伪神 阅读(276) 评论(0) 推荐(0)
摘要:今天主要来看一下Redis的安装以及集群搭建(我也是第一次搭建)。 环境:CentOS 7.1,redis-5.0.7 一、单机安装 1、将Redis安装包放置服务器并解压 2、进入redis安装目录(笔者的是/usr/soft/redis-5.0.7)执行make && make install命 阅读全文
posted @ 2020-09-16 21:55 上古伪神 阅读(318) 评论(0) 推荐(0)
摘要:CAS算法实现一个重要前提需要取出内存中某时刻的数据,而在下时刻比较并替换,那么在这个时间差类会导致数据的变化。 上篇文章讲到CAS会出现一个ABA问题。那什么是ABA问题呢? 官方一点的解释就是:当有多个线程对一个原子类进行操作的时候,某个线程在短时间内将原子类的值A修改为B,又马上将其修改为A, 阅读全文
posted @ 2020-09-15 22:48 上古伪神 阅读(554) 评论(0) 推荐(0)
摘要:本篇看一下Volatile关键字和原子引用。 上图就是JUC包结构,总共分成三块 (1)java.util.concurrent:并发包基础类,包括阻塞队列,线程池相关类,线程安全Map等。 (2)java.util.concurrent.atomic:原子引用相关类 (3)java.util.co 阅读全文
posted @ 2020-09-14 22:04 上古伪神 阅读(276) 评论(0) 推荐(0)
摘要:JVM垃圾回收机制是java程序员必须要了解的知识,对于程序调优具有很大的帮助(同时也是大厂面试必问题)。 要了解垃圾回收机制,主要从三个方面: (1)垃圾回收面向的对象是谁? (2)垃圾回收算法有哪些? (3)垃圾收集器有哪些?每个收集器有什么特点。 接下来一一讲解清楚: 一、垃圾回收面向的对象 阅读全文
posted @ 2020-09-13 21:10 上古伪神 阅读(160) 评论(0) 推荐(0)
摘要:一、JVM 首先看一张JVM结构图(某度找的) 主要看运行时数据区,里边有方法区,堆,java虚拟机栈,本地方法栈,程序计数器。其中方法区和堆是线程共享的,也是JVM进行垃圾收集的区域,java虚拟机栈、本地方法栈和程序计数器是线程私有的。 程序计数器:一块较小的内存空间,是当前线程所执行的字节码的 阅读全文
posted @ 2020-09-13 21:09 上古伪神 阅读(1378) 评论(0) 推荐(0)