自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

呦 ^v^-, 写Bug呢?

从入门到放弃?不存在的,赶紧找门先。

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

原创 top命令

top可以实时的查看系统中各个进程的资源占用情况,是linux中常用的性能分析工具help> top --helpUsage: top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]基础使用可以直接使用top命令查看,如下:> toptop - 17:14:00 up 1 d...

2019-11-26 17:29:06 673

原创 java并发编程的艺术-第四章笔记

线程简介什么是线程现代操作系统调度的最小单元轻量级进程线程的状态NEW: 初始状态,线程被构建,但是还没有调用start()方法RUNNABLE: 运行状态,Java线程将操作系统的就绪和运行两种状态,笼统的称做“运行中“BLOCKED: 阻塞状态,表示线程阻塞于锁WAITING: 等待状态,表示线程进入等待状态,进入该状态表示当前线程需要等待其他线程做出一些特定动作(通知或...

2019-09-07 18:54:12 577

原创 java并发编程的艺术 - 第三章笔记

java内存模型java内存模型的抽象结构JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(Main Memory)中,每个线程都有一个私有的本地内存(Local Memory),本地内存中存储了该线程以读/写共享变量的副本。ps:本地内存是JMM的一个抽象概念,并不真实存在。它涵盖了缓存、写缓冲区、寄存器以及其他的硬件和编译器优化。[外链图片转存失败(img-J5w...

2019-08-31 17:47:00 623

原创 java并发编程的艺术 -(扩展:CPU缓存一致性)

cache的由来和带来的问题cpu在摩尔定律的指导下,处理能力远远大于内存和硬盘的读写能力。就像用内存来解决硬盘的IO瓶颈一样,cache则是被用来处理cpu于内存之间的读写瓶颈。cache的工作原理基于局部性原理(解释如下):时间局部性:如果某个数据被访问,那么不久将来它很可能再次被访问。空间局部性:如果某个数据被访问,那么与它相邻的数据也可能被访问。三级缓存由于CPU的运算速度超...

2019-08-01 19:59:06 128

原创 java并发编程的艺术 - 第二章笔记

术语描述memory barries(内存屏障)处理器指定,实现对内存操作的顺序限定cache line(缓冲行)缓存中的最小存储单位,需要使用多个主内存周期(存储周期?)atomic operations(原子操作)不可中断的操作cache line fill (缓存行填充)处理器读取整个缓存行到适当的缓存cache hit(缓存命中)处理器...

2019-08-01 19:56:30 143

原创 java并发编程的艺术 - 第一章笔记

线程上下文CPU通过调度算法(常用时间片轮转)来切换线程,线程上下文则是在切换过程中,用来保存线程的执行状态,可以理解为当前执行线程的快照。线程和速度为什么多线程会快串行变为并发执行cpu的运算速度远远大于io速度,可以将部分io阻塞的时间用于计算其他任务什么时候多线程不会快计算密集型任务,如果cpu一直保持高负荷,即使多线程也不会加快运算速度,而且会因为频繁切换上下文带来额外...

2019-08-01 19:54:09 108

翻译 Golang里面的接口(二)

Interface In Go Part2原文地址(https://medium.com/golangspec/interfaces-in-go-part-ii-d5057ffdb0a6)有一些时候,一些值需要被转换为另一个不同的类型。转换操作是一个编译时受检的操作,并且整个机制在更早的另一篇文章里面有详细说明。简单来说,看起来就好像是这个样子的:type T1 struct { n...

2019-06-25 09:46:27 475

翻译 Golang里面的接口(一)

Interface In Go -Part1原文地址( https://medium.com/golangspec/interfaces-in-go-part-i-4ae53a97479c)使用一些接口,会让你的编码具有更强的灵活性、可扩展性,并且interface是golang用于实现多态(polymorphism)的一种手段。interfaces允许在一些行为被需要的时候才去指定,而不需要...

2019-06-25 09:44:31 140

原创 一篇文章读懂java迭代器

概述迭代器,提供了在不了解集合内部实现方法的时候遍历集合的能力。可以将容器内部实现与遍历操作隔离、解耦。使用迭代器实现一个简单集合通过自定义一个简单集合,并在对其使用迭代器进行遍历,达到掌握迭代器的目的。集合描述一个简单的集合,规则如下1、只能存放三个字符串2、若插入第四个数据,则覆盖第一个位置。实现接口描述Iterable接口描述如果想用foreach对集合遍历,则必须...

2019-04-24 08:07:58 125 1

原创 Mysql的锁(Innodb)

锁的隔离级别事务隔离级别脏读不可重复读幻读读未提交(read-uncommitted)是是是读已提交(read-committed)否是是可重复读(repeatable-read)否否是串行化(serializable))否否否锁的分类粒度划分行锁:Record Lock、Gap Lock、Next-Key Lock...

2019-02-27 15:55:18 105

原创 使用Druid的sql parser做一个表数据血缘分析工具

前言大数据场景下,每天可能都要在离线集群,运行大量的任务来支持业务、运营的分析查询。任务越来越多的时候,就会有越来越多的依赖关系,每一个任务都需要等需要的input表生产出来后,再去生产自己的output表。最开始的时候,依赖关系自然是可以通过管理员来管理,随着任务量的加大,就需要一个分析工具来解析任务的inputs、outs,并且自行依赖上生产inputs表的那些任务。本文就介绍一个使用dru...

2018-12-17 13:29:21 12290 5

原创 JVM的内存和GC

内存栈内存(虚拟机栈和本地方法栈)每个线程存有一个虚拟机栈,方法调用会生成一个栈帧,压入虚拟机栈。StackOverFlowError异常若单个线程请求的栈深度大于虚拟机允许的深度,则会抛出StackOverflowError(栈溢出错误)。可以通过无限递归来模拟,优化方式可以增大栈内存大小,以此来增加每个栈可以容纳的栈帧数量。栈区内存溢出不同于StackOverflowError,O...

2018-10-16 11:24:27 314

原创 linux执行命令返回值问题

返回值引起的一次问题问题起始于一次命令调用出错,获取返回值为零的情况。在此做个记录。一个严谨的程序最少应该有两个返回值,零和非零,分别用来表示正常和异常的执行。问题背景:在linux中执行python脚本,脚本中使用cmd调用hive -e来执行hive sql,脚本使用命令的exit code退出。可是有几次异常退出后,python脚本执行的返回值为零,导致其他模块认为执行成功,不做处理。...

2018-10-11 16:21:53 1836

原创 SpringBoot配置文件的替换

使用spring.profiles.active在工作中,测试或上线的时候一定会遇到的问题就是修改配置。一般来说都有如下几种配置可用:dev(开发环境),test(测试环境),pro(生产|线上环境)。这时候,我们就需要去注释掉配置文件中的所有配置,再解开需要的配置。这时候,就可以通过spring.profiles.active的配置来解决这个问题。application.proper...

2018-08-06 20:43:26 1402

原创 redis和redis在java中的使用

Redis 简介Redis 优势Redis与其他key-value存储有什么不同Redis下载Redis 安装(Linux)下载编译这里有的坑启动会遇到的一些问题1、第一个提示somaxconn这个值为128太小了,这个值是系统的网络连接队列大小,而redis的TCP backlog设置的值为511,因此受限,所以修改下系统的值2、overcommit_memory设...

2018-05-18 19:12:14 496

原创 Mybatis大于小于符号的替换

在Mybatis中,把一部分查询的语句分离到了xml文件中,因此在使用的时候不可以使用影响xml格式的一些符号,比如> <之类的符号,因此要使用这些符号的替换符号。对照表如下: 符号 替换符号 > > >= >= < < <= <=...

2018-05-18 08:36:13 1960

原创 笔记:红黑树旋转和插入

红黑树红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求: - 性质1. 节点是红色或黑色。 - 性质2. 根节点是黑色。 - 性质3. 每个叶节点(NIL节点,空节点)是黑色的。 - 性质4. 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点) - 性质5. ...

2018-04-25 22:24:33 413

原创 关于计算机

错觉:计算机做了很复杂的工作每当我们看到什么人工智能、数据分析、操作系统等等,总是会觉得,wahhho,计算机居然可以这么神奇,居然可以完成这么多工作。当然,我曾经也这么以为,感觉很厉害,甚至可以自己学习。有时会很敬畏,甚至自己想想都会觉得可笑。事实:计算机只做了0和1的与或非运算,只是有点快可是如果仔细思考就会发现,计算机其实什么也不会,他只是会简单的0和1的与或非运算,只是稍微有点快而已(事实上

2018-04-17 11:22:01 174

原创 lombok和JPA的死递归

这是一个BugJPA我觉得是一个封装的很棒的框架,至于说很臃肿这个事,我觉得在需求需要很多复杂查询的时候,不适合用JPA。因为它的封装太棒了,以致于增强了表和实体类之间的耦合。不过在一些简单查询的部分,它真的太好用了。而关于这个Bug,就不单单是JPA自身的问题了,究其原因是我在实体类中,使用了lombok框架的@Data,这是一个使用注解,在编译时修改语法树并且自动生成Getter、Se...

2018-04-17 09:18:00 2118 3

原创 思考:为什么要用Spring

spring带来了什么?没有spring会怎么样?为什么要用spring

2018-04-11 11:02:52 1955

原创 Maven学习笔记

一 Maven1、简介2、安装二 Maven的简单使用1、一些约定使用Archetype生成项目骨架2、坐标(Coordinate)3、依赖(Dependency)依赖配置依赖范围传递性依赖依赖调解原则4、仓库本地仓库中央仓库私服三 Maven的生命周期和插件1、生命周期clean生命周期default生命周期site生命周期使用命...

2018-04-05 15:09:09 317

原创 SpringCloud:配置中心(spring cloud config)

在分布式的微服务架构中,服务数量会越来越多,而每个服务实例都会有一个或几个配置文件(yml,properties,json…)。而这些文件,分布在系统的各个角落,管理起来特别麻烦,因此出现了一些可以集中管理配置的组件。这里的spring cloud config就是...

2018-03-27 16:29:06 420

原创 Java动态代理(JDK和Cglib)

动态代理代理模式,是为其他对象提供一个代理来控制对某个真实对象的访问。代理类负责对调用的消息进行处理和转发,以及在委托类执行后的一些后续操作的处理。代理类似一个演员的经纪人,负责对所有的活动进行筛选和过滤,并且将消息转发给该演员,在演员演出后,负责做一些收尾工作。动态代理,它在静态代理的基础上又迈进了一步。可以动态的创建代理,并且动态的处理对所代理方法的调用。动态代理则分为以下两种: -...

2018-03-27 12:57:21 398

原创 JAVA的BIO/NIO学习总结

BIO(阻塞IO)线程阻塞,因此如果没有优化,一个服务端只能为一个客户端服务。阻塞点:等待连接时 ServerSocket.accept()IO操作阻塞 inputStream.read()多线程IO业务处理代码交给其他线程单独处理,也就是将IO阻塞放到其他线程中,将is.read()阻塞交给其他线程。 1. 缺点:线程占用太多,一个线程只能处理一个IO事件。线...

2018-03-14 21:36:17 159

原创 IntelliJ IDEA安装Alibaba编码规约乱码

看到同事用了这个插件,感觉还不错,于是也想装一下。IDEA安装插件的过程就不多说了,就File->Plugin,然后在插件库搜索Alibaba就出来了。安装好后重启,发现中文是乱码,可是既然默认都是中文的,那就必须支持下啊。 网上查了写资料发现,该插件支持的字体只能是微软雅黑的,由于是Windows的系统,所以不用费劲去找什么字体。 直接在File->Setting->App...

2018-03-11 13:26:42 1492 1

原创 LeetCode[16]: 3Sum Closest

题目描述Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have e...

2018-03-10 10:59:08 156

原创 算法——有序数组中值

题目描述有两个已排序数组A、B,各自大小分别为m,n。找到两个已排序数组的中值。解题思路将整个集合分为两个等长的子集,使一边的值总是大于另一边。这道题,可以将A、B看作一个整体,然后划分为左右两部分L和R,并且满足max(L)<=min(R)max(L)<=min(R) max(L)max(L)max(L) max(L) 当总个数(m+n)为偶数时,结果为:max(...

2018-03-06 09:13:21 504

原创 KafkaConsumer(kafka-clients0.8.2.1)的poll方法返回null的问题

简单来说是个恶心的坑,调了两个多小时,毫无改观,一直以为是配置或者是代码的问题。 可是在一直没调通后点进了源码,发现这个方法什么都没做并且返回了null。 解决办法就是换高版本的包,就好了。(当有一些莫名奇妙的问题解决不了的时候,看下依赖和源码有可能会有惊喜)

2018-02-27 09:21:46 3234 1

原创 使用SpringAOP

面向切面编程应用场景SpringAOPSpringAOP使用示例原理问题及注意事项1、区分业务逻辑代码和非业务逻辑代码,不要将业务逻辑代码放在AOP中,不然会导致业务功能不清晰。2、不能代理内部方法调用,内部调用会使用this关键字,而不是生成的代理类。3、不能代理private、final、static方法。面向切面编程Aspect Ori...

2018-02-02 15:39:23 872

翻译 ArangoDB---存储引擎(RocksDB)

存储引擎位于ArangoDB数据库的最底层。存储引擎负责将文档保存在磁盘上,在内存中保存副本,提供索引和缓存以加快查询速度。

2018-01-30 09:52:21 2885

翻译 ArangoDB数据导入

ArangoDBArangoDB是一个开源免费的多模型数据库,可以通过使用文档、图和键-值对来灵活的构建数据模型。使用c++编写,和其他的数据库或者图数据库的对比来说,ArangoDB的社区相对小了点,相关的资料很少,大部分都是在官方的文档和GitHub。据说它的速度比其他的图数据库快,不过就算再快,也要先把数据导进去才能测呢。arangoimp每当使用新的数据库时候,数据的导入都会是

2018-01-26 22:22:19 3788 6

原创 Linux使用SSH上传下载文件

ssh上传下载文件

2018-01-13 15:27:33 4145

原创 设计模式——工厂模式(Factory Pattern)

工厂模式就是根据调用者的需求,负责创建需求对象的一个类。

2018-01-10 19:30:24 184

原创 Linux命令结果赋值给变量

方法可以通过下面这两种语法来将命令的结果直接赋值给变量。varname=`cmd`varname=$(cmd)示例1. 使用反引号#命令val1=`ls`echo $val1#结果bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var2

2018-01-08 13:51:41 12111 3

原创 SpringBoot(三)——使用Thymeleaf模板

一 特点二 使用1 配置2新建模板文件3新建Controller4启动项目并且访问thymeleaf是一种和FreeMarker类似,在后台生成UI的JAVA模板引擎,可以替代JSP。同时thymeleaf也是SpringBoot推荐的解决方案,在这里先不讨论优劣,只是简单介绍一下它的特点和简单的使用。一 特点允许定义多种类型模板 HTMLXMLTEXTJAVASCRIPTCS

2018-01-05 10:10:07 952

原创 “Usage of API documented as @since 1.8+”报错的解决办法

“Usage of API documented as @since 1.8+”报错的解决办法

2018-01-04 09:45:34 40013 5

原创 JAVA的多态性

多态是面向对象语言中,抽象和继承之后的第三种基本特性,多态依赖于数据抽象和继承。

2017-12-26 09:48:43 202

原创 SQL的JOIN语句

SQL的左连接、右连接、内连接、外连接和笛卡儿积。

2017-12-14 22:11:10 221

原创 共享锁和排他锁

而锁的出现就是通过禁止某些操作在一段时间之内来避免这种数据的不一致性。

2017-12-12 18:52:00 1594

原创 @Controller和@RestController的区别

@Controller和@RestController的区别和使用时机

2017-12-04 16:41:13 1063

wol远程唤醒

wol.exe远程唤醒,发送魔法包的命令行工具。。。。。。。

2018-03-28

阿里巴巴编码规约IDEA插件

一份IDEA上的编码规约插件。 可以在IDEA上安装,并且实时对不规范的代码做出提醒。

2018-03-22

空空如也

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

TA关注的人

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