![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 73
凉夜热涌
狮子搏兔,亦用全力
展开
-
ElasticSearch、Kibana下载安装配置
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示.原创 2021-06-08 21:23:42 · 399 阅读 · 3 评论 -
CountDownLatch 实现主线程规定时间内返回结果
业务场景阿里巴巴的一道面试题目一个搜索引擎,前端发送一个关键字,后端那这个关键字返回搜狗、百度、谷歌3个搜索引擎的搜索结果。要求,200ms内返回结果,否则此次认为请求失败。首先,主线程开三个线程分别取请求这三个引擎的搜索结果,存入对应的集合中。主线程等待200ms后,直接返回结果。public class Main{ public static void main(String[] args) throws InterruptedException { long sta原创 2021-05-26 22:02:45 · 1064 阅读 · 0 评论 -
Bonuses on a Line (java 二分)
Bonuses on a Line题目大概意思,给出x轴上n个坐标的点,这些点上有股票。我们从坐标为0的点开始移动,做多可以移动t秒,每秒只能在坐标上移动一个长度。问:最多可以收集多少股票?使用二分分别枚举左走的点,然后使用二分获取在这个点的情况下,最多可以右折返能收集多少股票。先右走同理。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import jav原创 2021-05-16 10:51:20 · 248 阅读 · 0 评论 -
JUC-----------(四)多线程的集合
集合类不安全list不安全单线程下:public class UnSafeList { public static void main(String[] args) { List<String> list = Arrays.asList("a", "b", "c"); list.forEach(System.out::println); }}多线程下:public class UnSafeList { public sta转载 2021-04-10 10:30:10 · 146 阅读 · 0 评论 -
JUC-----------(三)详解synchronized八种情况
8锁现象1、标准访问,请问先打印邮件还是短信public class A { public static void main(String[] args) { Phone phone = new Phone(); new Thread(() -> { phone.sendEmail(); }, "A").start(); new Thread(() -> { phone.s转载 2021-04-10 10:21:05 · 155 阅读 · 1 评论 -
JUC-----------(二)生产者消费者
生产者和消费者线程直接的通信,线程之间要协调和调度生产者和消费者synchronized版/** * 题目:现在两个线程,可以操作初始值为0的一个变量实现一个线程对该变量+1, * 一个线程对该变量-1,实现交替10次 */public class B { public static void main(String[] args) { Data data = new Data(); new Thread(() -> {转载 2021-04-10 10:18:04 · 89 阅读 · 0 评论 -
Java 锁
Java锁1、公平锁非公平锁公平锁:是指多个线程按照申请锁的顺序来获取锁,类似排队打饭,先来后到。非公平锁:是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁,在高并发的情况下,有可能会造成优先级反转或者饥饿现象。//无参public ReentrantLock() { sync = new NonfairSync();}//有参public ReentrantLock(boolean fair) { sync = fair ? new转载 2021-04-10 10:08:12 · 101 阅读 · 0 评论 -
深入理解单例模型
深入单例模式单例模式可以说只要是一个合格的开发都会写,但是如果要深究,小小的单例模式可以牵扯到喝多东西,比如 多线程是否安全,是否懒加载,性能等等。还有你知道几种单例模式的写法?如何防止反射或坏单例模式?今天 我们来探究单例模式。1、饿汉式public class Hungey { private Hungey() { } private final static Hungey hungry = new Hungey(); public static Hungey g转载 2021-04-10 10:04:44 · 97 阅读 · 0 评论 -
JUC-----------(一)Java多线程入门
Java多线程入门进程/线程是什么?进程:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统执行的基本单元,在传统的操作系统中,进程即时基本的分配但愿,也是基本的执行单元。线程:通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义,线程可以利用进程所拥有的资源。在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位,由于线程比进程小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能转载 2021-04-10 09:59:20 · 117 阅读 · 0 评论 -
Java容器底层原理——初窥
Java容器CollectionListArrayListLinkedListVector(线程安全)SetHashSetTreeSetLinkedHashSetMapHashMapLinkedHashMapHashtableTreeMap1、ListList接口下的类存储元素,有序、可重复的。1.1、ArrayListArrayList内部实现是一个可变长度的数组,初始化创建的时候,这个数组长度为0,是一个空数组。在add第一个元素的时候,长原创 2021-03-31 21:28:50 · 381 阅读 · 0 评论 -
2021 3月29周记
生活 开学第四周了,这周六和室友去看了金刚大战哥斯拉,是真的爽,像这种电影,就是要在电影院看3D才有感觉。金刚是真的帅,周日是小组组织团建,一起去了八里沟爬山,八里沟我是第一次去。总是听别人diss八里沟怎么怎么垃圾,其实去了发现感觉还行,但是有说不上好在哪里,就是八里沟的水比较多吧,还有那个瀑布。不过八里沟跟万仙山比的话,还是感觉万仙山更有感觉一点。八里沟的服务有点差,一个公交车只有50多座位,非得让70人进去。有一部分人站在车里,就感觉挺不合理的。学习上周主要学习了一遍Java基础,然后又看了容原创 2021-03-29 16:22:39 · 143 阅读 · 0 评论 -
JVM面试向——垃圾回收
对象回收的判断算法1、引用计数算法给对象添加一个引用计数器,每一个地方引用它,计数器值就加1,对象引用失效的时候,计数器就减1。当计数器值为0的时候,此对象为垃圾。**优点:**判定效率高**缺点:**对象间循环依赖,此算法无法正确判断是否为垃圾对象(致命),主流虚拟机没有这种算法。2、可达性分析算法GC Roots的对象作为起始点,从这些结点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain)当一个对象到GC Root没有任何引用链相连时,则证明此对象是不可达的。可以原创 2021-03-21 16:24:38 · 89 阅读 · 0 评论 -
JVM面试向——体系结构
JVM的位置所以要理解一个问题:JVM是运行在操作系统之上的,它与硬件没有直接的交互什么是HotSpot?了解三种JVM:Sun公司的HotSpotBEA公司的JRockitIBM公司的J9VMJVM体系结构图如果你不能够闭着眼睛画出JVM体系结构图,说明你还没有入门JVMjava栈、本地方法栈、程序计数器三个区域都是线程私有的,一般没有什么垃圾回收,都是伴随着线程结束或者方法的结束就清除内存了。而java堆、方法区是线程共享的、可能会存在垃圾,方法区中存在垃圾的可能性比较小,大原创 2021-03-21 10:36:42 · 132 阅读 · 2 评论 -
Redis入门学习笔记--附Redis工具类
阅读全文大概得花3个小时时间Redis入门概述Redis是什么Redis:REmote DIctionary Server是完全开源免费的,用C语言编写的,遵循BSD协议,是一个高性能的(Key/Value)分布式内存数据库,基于内存运行,并支持持久化的NoSQL数据库,是当前最热门的NoSQL数据库之一,也被人们称之为数据结构服务器Redis与其他key-value缓存产品有以下三个特点Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。Red转载 2021-03-15 16:08:02 · 324 阅读 · 0 评论 -
温故知新——重学Mybatis
Mybatis环境:JDK 1.8Mysql 8.0.15maven 3.6.3IDEA1、简介1.1、什么是MybatisMybatis是一款优秀的持久层框架它支持定制化SQL、储存过程以及高级映射。Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集Mybatis可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO(Plain Old Java Objects,普通老式Java对象)为数据库中的记录。Mybatis本是apache的一个转载 2021-03-04 00:08:17 · 187 阅读 · 0 评论 -
JavaSE 注解(Annotation)和反射(Reflection)
注解Annotation1、什么是注解Annotation是从JDK5.0开始引入的新技术Annotation的作用不是程序本身,可以对程序做出解释。(这一点和注释(comment)没什么区别)可以被其他程序(比如:编译器)读取。Annotation的格式主解是以“@注释名”在代码中存在的还可以添加一些参数值,例如:@SuppressWarings(values=“unchecked”)Annotation在哪里使用?可以附加在package,class,method,f翻译 2021-02-25 16:16:46 · 171 阅读 · 0 评论 -
ArrayList和LinkedList所有函数(集合排序,集合筛选等各种复杂功能)原来集合还可以这样用。
List下ArrayList、LinkedList所有方法1.简介List接口是一个接口,他继承于Collection,同样有类似的Set接口也是继承于Collection,这两个是我们常用的工具类,话不多说,直接进入今天我们的主题List。List是一种有序列表的列表,可以控制列表中每个元素的插入位置。列表长度不同于数组,是可变的。实现List接口主要是两个类ArrayList,LinkedList。2.ArrayList2.1添加元素方法boolean add(E e) 将指定元素追加到原创 2020-12-08 11:26:16 · 940 阅读 · 0 评论