3 刘桐ssss

尚未进行身份认证

我要认证

欢迎来到我的酒馆

等级
TA的排名 1k+

SpringBoot中实现查询并高亮显示ES中的数据

接上篇https://blog.csdn.net/Delicious_Life/article/details/106592455Controller @GetMapping("/search/{keyword}/{pageNo}/{pageSize}") public List<Map<String,Object>> search(@PathVariable("keyword") String keyword, ...

2020-06-06 20:31:15

SpringBoot中如何把爬取的数据存入ES索引库中

接上篇https://blog.csdn.net/Delicious_Life/article/details/106590692连接ES服务器新建配置类,通过ip+端口连接ES@Configurationpublic class ElasticSearchClientConfig { @Bean public RestHighLevelClient restHighLevelClient(){ RestHighLe...

2020-06-06 19:47:36

SpringBoot中使用Jsoup爬取网站数据

爬取数据导入jar包 <properties> <java.version>1.8</java.version> <elasticsearch.version>7.6.1</elasticsearch.version> </properties> <dependencies> <dependency> ...

2020-06-06 17:26:36

ElasticSearch的基本概念

目录Elasticsearch和MySQL对比ES的物理设计ES的逻辑设计索引(indices)文档(Document)倒排索引映射(mappings)Elasticsearch和MySQL对比索引(indices)相当于数据库(database)类型(types)相当于表(tables)文档(Document)相当于行(Row)字段(Field)相当于列(Columns)映射(mappings)相当于表结构SchemaE...

2020-06-04 19:42:36

ElasticSearch和Solr技术选型

Elasticsearch和Solr比较ES使用的RestfulAPI风格,Solr使用的是传统的WebService风格 ES解压即用,而Solr安装相比更复杂 Solr利用Zookeeper进行分布式管理,而ES自身带有分布式协调管理功能 Solr支持更多格式的数据,比如JSON,XML,CSV,而ES仅支持JSON格式的数据 Solr官方提供了功能多余ES,ES本身更专注于核心搜索,其他功能由第三方插件提供 Solr查询快,但更像索引慢,用于电商等查询多的应用,而ES建...

2020-06-04 15:08:09

各种锁(基于synchronized和lock)

目录公平锁和非公平锁可重入锁(递归锁)自旋锁(spinlock)死锁公平锁和非公平锁公平锁: 非常公平, 不能够插队,必须先来后到非公平锁:非常不公平,可以插队 (默认都是非公平)public ReentrantLock() {sync = new NonfairSync();}public ReentrantLock(boolean fair) {sync = fair ? new FairSync() : new NonfairSync();}...

2020-06-03 10:51:23

CAS原理与ABA问题

目录什么是CASCAS的工作原理CAS的优缺点什么是ABA问题什么是CASCAS意为比较和交换。我们先举个小例子。我们在volatile中为了保证了操作的原子性,当时引入了AtomicInteger类。使用Atomic类中的方法的底层原理就CAS。下面这个小例子,CAS在Java中的代码中比较给定值是否符合期望值,符合就更新,不符合就不更新点进AtomicInteger源码,发现里面有unsafe。那什么是unsafe呢?unsafe是java调用C++的..

2020-06-03 10:24:53

单例模式

