自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 收藏
  • 关注

原创 深拷贝List<对象>

public static void main(String[] args) throws CloneNotSupportedException { final List<Subscribe> zpResultAdsList = Lists.newArrayList(); Subscribe zpResultAds = new Subscribe(); zpResultAds.setUserId("123456"); zpResul

2022-04-27 14:35:37 671

原创 ES学习笔记(八)--kibana软件安装(MAC版本)

安装官方下载地址:https://www.elastic.co/cn/downloads/past-releases/kibana-7-8-0⚠️注意:软件版本需与ES版本相同,我使用的7.8.0版本下载解压打开/config/kibana.yml,做如下配置 # kibana 默认端口 server.port: 5858 # ES服务器的地址 elasticsearch.hosts: ["http://localhost:8001"] # 索引名 (存储kibana相关的一些

2021-08-28 17:18:54 619

原创 ES学习笔记(七):文档分析

文档分析器所包含的步骤:字符过滤器:整理字符串。eg:去掉HTML样式,&转变为and分词器:将字符串分割成词条Token过滤器:对词条进行增、删、改其中分词器又各有千秋分词器大致包含:以例句:Set the shape to semi-transparent by calling set_trans(5)标准分析器:默认。删除绝大部分标点。最后,将词条小写结果:set, the, shape, to, semi, transparent, by, calling, set_

2021-08-22 16:57:54 305

原创 Random和ThreadLocalRandom

Random和ThreadLocalRandomRandom 的随机原理:是对一个”随机种子”进行固定的算术和位运算,得到随机结果,再使用这个结果作为下一次随机的种子。如果在某个类中定义静态的Random,在解决线程安全问题时,Random 使用 CAS 更新下一次随机的种子,可以想到,如果多个线程同时使用这个对象,就肯定会有一些线程执行 CAS 连续失败,进而导致线程阻塞。Random性能问题的解决方法:可以搭配ThreadLocal使用。这样每个线程有自己的Random对象,也就是有自己的随机

2021-08-12 17:53:20 275

原创 ES学习笔记(六):近实时搜索

近实时操作:写入操作延时时间 = 主分片数据写入时间 + 并行写入副本的最大延时在数据安全和数据延时之间,ES所做的妥协:实时存储数据、实时读取数据的过程首先在memory(内存)中建立索引,并在内存中写入Translog日志。后写入日志的原因是:数据在建立索引时,需要经过分词等一系列复杂的操作,有可能写入失败,为了保证日志中都是成功的数据,所以后写入。索引建立分段的数据对象(segment)Segment会默认在1s内refresh 到OS Cache(内存缓冲区),此时,数据

2021-07-25 22:26:46 376

原创 ES学习笔记(五):读&写流程&倒排索引

一、ES写流程客户端发起请求,ES计算此数据应存储在P0节点。协调节点,将请求发送到主分片P0,进行数据保存P0将数据复制发送给R0负分片R0保存数据后,对主分片进行反馈主分片收到副分片反馈后,将结果反馈给客户端参数值valueconsistencyone主分片数据写成功,就反馈all主分片和负分片都写成功,才反馈quorum默认。写之前必须确保大多数 shard 都可用,当 number_of_replicas>1 时才生效。quoru

2021-07-25 22:22:07 312

原创 ES学习笔记(四):分片相关

一、分片操作创建索引时,对索引进行分片{“settings”:{“number_of_shards”:3,“number_of_replicas”:1}}查看es集群健康程度插件 elasticsearch_head⚠️主分片数量在创建索引时就已经确定,并且不可再改变。但是可以水平扩容副本分片。增删改时是在主分片上进行的。具体这次请求由哪个节点的哪个分片处理,节点通过负载均衡轮询决定,分片通过协调节点根据公式(见下方)计算所得。协调节点:请求发到哪个节点上哪个节点就是协调节点,每次请求

2021-07-25 22:19:01 369

原创 ES学习笔记(三):基本核心概念

核心概念索引 Index:一切设计都是为了提高搜索的性能文档 Document:可被索引的基础信息单元字段 Field:对文档数据根据属性的不同进行标识映射 mapping: 处理数据的方式和规则方面做一些限制:某个字段的数据类型、默认值、分析器、是否被索引等。分片 Shards:可以理解为mysql中的分表。每个分片都是本身也是一个功能完善并且独立的“索引”,这个索引可以被放置到集群中的任何节点上。​ 分片重要原因:允许水平分割、扩展内容容量;可进行分布式、并行的操作,进而提高

2021-07-12 09:57:19 85

原创 ES学习笔记(二):集群配置与启动 --mac环境

1 环境准备:复制原有es文件,分别为三个文件夹:Node-8001,Node-8002,Node-8003删除三个文件夹中的data文件,清除log文件修改配置文件1.1修改配置文件配置文件路径es/config/elasticsearch.ymlNode-8001文件详情:# 集群名称cluster.name: my-application# 节点名称node.name: node-8001# master节点node.master: true# 是否是数据节点node

2021-07-11 16:57:38 498

原创 黑客与画家--读书笔记

向着未来而生。Live the future,then build what‘s missing。​ ——保罗·格雷厄姆(Paul Graham)第一章 为什么书呆子不受欢迎​ 在美国社会的小学教育中,作者认为学生分为两种人:努力让自己变得受欢迎的人 和 书呆子。 受欢迎,是在美国公立学校这个类比监狱一样的环境下,孩子们凭空创造的一种等级制度。书呆子理解自己的处境,并不是这场游戏的失败者,只是在玩一场接近于真实世界的游戏。​ 人的精力是有限的,在成为书呆子和受欢

2021-07-10 18:26:51 286

原创 ES学习笔记(一) :http请求

视频学习链接:基础知识Elastic search:开源的高扩展的分布式全文搜索引擎,整个ES技术栈的核心。近乎实时的存储、检索数据扩展性好,可扩展上百台服务器,处理PB级别的数据基于Lucene开发(Lucene提供了全文检索的能力,但是没有办法直接使用)入门(mac版本)官网下载地址:https://www.elastic.co/cn/downloads/elasticsearch启动:通过终端进入到目录 elasticsearch-7.13.2/bin 下,执行 命令 .

2021-06-27 19:49:15 965 2

原创 CountDownLatch

CountDownLatch一种同步辅助工具,允许一个或多个线程等待,直到在其他线程中执行的一组操作完成。CountDownLatch是用给定的计数初始化的。由于调用了countDown方法,await方法会阻塞,直到当前计数为零,在此之后,所有等待的线程都会被释放,后续的await调用会立即返回。这是一种一次性现象——计数不能重置。如果需要重置计数的版本,可以考虑使用CyclicBarrier。CountDownLatch是一个通用的同步工具。/**锁存器计数-1 当前计数-1=0(新计数==0)

2021-05-25 20:43:09 183

原创 《一个广告人的自白》读书笔记

一个广告人的自白背景故事四个问题打折销售的钱大于做广告的钱广告文案不易被消费者读懂产品不贴合实际阴式广告(黑字白底的广告)一日经商,终身经商第一章 怎样经营广告公司作者在美琪饭店做厨师时,他的厨师长皮塔先生对他的影响至深。从厨师长那里学到的以下品质,一直沿用至今。比较少的夸奖下属,使下属感受到赞扬的可贵增强下属的使命感(使下属认识到工作的意义)信守对客户的承诺办公桌保持整洁,否则会产生一种懒散的气氛审核员工的工作成果身体力行的加班,员工就不会拒绝(气死了,就这么剥削员

2021-05-23 19:39:10 902

原创 《计算广告》第二版 读书笔记

在线广告创意类型:横幅广告 文字链广告 富媒体广告 视频广告 社交广告 移动广告 邮件定向营销广告、广告发展历程:合约广告->定向广告->竞价广告 (上下文广告)术语解释:ADN(ad Network):广告网络GSP (Generalized Second Price):广义第二高价CTR (Click Through Rate):点击率=广告点击/广告展现CVR (Conversion Rate):转化率=转化次数/到达次数CPS(cost.

2021-05-19 20:27:18 328

原创 mysql事务级别以及是如何实现的(锁)

隔离级别:ACID读未提交读已提交不可重复读串行脏读:事务A读取到了事务B还未提交的数据不可重复读:事务A在多次读取某数据时,读取到了事务B已经提交(update、delect)的数据,导致事务A前后读取结果不一致 幻读:事务A在多次统计数据时,统计到了事务B已经提交的insert数据,导致事务A的前后统计结果不一致事务隔离级别 隔离级别 脏读 不可重复读 幻读 备注

2021-02-18 16:22:18 155 1

原创 JVM 类加载机制 学习笔记

类加载流程图 加载:在硬盘上查找并通过IO读入字节码文件至JVM虚拟机方法区,同时在堆中创建class对象 验证:校验字节码文件的正确性 准备:为类的的静态变量分配内存,并将其初始化为默认值。此阶段仅为静态变量(static)分配内存;对于fina...

2021-01-26 21:27:55 115

原创 你应该知道的 JVM-垃圾回收 基础知识

垃圾回收区域:垃圾定位算法:1.引用计数法;栈中有几个引用指向堆中的对象,则此对象计数为几。但是这种无法解决循环依赖的问题,故基本上不采用此方法2.可达性分析算法:根据GC roots对象作为起点,向下搜索到的引用的对象,都属于非垃圾对象,其余都是垃圾对象。 GC roots:线程栈的本地变量、静态变量、本地方法栈的变量垃圾回收算法:1.标记-清除算法:Mark-sweep ...

2021-01-16 18:37:44 118

原创 必须了解的线程池基本参数类型

用户线程ULT:不需要用户态/核心态切换,速度快;线程阻塞则进程阻塞 内核线程KLT:线程的创建、调度、管理由内核完成,速度慢;线程阻塞不会引起进程阻塞线程的创建:jvm通过本地方法栈的p_thread接口到内核中创建线程,内核中有线程表存储线程信息线程的执行:java程序创建线程后,通过库调度器(操作系统)到内核空间创建线程,并维护到线程表中。此时CPU会根据调度的算法给每个线程分配不同的执行时间(时间片),当时间片结束后,CPU还没执行完,会再分配一定的时间片。...

2021-01-16 18:27:18 146

原创 2020-11月份bug集合

***1.***一定要注意在多线程的运行环境下,list、map、set类都要换成线程安全的类。线程安全类:newConcurrentHashXXX();new CopyOnWriteXXX();总之不要用线程不安全的,坑太多***2.***依旧是多线程情况下,如果加签方法不是线程安全的,会造成请求对方时,变成一半能请求成功,一半验签失败。原来的对方的MD5加签方法protected static MessageDigest messagedigest = null; static {

2020-11-30 18:00:20 168

原创 第二章 java内存区域与内存溢出异常 ---笔记

第二章 java内存区域与内存溢出异常2.2 运行时数据区域1.程序计数器:为了线程切换后能恢复到正确的执行位置,每个线程都需要有一个独立的程序计数器,(线程私有内存)注:唯一一个没有规定任何内存溢出异常(OutOfMemoryError)情况的区域2.java虚拟机栈:java方法在执行的同时创建的一个栈帧(用于存储局部变量表等),也就是常常提到的栈内存。 局部变量表的空间在编译期间完成分配3.本地方法栈(Native Method Stack):给非java语言使用的虚拟机.

2020-11-30 17:34:45 88

原创 获取yyyyMMddHHmmssSSS形式时间戳

注意:1.Date和LocalDateTime是存在毫秒的,LocalDate只有日期;2.时间格式的大小写要严格写对,否则转换出来的时间是不对的;时间对应yyyy MM dd HH mm ss SSS 年 月 天 时 分 秒 毫秒方式一DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS").format(LocalDateTime.now())方式二new SimpleDateFormat("y.

2020-11-09 14:26:45 9025

原创 javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint

异常信息javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'org.hibernate.validator.constraints.NotBlank' validating type 'com.hcfc.fenqile.image.api.common.ImageTypeEnum'. Check configuration for 'imageType'2020

2020-11-04 18:40:37 384

原创 NoClassDefFoundError: org/springframework/cloud/client/loadbalancer/LoadBalancedRetryFactory

异常信息Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/cloud/client/loadbalancer/LoadBalancedRetryFactory基础依赖版本Spring boot 1.5.6.RELEASE + Spring cloudDalston.SR4问题:项目分为api、mian两个模块,两个模块引入的fegin依赖冲突了,导致项目无法启动;ap...

2020-11-04 13:55:29 1266

原创 2020.10月份bug集合

1.并行流操作List因为List是线程不安全的,所以不能用并行流操作,(hashtable是线程安全的)错误写法:List<String> lista=Lists.newArraryList(); listb.parallelStream().foreach(e->lista.add(e));多个线程操作,会出现list中后一个元素覆盖前一个元素,或者list中存入的是null正确写法:List<String> a=listb.stream().map(e-&

2020-10-10 16:20:09 95

原创 mysql 表设计小tips

只记录自己不会滴命名规范1.普通索引以idx_col1_col2命名,唯一索引以uk_col1_col2命名2.库名、表名、字段名支持最多64个字符,但为了统一规范、易于辨识以及减少传输量、禁止超过32个字符3.临时库、表名须以tmp加日期为后缀字符集规范4.UTF8字符集存储汉字占用3个字节,存储英文字符占用一个字节5.校对字符集使用默认的 utf8_general_ci;连接的客户端也必须使用UTF8MB4库表规范6.单表字段数上限30左右7.主键尽量采用自增方式,InnoDB表实际

2020-09-02 17:20:01 140

原创 8月份bug小总结

in查询 :在用mybatis或者mybatis plus时,一定要确保传进in的条件参数是有值的,否则会报sql异常。(呜呜呜!血泪警告!!!!)2.net.sf.JSONObject:获取参数时要使用 null!=JSONObject.get("")判断一下;如果一开始就使用JSONObject.getString(""),会报JSON异常,是因为第二种方式是获取的字符串,如果没有,就会报下面的异常Exception in thread "main" net.sf.json.JSONExce.

2020-09-01 14:15:29 161

原创 mysql 存在索引但是不能使用索引的情况

%LIKE 开头的查询eg: select * from user where name LIKE '%a%';数据类型出现隐式转换的时候 :使用正确的类型,才能使用索引eg: name类型为varchar,查询语句为 select * from user where name=1;不满足最左原则:查询使用复合索引的情况,第一个查询条件上没有索引,会全表扫描eg: age字段上没有加索引,不满足最左原则 select * from ..

2020-08-05 18:12:37 469

原创 Enum和Switch..case搭配使用

switch…case本身支持的变量类型有 :int、byte、short、char、string。官方解释:也就是说本身switch是不支持枚举的,需要做一定的转换代码示例:public enum Annonation { A("A", ""), B("B", ""); private String code; private String desc; Annonation(String code, String desc) { this

2020-06-16 14:20:49 1228

原创 策略模式简单代码示例(枚举方式)

入口 @GetMapping("/annonation") public String annonation(@RequestParam String annonId) { //确定使用哪个枚举 Annonation annonation = Annonation.valueOf(annonId); //调用相关枚举的具体实现方法。此处的参数是随意的,看抽象方法的定义,当然是为了之后的业务逻辑需要的数据 return annonation

2020-06-15 18:36:38 304

原创 事件驱动模型(简单示例代码)

注释都是自我理解,都是大白话,我回头忘了看一遍就能想起来事件触发的环境@Servicepublic class Context {//这个类是Spring的类,属于事件的幕后推手。看似无用,实则掌控全局 @Autowired private ApplicationEventPublisher applicationEventPublisher; public String test (String str){ applicationEventPublish

2020-06-05 16:18:24 905

原创 设计模式二之 简单工厂模式

简单工厂模式=工厂类+业务类+具体实现类自我理解:通过类的名字获取工厂中的对象,主要是工厂帮助生成了所需的对象,示例代码:工厂类@Service@RequiredArgsConstructor(onConstructor = @_(@Autowired))public class Factory { private final ApplicationContext applicationContext; public Object getBean(String beanId){

2020-05-26 16:12:01 193

原创 设计模式一之 策略模式

策略模式= 环境类+抽象策略类+具体策略类环境基础框架:spring boot优点:去除代码的耦合性,将之前的if…else…替换,将算法封装到某个类中遵序开闭原则示例代码环境类@Servicepublic class SimpleContext {/**map中的String是将具体策略类的名称映射进来**/ @Autowired private final Map<String, Strategy> strategyMap = new Concurrent

2020-05-25 18:24:37 279

原创 fastjson反序列化的两种具体实现方式

反序列化方式:1、Person person=JSON.parseObject("",new TypeReference<Person>(){});2、Person person=JSON.parseObject("",Person.class);JSONObject继承了JSON,使用哪个对象都可以的...

2020-05-03 16:19:26 892

原创 maven项目模块之间的互相依赖问题

报错信息:Error:java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [模块A,模块B,模块C] are excluded from annotation processing编译时就无法通过原因:maven項目在分模块进行...

2020-04-14 17:44:24 4334

原创 Redis学习笔记 一

一、redis为什么单线程,但是为什么速度很快?1.redis是基于内存进行处理的,不会有写读硬盘的速度限制;2.多路I/O复用模型,非阻塞I/O:redis可同时监察多个I/O流。当多个网络同时连接(多个I/O流事件)时,会唤醒阻塞的线程,以此顺序的处理已经就绪的I/O流;3.简单的数据结构:key-value模式;4.单线程:省去了各种线程的互相竞争关系,避免了线程的阻塞和死锁现象(上...

2020-03-22 18:11:47 190

原创 Springboot项目获取配置文件中的list参数(包括对象)

配置文件格式:config: cat: - color: 3450 name: 456配置类@Data@ConfigurationProperties(prefix = "config")@Component@RefreshScopepublic class ProductUtil { private List<Map<Str...

2020-03-15 18:04:32 3022

原创 java获取反射的三种方式

OrderInfo orderInfo=new OrderInfo(); Class or1=orderInfo.getClass(); System.out.println("通过创建对象的方式获取反射"+or1.getName()); Class or2=OrderInfo.class; System.out.println("通...

2020-03-11 17:51:30 257

原创 maven中内置的${}属性

事实上有六种类型的Maven属性:内置属性:*主要有两个常用内置属性${basedir}表示项目根目录,即包含pom.xml文件的目录;${version}表示项目版本。POM属性:pom中对应元素的值。例如${project.artifactId}对应了元素的值。常用的POM属性包括:${project.build.sourceDirectory}:项目的主源码目录,默认...

2020-03-11 15:19:45 1347

原创 BigDecimal类型比较大小

BigDecimal比較大小用compareTo,只不过返回的值不同小于 返回-1int c= new BigDecimal(12.00).compareTo(new BigDecimal(9999999));2.大于 返回1int b= new BigDecimal(12.00).compareTo(new BigDecimal(1));3.等于 返回0int a= n...

2020-01-07 14:42:15 847 1

原创 一定不要用equals比较BigDecimal类型!!!!血泪教训

一定不要用equals比较BigDecimal类型!!!!血泪教训1.equals System.out.println(new BigDecimal(12.00).equals(new BigDecimal(12)));//true System.out.println(new BigDecimal("12.00").equals(new BigDecimal("12")));//fals...

2020-01-07 14:34:51 1039 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除