自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

新一的技术笔记

zero is start, so never give up

  • 博客(286)
  • 资源 (2)
  • 收藏
  • 关注

原创 [算法]写算法时候需要记住的小技巧

1. 对于字符串可以使用toArray()2. 字符串相加中: public String addStrings(String num1, String num2) { StringBuilder res = new StringBuilder(""); int i = num1.length() - 1, j = num2.length() - 1, carry = 0; while(i >= 0 || j >= 0){

2020-07-10 16:58:14 378

原创 [MYSQL]mysql的优化思路

1.从哪些角度可以进行思考?字段选取:进行节衣缩食,选取最合适的字段属性索引相关:怎么建立索引?联合索引和覆盖索引?数据页相关:页分裂,页合并,索引重建语句相关:使用count(1),使用join的须知,使用group by 和order by 的须知,多用 limit,尽量不使用NOT IN和like语句操作,UNION-ALL代替UNION。事务相关:比如容易引起锁竞争的行放在事务语句的后面。适当的选取事务隔离级别也对优化有帮助。分库分表:用什么样的策略分库分表?找到瓶颈所在

2020-06-17 15:38:22 290

原创 Spring优雅重试@EnableRetry

Spring优雅重试@EnableRetry

2023-03-15 01:50:13 663 1

原创 java 获取上周开始时间和结束时间,上上周开始和上上周结束时间

java 获取上周开始时间和结束时间,上上周开始和上上周结束时间

2022-12-08 14:14:47 2142 1

原创 计算list的字节数/mb数

java list的字节数

2022-11-01 16:33:04 2273

原创 [mac]idea因为破解打不开,如何找到Mac下自己的路径

[mac]idea因为破解打不开,如何找到Mac下自己的路径

2022-06-10 00:19:17 1516 1

原创 mysql按照字典序排序

ORDER BY CONVERT(fieldUSING gbk) COLLATE gbk_chinese_ci ASC;有时候直接order by field,并不起作用,这时候需要转换一下

2022-04-25 17:25:18 1892

原创 获取昨天的日期Date格式,用于between操作

public static void main(String[] args) throws ParseException { Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -1); String yesterday = new SimpleDateFormat( "yyyy-MM-dd").format(cal.getTime()); String yesterdayStart = y.

2022-03-18 15:51:45 431

原创 mysql的format的坑,保留两位小数出现了-0.00

mysql的format的坑,保留两位小数出现了-0.00

2021-12-10 19:12:51 1070

原创 [mysql]binlog和redolog有什么区别?

前言可能会考的面试题,我都把redolog原理看一遍了。那么,这个问题怎么回答呢?回答1.redo log 是innodb独有的,binlog是server层实现的,所有引擎都能使用;2.redo log大小固定(可以设置),buffer pool的记录落盘后,日志就可以被覆盖了,无法保证用于数据回滚;3.redolog 更多是为了保证,异常宕机了,之后我们可以根据redo log把没有刷到磁盘中的数据恢复。因为我们的数据都是先写到buffer pool的,然后刷到磁盘中,俗称脏

2021-09-02 02:38:22 1068

原创 [mysql]mysql的原子性是怎么实现的?(undolog的实现原理)

前言没看看redolog和undolog的实现,还真不敢说这个原子性是怎么实现的。看完觉得主要分为两方面吧。[mysql]innodb的redolog1. 从redolog的角度规定在执行这些需要保证原子性的操作时必须以组的形式来记录的redo日志,在进行系统崩溃重启恢复时,针对某个组中的redo日志,要么把全部的日志都恢复掉,要么一条也不恢复。...

2021-09-02 01:05:19 3661 3

原创 [redis]redis的热key问题

前言今天被问到,redi的热key问题,怎么解决?挺经典的,但是回答的也不好,做一个记录。因为和面试官探讨了一下,看看他想要的答案是什么,来进行补错。问题瞬间有几十万的请求去访问redis上某个固定的key,从而压垮缓存服务回答我的想法当时是:1. 提前缓存热key2.多增点机器,然后把热key每台都放一下(我甚至想到cdn 不要干啥都想到cdn,跟这个场景也没那么相关,多加思考)面试官想听到的是:1.利用本地缓存2.业务进行分散热key,比如加个

2021-09-01 23:30:26 271

原创 [mysql]innodb的redo log

前言今天被问到,之前也没太在意这个事情。今天被问到就好好刷一遍。常见问题1. mysql是怎么实现原子性的?2.redo log 和 binlog有什么区别?那么先看一下redolog吧<以下内容学习摘选自 《MySQL 是怎样运行的:从根儿上理解 MySQL》>redo log如果没有redolog,我们的痛点是什么:在真正访问页面之前,需要把在磁盘上的页缓存到内存中的Buffer Pool之后才可以访问事务的更改也是要写到buffer p

2021-09-01 21:49:19 562

原创 [jvm] g1有什么缺点?

前言g1回收器,很强大有什么缺点呢?回答个人认为:因为g1 需要rset,也就是卡表(老年代新增的卡表),所以用这个东西来记录新生代和老年代之间的引用关系。(简单讲,更占用内存了)所以堆内存小的,可能不如用parnew +cms 来的块...

2021-09-01 16:07:55 601

原创 [集合]ConcurrentHashMap的put操作(cas体现在了哪),版本1.8

前言这个hashmap被问到了put操作的过程,里面到底是怎么使用到cas操作的?https://blog.csdn.net/pmdream/article/details/107089225很久很久以前,一年前撸了一遍这个原理和源码,现在已经不记得了,先单独拿出put来看看源码分析1.8版本的put 就会调用putval的方法~ final V putVal(K key, V value, boolean onlyIfAbsent) { .

2021-09-01 14:49:24 4002

原创 [mysql]我们业务中replace into会有什么问题?

前言其实业务应该尽量少的使用replace into;问题如果是有id 且有唯一索引的话,按照联合索引做replace into,主键在数据库里面是先delete 然后再insert但是binlog的话,相当于是 id before 8 after 9 相当于只是改了主键的值,因为按照联合索引来去replace into,主键是递增的情况。这样到了binlog 友富那边取出来的就是 update set id = 9 where id =8那这样肯定是不对的,所以再抽取.

2021-09-01 01:46:25 1136

转载 [jvm]频繁full gc怎么优化

前言今天被问到,如果频繁full gc怎么排查,怎么优化?服务要怎么来手动触发full gc呢?盲猜频繁fullgc,那肯定是老年代不够用了;所以要么就是有巨大对象老是塞进去,要么就是老年代的碎片严重;使用工具抓一下内存,分析一下,哪些对象是最多的,是否合理。老年代大小参数设置错误;分析如果是一次fullgc后,剩余对象不多。那么说明eden区设置太小,导致短生命周期的对象进入了old区。如果一次fullgc后,old区回收率不大,那么说明old区太小。

2021-09-01 00:52:03 3442

原创 [面试todo]今日面试面经

之前一直执着于java 后面还是得看看数据相关的东西主要还是多准备一下flink和kafka1. flink的反压机制2. flink的window实现机制3.checkpoint的实现机制kafka1.kafka的特点,对比别的mq2.kafka 的消息是怎么存储的?3. kafka的offset 与业务消费的顺序问题?4.kafka的怎么保证消息不丢失...

2021-08-30 12:06:26 139

原创 [kafka]kafka的事故和处理

前言公司发生过kafka的事故,集群挂了导致数据域各种服务都跪了,然后都需要回溯任务。为啥会发生这种事呢?该怎么处理呢?虽然不是op,但是rd还是了解了解也挺有趣的~我之前就了解了这个事情,现在写写记录一下~事情的大概原因事情需要脱敏讲讲~zk集群重启操作,导致脑裂,导致kafka的集群受影响不可用。一般为啥要重启zk呢,因为会发现某个命名空间的写入量持续增加,就重启了一下。但是zk的地址填错,比如填本机地址;(程序员经常干这个事)后面一些异常操作,又导致了有zk启

2021-08-30 01:52:41 574

原创 [kafka]kafka的基础架构

前言传送门-尚硅谷kafka基础架构看了这个视频的学习笔记,同时也买了书和掘金小册。都一起看看吧~这次找工作不能太着急,要自信一点。唉,缺乏自信,觉得自己太菜了。不过,学技术和赚w都是很重要的,并不丢人,加油dk。概览图就直接借用了尚硅谷的视频中的图。需要注意的是:一个消费组内的消费者a 和消费者b,他们都是对leader分区进行的读写,而且,假如a正在读0号分区,那么同个消费组内的b就读不了这个0好分区了。zk:zk需要注意的是,0.9版本之前,..

2021-08-30 01:26:36 192

原创 [kafka]kafka中的zookeeper是做什么的?

前言ZooKeeper是什么?一个典型的分布式数据一致性解决方案,分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。kafka中的zookeeper~Kafka严重依赖于ZooKeeper集群。所有的broker在启动的时候都会往zookeeper进行注册,目的就是选举出一个controller,controller会读取注册上来的从节点的数据(通过监听机制),生成集群的元数据信息,

2021-08-29 21:28:20 4078

原创 [redis]持久化

前言redis的持久化可能要配合mysql的redolog 一起看理解,还有binlog。都差不多的玩意~回头补一下es的实现~做事情要学会类比,学习工具里面的思想,看看能不能用到业务中去~做一个高逼格的人 嘿嘿...

2021-08-29 01:21:44 213

原创 [redis]lru的实现和lru的模拟代码

前言redis的lru是近似lru算法,其实就是每个key里面都有存,最后一次访问这个key的时间戳24位1.因为lru需要很多内存,额外的内存,所以用近似lru2.那么我们就可以用随机采样法淘汰元素,而且处理方式是懒惰删除。3.一旦发现内存超过阈值,maxmermory,那么就随机采样出五个key,淘汰最久的key,如果淘汰后还是超过,那么久继续淘汰直到内存低于maxmemory;这个5可设置~具体的lru实现代码package com.dk.learndemo.al

2021-08-29 01:16:45 261 1

原创 [redis]redis的安全

前言关于redis的安全,面试可能不会问。但是lua脚本一般还是尽量不要用的~那么怎么尽量保证redis安全呢?危险的指令1. redis keys尽量不要用;2. flushdb 和 flushall 会让redis的所有数据全部清空;3. redis 可以提供 rename-command 指令可以将某些危险的指令,修改成特别的名称;用来避免认为的误操作;比如 rename-command flushall ""端口安全redis 默认端口 ,如果当前

2021-08-29 00:06:21 264

原创 [redis]知识合集

前言问了问同事面经,大厂也是,也都会问jvm 和 redis mysql什么的~不管是业务岗还是大数据平台岗位redis整体还是很常见的问题,死磕也都还好~常见问题1.redis用的单机集群?分布式锁怎么实现?redis挂了怎办?集群,一般副本有三个吧,运维平台能看到,分布式锁用redission实现分布式锁;redis挂了用redlock的方式,选举的方式来进行补救~集群一般都是插槽形式,在外界看来就是单个redis2.redis 删除机制https://blog.cs

2021-08-28 23:16:24 101

原创 [redis]使用规范

前言个人整理~主要是参考《redis深度历险》-钱文品里面提到好多有用的点~感谢大佬的书禁止事项:严格禁止超大Key(Value值超过10KB) 禁止大量key设置同一时间失效,否则可能会同时过期,影响到redis线上服务卡顿(因为同时过期还会让redis 定时扫描策略,会循环多次扫描过期字典,直到过期的key变得稀疏,会导致线上读写操作出现明显的卡顿) 禁止戒指用del删除大对象,因为删除大对象,比如一个上千万的hash,那么就会造成卡顿,应该使用unlink,后台异步回收线程(建

2021-08-28 23:09:02 136

原创 [面试必备]StringBuffer的append 源码解析

目录前言源码appendtoStringCacheappend数字的源码append 字符串的源码ensureCapacityInternal扩容的新的容量计算函数newCapacitydebug过程前言因为有面试官问到,StringBuffer是怎么实现append的;简述一下思路就行那么想到的肯定是动态数组哇,但是我想的是,不用每次都new 一个数组;不用频繁的移动字符串数组。基本描述是ok的~但是看看源码没毛病dkdk 加油加油,后面再写

2021-08-26 17:09:31 634 1

原创 [java]自动拆箱装箱

目录前言总结示例代码booleanInteger练习题前言遇到问题,就亲自写一写,源码看看。总结比如integer:Integer a = 11;系统自动帮我们执行:Integer a = Integer.valueOf(11);int b = a;系统自动执行了:int b = a.intValue();所以我们需要关注 valueOf 和 intValue;原始类型:byte, short, char, int, long, ...

2021-08-26 14:17:54 76

原创 [面经]石头科技

stringbuffer 是怎么实现append的 synchronized 果然还是面面试能知道哪里还在含糊不清.这个东西如果一个class 两个func一个public staiticsynchronized funcA(){//...操作一个hashmap}public synchronized funcB(){//...操作一个hashmap}那么这两个会有线程安全问题吗?主要的点在于,staitic是class级别,不带...

2021-08-24 15:09:39 1165

原创 [线程]操作系统线程是怎么切换的(用户态的内部切换)

前言多线程,会减少内核态,用户态的切换,从而提高性能。关于这块得好好学习处理一下。操作系统(哈工大李治军老师)32讲(全)超清这个课程中,用户级别线程和内核级别线程的课程之后得看一下。简述在没看这个课程之前,为什么要有线程,大概是这样的?因为一个进程,要进行多个指令,如果访问地址,需要有地址,要回到映射表中。执行不下去了,进程要切换,那么一个执行指令序列,要切换到另外一个执行指令序列,比如A函数 从b函数执行, 那么我们只切换指令,不切换映射表,那么就是线程了。所

2021-08-24 01:16:10 7454 1

原创 [线程]线程池的使用和7个参数的含义

前言线程池是一个很重要的面试点。面试前总是看看各种文字。不如自己整理整理,看看代码底层。面试也是关心1. 参数都是什么意思2. 有几种线程池,几种拒绝策略3. 底层源码4. 有哪些坑,线上遇到过问题吗?线程池的参数含义 /** * Creates a new {@code ThreadPoolExecutor} with the given initial * parameters. * * @param corePoo

2021-08-23 17:32:32 283

原创 [线程]java的线程状态以及如何新建线程

public enum State { /** * Thread state for a thread which has not yet started. */ NEW, /** * Thread state for a runnable thread. A thread in the runnable * state is executing in the Java virtua.

2021-08-23 14:26:29 202 2

原创 [mysql&flink]关于同步数据,binlog怎么做增量

前言之前探讨的,整理一下简单的思路mysql -> hive 进行同步。主要的问题点在于,订阅增量 以及初始化,之间是有时间间隔的。怎么做才能保证数据的准确性前提:都是通过canal 读取binlog。canal进行抽数。弄到kafka 然后flink进行消费。解决方案方案1. 可以使用flink cdc进行消费https://blog.csdn.net/u011532105/article/details/109644444作者:收数佬大概就是这么个新东西

2021-08-23 01:59:35 939

原创 [flink]flink在open里面,mysql链接失效

目录前言原因解决办法关于MYSQL的链接失效解法前言最近看mysql的时候,把之前工作的一些事情串起来。想到了之前,flink任务,链接其实也是8小时就断开了记得好像是,后续就是每次判断一下,是否close或者失效了,写在open里面或者进行reset一下~来防止断开。回顾一下,可能有写东西会对别的人查询资料有帮助。原因因为我们dba 应该是设置了链接超时时间,我印象中是8小时。所以需要在用的时候检查一下。解决办法 private sta...

2021-08-23 01:14:20 1765

原创 [锁] synchronized与ReentrantLock

前言关于锁,这两个锁应该是面试最常见的内容;ReentrantLock原理深入理解Java并发之synchronized实现原理上面两个大佬的文章,应该是看来看去写得比较清晰明白的了。在回顾完这两个锁的实现,我又有一些新的疑问。疑问1.ReentrantLock的Node.SIGNAL这是什么东西,几种状态有什么意义2.CAS面试要掌握到什么程度呢?3.线程的中断?线程有哪些状态?4.AQS和cas5.操作系统线程是怎么切换的,内核态,用户态?6.底层的操作系

2021-08-22 16:17:27 118 1

原创 [网传面试题]滴滴java

滴滴—车载——java 1面* synchronized 用法原理,reentrantlock 特性和 synchronized 对比,公平和非公平加锁流程区别* 垃圾回收算法优缺点对比,各代回收策略,cms 执行流程,g1 执行流程和 cms 对比,cms 如何调优* 线程池参数,默认行为,具体执行流程* 如何保持mysql数据库和redis缓存一致,更新缓存失败后如何处理* @Transaction 实现方式,cglib 和 jdk proxy 区别,什么时候 cglib 不适用,什么时候 .

2021-08-20 17:38:24 292

原创 [算法]字符串一些题随笔

前言字符串也是高频考题还是得多刷刷的注意使用数学函数 Math.min(a,b);newString(arr)来返回一个字符串,把数组进行返回;1.541. 反转字符串 II(Easy)每日一题,其实就是做一下反转...

2021-08-20 10:57:02 95

原创 [jvm]g1

todojvm最重要的回收算法 g1

2021-08-19 12:13:04 137

原创 List<Integer> 转 int[]以及二维数组与list的转化

前言写算法的时候,经常最后遇到需要返回int[]甚至int[][]简直让人吐血,虽然可以跟面试官商量一下,是否可以返回list,但是常用lambda的也需要知道。1. List<Integer> 转 intList<Integer> result = new ArrayList<Integer>();return result.stream().mapToInt(Integer::valueOf).toArray();附加:...

2021-08-19 01:53:57 1910

原创 [算法]数组类型算法随笔

todo

2021-08-19 01:40:42 87

dubbo快速上手入门demo

demo使用java进行分模块方式,来展现dubbo的调用。 Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC(一种远程调用) 分布式服务框架(SOA),致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。

2020-09-23

myeclipse 2017 官方版本激活 支持CI7

2018/2/25真实可用 打开之后,将压缩包中patch中的文件粘贴到 myeclipse文件夹中的plugins进行替换 2.打开cracker2017 随便输入Usercode任意字母数字 然后点两下SystemID 然后点击Active 然后点击Tools选项中的save 打开myeclipse 大功告成

2018-02-25

空空如也

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

TA关注的人

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