什么是单例模式采用一定的方法保证在整个软件系统中,对某个类智能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)单例模式的八种形式饿汉式(静态常量)public class SingletonTest01 { public static void main(String[] args) { Singleton instance1 = Singleton.getInstance(...

2020-06-03 08:50:09

Java中的枚举

什么是枚举枚举:枚举是指把所有可能的结果一个不落的全部列举出来。枚举类:如果类的对象只有有限个,确定的,我们就称为这个类为枚举类什么时候用枚举类当需要定义一组常量时,强烈建议使用枚举类。如果枚举类中只有一个对象,则可以作为单例模式的实现方式。自定义枚举类java1.5之前,枚举类都是自定义的。//自定义枚举类public class Season { public static void main(Stri...

2020-06-02 20:44:41

Volatile关键字

目录什么是VolatileVolatile的特性Volatile保证了可见性Volatile不保证原子性Volatile禁止了指令重排什么是VolatileVolatile是JVM提供的一种轻量级的同步机制(Synchronized是重量级),它用来确保将变量的更新操作通知到其他线程。在访问volatile变量时不会执行加锁操作,因此也不会执行线程阻塞操作。因此volatile是轻量级的。volatile的读性能消耗与普通变量相同,但写操作稍慢,因为它需...

2020-06-02 16:21:12

ForkJoin与并行流

目录什么是ForkJoinForkJoin的工作窃取机制高效率的求和方法:ForkJoin与并行流什么是ForkJoinForkJoin出现在JDK1.7,它的作用简单来说就是并行执行任务,通过把大任务拆分为小任务的思想,在计算大数量时,提高效率ForkJoin的工作窃取机制ForkJoin的执行核心是递归,ForkJoin把一个大任务拆分成多个小任务,并行执行。假设子任务A执行一半时,子任务B已经执行完毕了,B会窃取一些A的任务,来...

2020-06-02 10:33:43

阻塞队列BlockingQueue

目录什么是阻塞队列阻塞队列家族阻塞队列的4种常用API同步队列SynchronousQueue什么是阻塞队列队列是先进先出的。如果队列满了,新元素想进来不得不阻塞。如果队列是空的,想取出队列中的元素也不得不阻塞阻塞队列广泛应用在线程池技术和各种消息队列中间件的底层中~阻塞队列家族阻塞队列家族属于Clollection集合的成员,Queue与Set和List是平级阻塞队列的4种常用API第一...

2020-06-01 14:42:18

读写锁ReadWriteLock

ReadWriteLock维护着一对关联的锁。读可以被多线程同时读,写只能由一个线程去写我们经常听到的独占锁其实就是写锁:一次只能被一个线程占有;共享锁其实就是读锁:多个线程可以同时占有我们举个例子,先来看看不加读写锁的情况package com.lt.ReadWriteLock;import java.util.HashMap;import java.util.Map;public class ReadWriteLockDemo { public static ...

2020-06-01 10:21:47

JUC中常用的辅助类

目录CountDownLatchCyclicBarrierSemaphoreCountDownLatchCountDownLatch是JUC中的一个减法计数器,有两个常用方法。原理:每次有线程调用countDown()数量-1,假设计数器变为0,countDownLatch.await()就会被唤醒,继续执行countDownLatch.countDown(); //数量-1countDownLatch.await(); //等待计数器归零,然后再向..

2020-06-01 09:49:20

Callable

目录什么是CallableRunnable和Callable的区别Callable执行原理使用Callable创建线程什么是CallableCallable位于JUC包下,是创建线程的第三种方式(前两种是创建Thread的子类、实现Runnable接口)Runnable和Callable的区别Runnable不能返回结果,也不能抛出检查的异常,通过run()来调用Callable可以有返回值,可以抛出异常,通过call方法调用Call...

2020-06-01 08:40:14

JUC中安全的并发集合类

CopyOnWriteArrayListList集合在单线程时是安全的,但多线程的情况下是不安全的。public class ListTest { public static void main(String[] args) { List<String> list = new ArrayList<>(); for (int i = 0; i <= 10; i++) { new Threa...

2020-05-31 20:12:58

八种情况深入理解锁机制

目录情况1+2、两个方法锁一个对象(有无sleep)情况3、一个对象,二个方法(一个带锁的方法,一个普通方法)情况4、两个对象,两个同步方法情况5+6、两个静态同步方法(一个对象/两个对象)情况7+8、一个静态同步方法一个同步方法(一或二个对象)总结情况1+2、两个方法锁一个对象(有无sleep)只要这个对象被一个方法锁住了,其他方法就不能执行,必须等这个对象释放后,才能执行。所以两个方法锁一个对象,不论是否其中的一个方法有sleep,永远是先拿到锁的方法先执行.

2020-05-31 12:41:07

多线程生产者与消费者问题|等待与唤醒机制

目录前言Synchronized虚假唤醒LockCondition的精准通知与唤醒线程前言等待与唤醒机制其实就是经典的生产者与消费者问题我们知道,生产者要想和消费者作用在一件产品上,必须要用到锁机制。通过锁机制保证一个产品同一时间只有一个角色在执行。下面将分别使用Synchronized和Lock锁解决生产者和消费者的问题。Synchronizednotify唤醒单个线程、notifyAll唤醒所有等待的线程。注意:wai...

2020-05-31 09:56:49

比较wait和sleep的区别

1.来自不同的类wait==》Objectsleep==>Concurrent2.关于锁的释放wait会释放锁,sleep相当于报这锁睡觉,不会释放锁。3.使用的范围不同wait必须在同步代码块中使用sleep可以在任何地方睡...

2020-05-30 16:42:24

什么是JUC

JUC是java.util.concurrent的简写。在jdk官方手册中可以看到juc相关的jar包有三个。用中文概括一下,JUC的意思就是java并发编程工具包

2020-05-30 16:02:38

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。