自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

手写ArrayList

手写ArrayList

  • 博客(123)
  • 收藏
  • 关注

原创 mysql表字段支持表情

1,MySQL表字段支持表情设置ALTER TABLE poi_attribute_value MODIFY attribute_value TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;参考链接:https://www.cnblogs.com/tujietg/p/13358776.html

2020-12-09 15:14:30 45

原创 mysql offset用法

SQL查询语句中的 limit 与 offset 的区别:limit y 分句表示: 读取 y 条数据limit x, y 分句表示: 跳过 x 条数据,读取 y 条数据limit y offset x 分句表示: 跳过 x 条数据,读取 y 条数据

2020-11-21 16:39:48 89

原创 git常用命令

1,git每次操作代码都需要输入密码的解决办法git config --global credential.helper cache注:如果不想在每一次推送时都输入用户名和密码,你可以设置一个“credential cache”;最简单的方式就是将其保存在内存中几分钟,可以简单的运行git config --global credential.helper cache 来设置它。...

2020-06-02 21:47:57 80

原创 ElasticSearch重要知识点

text字段和keyword字段的区别1,将字段设置成keyword的时候,已有的值不会被分词;2,text类型的字段会被分词。参考文档:ES查询

2020-05-13 21:49:21 116

原创 ElasticSearch的Java API

BoolQueryBuilder查询的时候一般使用BoolQueryBuilder的filter方法,因为filter不会进行打分评估(计算_score的值),而must方法会计算,should也会。

2020-05-13 17:20:08 146

原创 Mysql常用SQL语句

1,查询表字段个数select count(*) from information_schema.`COLUMNS` where TABLE_SCHEMA='m_crm_analysis' -- 数据库名 and TABLE_NAME='journal'; -- 表名2,

2020-04-19 20:13:43 111

原创 Java中枚举类的ordinal()方法

定义一个枚举类:enum Season { SPRING, SUMMER, AUTUMN, WINTER}Enum类提供了一个ordinal()方法,用来返回枚举对象的序数,比如本例中SPRING, SUMMER, AUTUMN, WINTER的序数就分别是0,1,2,3。在某些情况下,我们需要根据这个序数生成我们需要的枚举对象。我们可以使用枚举类型的values()方法做到:...

2020-01-14 17:57:37 2475

原创 CURL简介

CURL:使用命令行的方式向远程的服务通过HTTP协议发送GET/POST请求,并获得来自远程服务器端的反馈。curl常用的参数有:-X 用来接请求参数,如:GET,POST,PUT,DELETE-d 用来标识客户端向远程服务器发送数据,数据的格式一般是json-H 用来标识请求头的信息...

2020-01-12 21:48:17 71

原创 使用YYYY-MM-dd遇到的坑

