- 博客(395)
- 资源 (46)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 颈椎病及腰椎间盘突出病因病理
前言腰椎间盘突出和颈椎病是程序员的职业病,现在患病的年龄越来越小,很多新生代程序员认为这个病是老年病,现在年轻没问题,这是错误的想法和认知,这不我才工作一年,职业都还没稳当,职业病倒是稳稳当当了。患病很着急害怕。所以去查了关于此病的病因病理在此与各位分享一下,希望各位能够重视,重视自己的坐姿,自己的锻炼。生病真的太难受了。。。。。椎间盘突出症脊柱退行性疾病是临床上常见的一类疾病...
2018-03-31 23:28:14
6744
17
原创 飞猪-招聘java开发工程师,我们一起做同事
2)独立按产品需求完成系统分析、方案设计和编码实现,确保项目的交付进度和质量,同时保证系统的安全、稳定和性能。3)对于Java基础技术体系(包括JVM、类装载机制、多线程并发、IO、网络)有一定的掌握和应用经验。3)理解业务,识别完善需求,参与架构、系统、分析设计等多领域项目的相关技术的实践、应用和研发。5)具有比较强的问题分析和处理能力,有比较优秀的动手能力,热衷技术,精益求精,有一定的技术癖。6)热爱技术,工作认真、严谨,具备较强的学习能力和责任心,能自我激励,善于沟通与团队协作。
2023-06-29 10:03:16
354
原创 slf4j 日志门面模式应用(双亲委派特例)
SLF4JSLF4J是一个日志抽象库 (Simple Logging Facede For Java 简单日志门面 ),它相当于一个服务的接口,具体的日志功能是有其中的日志框架去实现的,slf4j 可以在部署的时候接上想要使用的日志框架。通俗来说SLF4J是一个日志抽象库,必须和其他日志库配合才能正常运行。一般来说,需要将抽象层(例如slf4j-api-xx.jar)+ 中间层(例如slf4j-log4j12)+ 实现层(例如log4j)这三层都配置好才能保证SLF4J正常运行。另外,有的日志库可以
2022-03-17 21:39:20
1326
原创 X里、X迅、X团、X度、X手的面试总结
背景过完年跳槽进了大厂,虽然不是第一次进大厂,其实也是第一次进,因为之前取x团就待了不到三个月,还因为腰突症状请假较多,没有实际的太多感受。这次已经呆了6个月其中有些许感悟,就总结的记录一下,也是自己的成长经历。面试换工作面试是跨不过去的坎,因为疫情陆陆续续面试了一个月,当时也没有准备好,朋友就帮我推荐了阿里云,一面技术面没问题,然后在二面业务的时候被挂掉了。当时也是思路和话术很混乱,现在想想也是回答的不怎么样。不过这也是算事是推动我开始面试的第一步,从阿里云之后就开始开始投简历,一个月陆续面了腾
2021-09-12 20:10:54
1149
原创 总结:一文死磕 synchronized 和 AQS 系
先将ReentrantLock跟常用的Synchronized进行比较,其特性如下ReentrantLockSynchronized锁实现依赖AQS监视器Monitor模式灵活性支持响应中断、超时、尝试获取锁不灵活释放形式必须显示的调用unlock()释放锁自动释放监视器锁类型公平锁&非公平锁非公平锁条件队列可关联多个队列关联一个条件队列可重入性可重入可重入1. synchronizedsynchronized关键
2020-12-11 14:53:21
5185
原创 Java 并发关键字大练兵—一文读懂各个关键字
Java 并发大练兵本文介绍了Threadlocal、volatile、condition、Semaphore、CountDownLatch、unsafe 等关键字目录如下:Threadlocal 本地线程volatileconditionCountDownLatch 闩锁CyclicBarrier 篱栅Semaphore 信号灯unsafe 魔法类StampedLock 新读写锁https://github.com/527515025/JavaTest/tree/dev/src/
2020-12-09 15:44:14
921
6
原创 阿里真题:线程交叉打印
leetcode 1115. 交替打印FooBar 多线程交替打印五种方案实现多线程交替打印。涉及 CyclicBarrier 篱栅、回环屏障 、Semaphore 信号灯、ReentrantLock、synchronized、AtomicBoolean 无锁cas 。全部都已经在leetCode 提交通过代码如下:ReentrantLock 方案 /** * 方案3 ReentrantLock */ class FooBar3 { private i
2020-12-09 15:04:41
546
原创 一文分清23种设计模式-设计模式及PK小结
设计模式是为了可重用代码(可重用)、让代码更容易被他人理解(可读性)、保证代码可靠性。设计模式不是一种方法和技术,而是一种思想。1. OOP三大基本特性封装封装,也就是把客观事物封装成抽象的类,并且类可以把自己的属性和方法只让可信的类操作,对不可信的进行信息隐藏。继承继承是指这样一种能力,它可以使用现有的类的所有功能,并在无需重新编写原来类的情况下对这些功能进行扩展。多态多态指一个类实例的相同方法在不同情形有不同的表现形式。具体来说就是不同实现类对公共接口有不同的实现方式,但这些操作可以通过相
2020-11-18 14:25:02
1830
1
原创 一文明白JVM-万字长文,遇人随便问
JVMJVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。1. 类加载Java 语言是一种具有动态性的解释型语言,类(Class)只有
2020-11-01 21:17:07
1422
2
原创 单例模式-一问到底
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式。在 GOF 书中给出的定义为:保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式一般体现在类声明中,单例的类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例模式有以下两个优点:在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如网站首页页面缓存)。避免对资源的多重
2020-10-25 20:22:33
492
原创 一文读懂mysql-万字长文,肝就完了
1.存储引擎1.1 innodb提供了对数据库 ACID事务 的支持提供了 行级锁和外键的约束。InnoDB的行锁也是分为行级**「共享读锁(S锁)「和」排它写锁(X锁)」**,原理特点和MyISAM的表级锁两种模式是一样的。设计的目标就是 处理大数据容量 的数据库系统会出现死锁,但是 InnoDB的支持的并发性能比MyISAM好, 行锁的粒度最小,一定的方法和措施可以解决死锁的发生,极大的发挥InnoDB的性能InnoDB中引入了 间隙锁 的概念来决解出现 幻读 的问题,也
2020-10-22 23:54:52
960
1
原创 一文读懂zookeeper--万字长文肝就完了
1. zookeeper在分布式集群的作用1.1,数据发布与订阅(配置中心)发布与订阅模型,即所谓的配置中心,顾名思义就是讲发布者将数据发布到zk节点上,共订阅者动态获取数据,实现配置的集中式管理和动态更新。例如,全局的配置信息,服务服务框架的地址列表就非常适合使用。分布式环境下,配置文件管理和同步是一个常见问题一个集群中,所有节点的配置信息是一致的,比如 Hadoop 集群、集群中的数据库配置信息等全局配置对配置文件修改后,希望能够快速同步到各个节点上。配置管理可交由 ZooK
2020-10-16 16:40:19
2161
2
原创 Java集合 Queue、LinkedList、PriorityQueue、Deque、ArrayDeque及 native函数
Queue接口Queue用于模拟了队列这种数据结构,队列通常是指“先进先出”(FIFO)的容器。队列的头部保存在队列中时间最长的元素,队列的尾部保存在队列中时间最短的元素。新元素**插入(offer)**到队列的尾部,**访问元素(poll)**操作会返回队列头部的元素。通常,队列不容许随机访问队列中的元素。常用方法1. 入队**void add(Object o):** 指定元素加入队列尾部boolean offer(Object o):同上,在有限容量队列中,此方法更好2. 出队*
2020-10-11 19:02:46
745
原创 表达式解析器Mvel2.0(MVFLEX Expression Language)
表达式解析器Mvel2.0(MVFLEX Expression Language)时间过的好快,突然就发现,已经过去一两年了,这一两年博客也写的不多,快要进入中年了,最重要的就是自律。要好好睡觉,好好学习,好好工作。废话不多说,这次给大家说的是 表达式语言解析Mvel2.0简介MVEL为 MVFLEX Expression Language(MVFLEX表达式语言)的缩写,它是一种动态/静态的可嵌入的表达式语言和为Java平台提供Runtime(运行时)的语言。最初是作为一个应用程序框架实用程序的语
2020-08-14 16:48:07
6555
原创 Java8重新认识HashMap
本文Java 版本 1.8.0_92-b14引子前段时间,朋友问了一道力扣算法题,求两数之和。题目是给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。要求时间复杂度:O(n)我们把包含有 nn 个元素的列表遍历两次。由于哈希表将查找时间缩短到 O(1)O(1) ,所以时间复杂度为 O(n)。空间复杂度:O(n)所需的额外空间取决于哈希表中存储的元素
2020-06-28 11:31:41
649
原创 es的term 、terms 和 match、range 和缓存
es 的term 、terms 和 match、range 和缓存本文是学习es的中文官网,自己的学习总结整体数据插入及查询流程数据存入将新接收的数据存在buffer中,数据分词处理后,新建倒排索引 生成segment文件, (正常是在将数据写入磁盘时生成segment )但为了实时性, 把这个segment 刷到文件系统缓存中, 此时lucene可以检索这个新生成的segment, 为了保证数据的安全性(服务宕机丢失缓存数据), ES在在把数据写到内存buffer的时候同时还记录了一个trans
2020-06-01 20:51:48
11991
2
原创 shell 小技巧字符串-中(下)划线转驼峰
帮朋友写的小列子,需要中划线转驼峰例如:user-id 转换为 userId百度了一下发现竟然没有人写这个小李子,所以就贴出来了。#!/bin/bashPARA=$1arr=(`echo $PARA | tr '-' ' '`) result=''for var in ${arr[@]}do firstLetter=`echo ${var:0:1} | awk '{print toupper($0)}'` otherLetter=${var:1} resul
2020-05-14 17:57:17
2959
原创 Rust 初识及Rust的ESApi
RustRust是一门系统编程语言 ,专注于安全 ,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和C++类似 ,但是设计者想要在保证性能的同时提供更好的内存安全。Rust致力于成为优雅解决高并发和高安全性系统问题的编程语言 [10] ,适用于大型场景,即创造维护能够保持大型系统完整的边界。这就导致了它强调安全,内存布局控制和并发的特点。安装curl https://sh.rustup.rs -sSf | sh安装完成后,开始在idea 中配置r
2020-05-14 17:13:06
1516
原创 mysql DISTINCT去重,返回去重后的所有字段
一天一个mysql小技巧问题:distinct 对某一字段去重,返回记录所有字段值,但是记录其它字段也有重复值,导致无法返回。描述:在使用mysql时,有时需要查询出某个字段不重复的记录,distinct 关键字可以过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回所有值。其原因是 distinct只能返回它的目标字段,而无法返回其它字段。用distinct...
2020-04-21 17:55:41
13579
6
原创 java8 小技巧保证分组groupingBy后排序不变
问题:遇到一个小问题,查询出来一组数据后,按照其中的属性进行groupBy 分组 ,分组后要保证顺序不变。排查首先去api中查找解决//一个参数 public static <T, K> Collector<T, ?, Map<K, List<T>>> groupingBy(Function<? super T, ? ex...
2020-03-03 14:45:59
20444
6
原创 docker安装ES及ik插件和ES常用查询语句
es docker 安装安装过程如下:首先在docker hub 拉取elk 镜像 (因为我用的是630 版本所以加了版本号)https://hub.docker.com/r/sebp/elk关于容器更多信息查看 https://elk-docker.readthedocs.io/docker pull sebp/elk:630 启动命令( 如果想在后台启动容器的话可以 加 -d ...
2020-02-24 17:53:19
4117
原创 springboot+es(二)多数据源配置
上一篇文章简单写了 springboot 和 es 的使用 点击查看这一篇说一下多数据源以及多种查询情况的语句多数据源配置在config 文件夹下新增数据源配置,有几个数据源就新增几个配置类,例子是老师信息数据源 和学生信息数据源两个 。引入依赖 <dependency> <groupId>org.elasticsearch.client...
2020-02-24 17:23:59
8280
1
原创 py定时库APScheduler初识及 skipped: maximum number of running instances reached 错误排查
需求手头小程序,需求python写个定时脚本,调用java 程序清理程序一些脏数据。临时找到这个 APScheduler 定时库,准备用一次简介简单介绍如下:高级Python调度程序(APScheduler)是一个Python库,可让您安排稍后执行的Python代码,可以是一次,也可以是定期执行。 您可以根据需要随时添加新作业或删除旧作业。 如果将作业存储在数据库中,它们也将在调度程序重...
2020-01-08 11:15:27
10847
原创 RocketMq 初识和springboot-rockerMq
介绍:消息队列(Message Queue,简称MQ)。消息中间件作为实现分布式消息系统可拓展、可伸缩性的关键组件,具有高吞吐量、高可用等等优点。优势:削峰填谷(主要解决瞬时写压力大于应用服务能力导致消息丢失、系统奔溃等问题)系统解耦(解决不同重要程度、不同能力级别系统之间依赖导致一死全死)提升性能(当存在一对多调用时,可以发一条消息给消息系统,让消息系统通知相关系统)蓄流压测(线上...
2019-12-22 16:48:56
1969
原创 红黑树学习及Java实现
BST二叉查找树(Binary Search Tree,简称BST)是一棵二叉树,它的左子节点的值比父节点的值要小,右节点的值要比父节点的值大。它的高度决定了它的查找效率。在理想的情况下,二叉查找树增删查改的时间复杂度为O(logN)(其中N为节点数),最坏的情况下为O(N)。当它的高度为logN+1时,我们就说二叉查找树是平衡的。BST存在的问题BST存在的主要问题是,数在插入的时候会...
2019-10-31 17:49:57
3681
5
原创 SpringBoot 通过拦截器验证Referer 防御CSRF攻击
问题:**CSRF概念:**CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。如下:其中Web A为...
2019-10-10 19:05:13
12111
2
原创 分布式锁浅谈之redis锁
Redis 分布式锁业务:用于库存扣减,因为是微服务架构所以 jvm 级别的锁都不满足需求。故考虑分布式锁A:服务获取锁 修改库存 释放锁背景:在单机时代,虽然不存在分布式锁,但也会面临资源互斥的情况,只不过在单机的情况下,如果有多个线程要同时访问某个共享资源的时候,我们可以采用线程间加锁的机制,即当某个线程获取到这个资源后,就需要对这个资源进行加锁,当使用完资源之后,再解锁,其它线程就可...
2019-09-28 16:49:19
1145
原创 springboot+dubbo+validation 进行 rpc 参数校验
注意:本文dubbo 版本 2.8.4 springboot 版本 2.0.4.RELEASE项目结构test-rest (前端消费着,controller 层,springboot+maven项目)test-api (dubbo服务 的 api ,只记录 service 接口和 model ,maven 项目)test-provider(dubbo 服务提供者,实际的数据库操作及业务层...
2019-09-22 17:55:11
9910
原创 Java 读写csv
本文结构:废话动手读csv写csv工作中需要读写csv,由于csv 文件较大,数据比较多,所以需要选择一个速度快的csv 读取插件。经过比较选择opencsv 。官方解释:Opencsv是一个易于使用的CSV(逗号分隔值)解析器库。之所以开发它,是因为当时所有CSV解析器都没有商业友好的许可证。Java 7是目前支持的最小版本。Opencsv支持您可能想要做的所有基本CSV类型的事情...
2019-08-02 18:06:14
5327
1
原创 Java IP 地址服务 GeoIP
本文内容介绍动手什么是GeoIP地理知识产权数据库与服务:业界领先的知识产权情报Geoip 是 MaxMind 的IP智能产品GeoIP由多个相关产品组成。GeoIP允许您发现关于特定IP地址的信息。提供web服务、基于订阅的可下载数据库和免费的可下载数据库,MaxMind GeoIP2产品为内容个性化、欺诈检测、广告定位、流量分析、遵从性、地理定位、地理防护和数字版权管理等广泛应用...
2019-08-02 18:01:28
3662
2
原创 drools 基于数据库实现动态规则
drools 基于数据库实现动态规则,即为将规则文件字符串 存在数据库中,然后规则引擎执行的时候将规则从数据库中读取出来,写入到规则引擎KieFileSystem中,加载规则。从而实现,修改数据库后,即可及时执行规则。创建springboot + mybatis 项目https://abelyang.blog.csdn.net/article/details/89296273导入drools...
2019-06-12 16:12:09
17751
10
原创 drools 基于jar包实现动态规则
Drools中提供了一个类KieScanner,可以支持从Maven存储库动态的加载并更新规则。官方给出的例子没有很好的证明这一能力。项目演示共分三个包:springboot-drools-dynamic-rules: springboot 和 drools 的结合,drools运行于此,并对外提供rest 接口服务springboot-drools-dynamic-rules-api...
2019-06-12 16:08:31
5014
原创 java调用shell脚本执行spark任务错误
java调用shell脚本执行spark任务使用java通过 Runtime.getRuntime().exec(); 调用shell 脚本,在脚本中执行 spark 任务会报错,如下:19/05/15 15:46:47 WARN StandaloneAppClient$ClientEndpoint: Failed to connect to master 192.168.9.2:7077...
2019-05-16 14:23:23
1391
原创 Springboot多数据源切换
Springboot-DynamicDataspringboot 多个数据源的配置解决问题, 一个springboot 项目操作多个数据库的数据新建springboot项目 添加pom依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> ...
2019-04-14 14:44:07
7010
1
原创 springboot+es
springboot-es本文 :Elasticsearch 与 sprigboot 的结合,springboot 操作es关于es 的介绍和初识 可以看 https://blog.csdn.net/u012373815/article/details/50460248安装https://blog.csdn.net/u012373815/article/details/50463792...
2019-04-14 14:42:34
7612
4
原创 springboot+Kafka
springboot-Kafka本文 :kafka 与 sprigboot 的结合,springboot 从Kafka中读取数据关于Kafka的更多介绍:https://blog.csdn.net/u012373815/article/category/6385580配置依赖新建springboot项目 配置pom.xml 文件 <dependency> ...
2019-04-14 14:41:36
3776
2
原创 springboot 整合mybatis2
1. 导入依赖的jar包新建maven项目导入 springboot和mybatis所需依赖 配置pom.xml文件如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/...
2019-04-14 14:39:04
7065
4
原创 mapstruct 实体转换及List转换
开发中,我们经常需要将PO转DTO、DTO转PO等一些实体间的转换。比较出名的有BeanUtil 和ModelMapper等,它们使用简单,但是在稍显复杂的业务场景下力不从心。MapStruct这个插件可以用来处理domin实体类与model类的属性映射,可配置性强。只需要定义一个 Mapper 接口,MapStruct 就会自动实现这个映射接口,避免了复杂繁琐的映射实现。MapStruct官网地...
2019-03-09 16:07:44
43965
1
原创 Drools Fusion(CEP) 初尝
从 Drools 统一行为建模平台的视野看,Drools Fusion 是负责启用事件处理行 为的一个模块。定义支持复杂事件处理,是比简单的理解事件是什么要更多得多,cep场景具有几个共同而明显的特点:通常需要处理巨量的事件,但是只有少部分事件是真正关心的。事件通常是不变的,因为它们是状态改变的一条记录。通常有关事件的规则和查询必须是运行在被动模式(reactive modes),即,...
2019-03-01 18:05:23
2137
2
MVEL 2.doc
2020-08-14
springmvc和mybatis整合包括json和validator 和文件上传所需所有jar包
2015-08-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人