代码如下:public static void main(String[] args) { SimpleDateFormat yMd = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR...

2020-01-03 20:26:17 241

原创 Java8的reduce使用

public static void main(String[] args) { Stream<Integer> stream = Arrays.stream(new Integer[]{1, 2, 3, 4, 5, 6, 7}); //求集合元素之和 Integer result = stream.reduce(0, Integer:...

2019-12-31 15:50:03 213

原创 mac 安装homebrew

当我执行:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"时提示我:解决办法:1,如果提示 fatal: destination path ‘/Users/tanhq/.nvm’ already exists and is not an emp...

2019-12-25 17:36:30 56

原创 2019年年底面试了几家大型互联网公司

16年6月毕业的,毕业快3年半了,一直都在小公司待,可能是对目前公司(电商小公司)提供的平台,自己所做的一些项目(后台管理系统的项目,微服务项目),以及自己的薪资的不满等等原因,所以萌发了想要跳槽的冲动。年底面试了很多家公司,有了一些感受。中公教育去了之后就是2道面试题,对一个List集合对象进行分组排序;第二道题就是写2个SQL,分组排序和行列转换(用到了case when )。之后就是...

2019-12-09 19:32:45 179

原创 Redis缓存淘汰算法和淘汰策略

Redis常用淘汰算法:FIFO: First In First Out,先进先出算法,判断被存储的时间,离目前最远的数据优先被淘汰LRU:Least Recently Used,最近最少使用算法,判断最近被使用的时间,目前最远的数据优先被淘汰;LRU:Least Frequently Used,最不经常使用算法,在一段时间内,数据被使用次数最少的,优先被淘汰。Redis淘汰策略:...

2019-11-27 23:05:36 284

原创 一个内存泄漏问题的排查

监控的MEM一直居高不下:使用jstat命令查看gc的情况,发现YGC已经停止,一直在FGC,怀疑内存已经泄漏,堆内存中有大量无法回收的对象。然后查看gc日志,发现年轻代和老年代使用率达到99%,且Full GC后内存没有被回收。确定肯定是有对象无法被回收。把堆的dump文件下载下来,用eclipse的mat插件分析error.hprof文件:发现有个对象占用内存特别大:...

2019-11-25 00:36:10 250

原创 jstack命令定位死锁

同样的,写一个死锁代码片段,发布到虚拟机,访问引起死锁的接口。排查步骤:使用top或者jps定位到项目进程pid;[root@localhost webapps]# jps6944 springboot.jar7124 Jps获取进程pid后直接使用命令:jstack -l 6944,打印线程dump,然后全文搜索deadlockFound one Java-level d...

2019-11-24 23:56:31 117

原创 jstack命令排查线上问题

以一个例子来演示服务器CPU占用率过高的问题:代码:@RestController@RequestMapping(path = "/index")public class IndexController { @RequestMapping(value = "/param") public String param(){ int i = 0; wh...

2019-11-24 23:20:50 105

原创 设计模式之观察者模式

参考链接:观察者模式

2019-11-24 00:26:38 64

原创 设计模式六大原则

1.单一原则(Single Responsibility Principle):一个类只负责一项职责,尽量做到类的只有一个行为原因引起变化;a、业务对象(BO business object)、业务逻辑(BL business logic)拆分;2.里氏替换原则(LSP liskov substitution principle):子类可以扩展父类的功能,但不能改变原有父类的功能;(目的:增...

2019-11-23 23:44:57 34

原创 设计模式之工厂模式

工厂模式分为:简单工厂、工厂、抽象工厂。参考链接:工厂设计模式(三种)

2019-11-23 23:43:47 174

原创 设计模式之单例模式

单例模式中使用volatile的目的:禁止指令重排序DCL(Double Check Lock)双端检锁机制不一定线程安全,因为:在某个线程执行到第一次检测时,读取到的instance不为null时,instance对象可能没有完成初始化。解释:instance = new SingletonPattern();可以分为以下3步完成(伪代码)1.分配内存对象空间:memory = allo...

2019-11-23 22:45:30 81

原创 Java8 lambda表达式 list操作:转map,分组、过滤、求和、最值、排序、去重

演示代码如下:package com.dalingjia.LambdaStream;import lombok.Data;import java.math.BigDecimal;/** * Created by Administrator on 2018/7/9. */@Datapublic class User { private Integer id; ...

2019-11-23 15:26:58 1094

原创 面试经验

5年Java面试阿里P6阿里社招技术面试Java工作6年面试经验

2019-11-22 20:36:42 93

原创 Redis集群

关于Redis集群化方案,目前有三种:Twitter开发的twemproxy;豌豆荚开发的codis;Redis官方的redis-clusterredis-cluster架构图参考链接:Redis cluster集群

2019-11-22 12:14:57 49

原创 Redis之数据持久化

Redis有两种数据库持久化方案:RDB和AOFAOF:AOF就像MySQL库中的binlog一样,把每一次写操作以追加的形式记录在其中以文件的形式刷到磁盘里。默认使用fsync策略,Redis的性能依然很好(fsyhc是由后台线程进行处理的,主线程会尽力处理客户端请求),一旦出现故障,最多丢失1秒的数据。缺点:AOF文件的大小会随着时间线增大,一段时间后就会变得很大;如果要在一端以AO...

2019-11-22 11:02:24 49

原创 redis之跳跃表

参考链接:Redis源码解析之跳跃表

2019-11-21 21:32:02 47

原创 Nginx

Nginx是什么?是一个使用c语言开发的高性能的HTTP服务器及反向代理服务器。其特点是占用内存少,并发能力强。Nginx能做什么?反向代理,正向代理,负载均衡,HTTP服务器(动静分离)反向代理反向代理是指:以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客服端,此时代理服务器对外就表现为一...

2019-11-21 16:48:29 85

原创 类加载机制

参考博客:类加载机制

2019-11-17 23:10:42 45

原创 一致性hash算法

一致性hash算法是为了解决:当缓存机器节点增加或者减少时,出现缓存无法命中,导致直接访问数据库的问题。一致性hash算法解决了分布式环境下机器增加或者减少时,简单的取模运算无法获取较高命中率的问题。通过虚拟节点的使用,一致性hash算法可以均匀分担机器的负载,使得这一算法更具现实的意义。正因如此,一致性hash算法被广泛应用于分布式系统中。参考博客:一致性hash算法...

2019-11-17 11:36:44 2

原创 synchronized与ReentrantLock

synchronized的同步原理:底层用到了Monitor锁ReentrantLock

2019-11-17 11:35:24 43

原创 redis中bitmap的使用

1000万的用户进行打卡签到,一天使用的内存为10000000/8/1024/1024 = 1.19M参考链接:分布式缓存Redis之bitmap

2019-11-14 13:00:08 89

原创 CompletionService获取线程运行结果

使用CompletionService来实现对任意一个线程运行完后的结果的及时获取。它内部添加了阻塞队列,从而获取feture中的值,然后根据返回值做对应的处理。代码示例如下:package com.dalingjia.thead.future;import java.util.Random;import java.util.concurrent.*;/** * 先执行完的线程先处...

2019-11-13 21:48:57 59

原创 多线程的使用场景以及各个线程池的使用场景

1,多线程的使用场景使用多线程来上传大量视频,充分利用多核CPU资源;使用多线程来进行异步处理,由于业务逻辑时间较长,可以开启多线程去处理业务逻辑,主线程直接返回结果;使用多线程来统计1000000以内求得的素数个数,可以开启3个线程,第一个线程从2开始,每次+3;第二个线程从3开始,每次+3;第三个线程从4开始,每次+3;同时利用一个原子类来统计总的个数。final CountDown...

2019-11-13 21:16:27 338

原创 基于1.8的ConcurrentHashMap

ConcurrentHashMap1.8的底层数据结构如下:和1.8的HashMap类似1.8版本抛弃了原有的Segment分段锁技术,而采用了CAS+synchronized来保证并发安全性。也将1.7的HashEntry改为Node,但作用是相同的;其中val和next都用volatile修饰,保证了可见性。Node类如下:static class Node<K,V> im...

2019-11-09 14:46:16 104

原创 BAT面试题

1,多线程顺序执行**join()和newSingleThreadExecutor()** public static void main(String[] args) {// try {// thread1.start();// //main线程必须等待join线程执行完毕// thread1.join...

2019-11-09 11:26:37 2

原创 shell命令统计log日志中前10的IP

查看当前log日志文本:06-Nov-2019 09:40:10.512 INFO http://192.168.1.1 org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath06-Nov-2019 09:40:10.732 I...

2019-11-06 18:15:49 358

原创 MQ中如何保证幂等性

MQ中消费者如何保证幂等性问题,也就是如何防止消息被重复消费。解决办法:使用全局Message ID判断消费方是否消费过;使用业务逻辑保证唯一性(比如订单号码)参考链接...

2019-11-04 16:35:52 8

原创 Session和Cookie的区别

Session工作原理:浏览器第一次访问服务器的时候,服务器会在内存中创建一个session对象并返回一个Jsession=ID的值;在浏览器端会创建一个key=Jsession,value=ID的Cookie对象;浏览器在第二次访问服务器的时候会携带该Cookie信息,服务器从请求中提取出JSession=ID,并和保存的所有JSessionID进行对比;如果该Jsession=Id的se...

2019-11-04 10:24:12 43

原创 MySQL的事务隔离级别

什么是隔离性?隔离性是当多个用户并发访问数据库时(比如操作同一张表),数据库为每一个用户开启一个事务,且各事务之间互不干扰。什么是脏读,不可重复读,幻读?脏读:事务A读取了事务B中尚未提交的数据,如果事务B回滚了,则A读取使用了错误的数据。不可重复读:在事务A的两次读数据之间,由于事务B的修改导致事务A两次读到的数据可能是不一样的。这就发生了在一个事务内两次读到的数据不一样,这就被称作不...

2019-11-03 22:37:49 59

原创 SpringBoot自动装配

微服务:一个大的项目可以由多个业务模块构成(微服务),每一个业务模块可以作为一个项目,每个项目直接通过HTTP接口进行调用。spring boot可以快速开发微服务,即每一个模块。springboot的好处:简化J2EE的开发;整个spring技术栈的整合(整合springMVC和spring);整个J2EE技术的整合(整合Redis和mybatis等)springboot的目录结...

2019-11-02 21:35:17 214

原创 分布式事务常见解决方案

2019-11-02 21:34:47 49

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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