自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

iKun

迎风而立的狮子

原创 LeetCode最大数值

LeetCode最大数值题意编写一个方法,找出两个数字a和b中最大的那一个。不得使用if-else或其他比较运算符。示例:输入: a = 1, b = 2输出: 2解析可以很简单的取巧直接使用Math.max(a,b)来解决。但是,内部实质还是用到if-else来处理。转换下思路,求最大值可以用如下公示:int sum = a + b;int abs = abs(a -...

2020-03-27 17:06:48 67

原创 Leetcode 1+2+…+n

题目如下解析本题的特殊之处在于不能使用特殊if ,循环迭代、以及乘法除法。如此一来无法是让我们用递归来做,主要是屏蔽if 这个判断条件,那么如何规避呢?很简单,大多数语言普遍支持的&& 短路,有着跟||类似的特性,前面为false,后面不再执行。func sumNums(n int) int { var f func(k int,ret *int) bool ...

2020-02-28 00:11:21 53

原创 钉钉内部应用开发之手机本地域名访问

背景由于工作需要,需要在钉钉平台上开发内部应用,钉钉自定义工作台。局限这种方式在开发阶段只能通过配置ip+port地址的形式进行访问,如果要配置域名的话,需要配置合法的域名,即非自定义域名。但是当后端需要配置一些代理。如: nginx等这样代理转发服务器时,则无法很好的实现。解决方案在移动端钉钉访问的时候,首页访问的地址其实是访问的下面配置这个地址:这里我们进入首页没问题...

2020-02-18 22:50:25 281

原创 idea项目缺失maven Dependencies解决方案

如图缺少可以使用如下指令:mvn -U idea:idea

2019-11-15 12:20:52 2700 1

原创 关于面试

关于面试最近由于公司的一些问题,不得不去寻找新的工作了,两个月的时间,断断续续,也面试过大大小小不少公司。下面就总结一些面试的题目,以及自己的心得吧。关于基础本人刚毕业满一年吧,应聘的岗位大多数都是相符(1~3年)的,没有刻意夸大自己的简历。HahsMap与其他Hash结构的区别(TreeMap,HashLinkedList)HashMap与ConcurrentHashMap的区别...

2019-08-29 00:25:04 185 1

原创 线程池

线程池从字面义上来讲,是指管理一组同构工作线程的资源池。线程池是与工作队列密切相关的,其中在工作队列中(Worker Queue)保存了所有等待执行的任务。工作者(Worker)线程的任务很简单:从工作队列中获取一个任务并执行。执行完毕后,继续获取下一个任务。当队列为空时,等待执行。优势​ “在线程池中执行任务”比“为每个任务分配一个线程”有优势得多。多个线程统一维护,方便管理。...

2019-07-10 23:15:55 53

原创 Java线程

Java线程​ 提到线程,免不了又要提到进程了。很多时候面试官经常会问的一个问题:线程与进程又什么区别?​ 进程是os资源分配的基本单位,所有与该进程有关的资源都会被记录在PCB进程控制块中,以表示该进程拥有这些资源或正在使用他们呢。​ 线程是os能够进行运算调度的最小单位,它被包含在进程当中。在一个进程中的多个线程会共享进程中的资源以及内存(如文件描述符,虚拟地址空间等)。简介...

2019-07-09 23:28:34 93

原创 Java对象的生命周期

Java对象的生命周期​ Java语言除了原始数据类型外,还有一种类型被称之为引用类型。对象的创建一般需要使用new关键字,将创建的对象存储在堆上(heap)。而在线程栈中会保留一个指向堆上地址的引用。下图将展示堆栈之间的具体关系,栈中被分割成一个一个的栈帧(“frames”),其中包含调用树中每个方法的参数和局部变量。当实例化一个对象是,如果是一个Integer对象,那么JVM首尝试...

2019-06-26 00:11:16 1324

原创 Java的解释执行

关于Java平台的理解Java是一种面向的对象的编程语言,建立在C++基础之上,号称“书写一次,到处运行”(Write once, run anywhere),在多平台可以快速移植,具有超强的跨平台能力。拥有强大的内存回收机制(GC,Garbage Collection),Java通过垃圾收集器对JVM内存回收。​ JRE和JDK,作为Java程序员对这两个名词并不没收,JRE提供Java...

2019-06-24 23:21:20 2229

原创 SpringBoot配置多CacheManager

SpringCache配置多CacheManager背景​ Spring为了减少数据的执行次数(重点在数据库查询方面), 在其内部使用aspectJ技术,为执行操作的结果集做了一层缓存的抽象。这极大的提升了应用程序的性能。由于其切面注入的特性,所以不会对我们的程序造成任何的影响。对于一些实时性要求不那么高的业务数据,我们可以在Service上进行一些缓存的操作。这样就可以减少访问数据库的频率...

2019-05-12 21:18:34 2649

原创 Spring Security OAuth2.0实践

Spring Security OAuth2.0实践OAuth2.0 简介OAuth2.0 是一套授权体系的开放标准,注意:OAuth2.0 并不是一个框架,而是一套制定的授权标准,内部定义了四大组件:客户应用(Client Application):典型代表为:Web端,或者移动端资源服务器(Resource Server): 通常为web端,或者web service api,用户的...

2019-05-05 23:51:44 212

原创 MyBatis解析

MyBatis解析简介​ Mybatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。GitHu...

2019-04-28 00:10:26 198 1

原创 主要记录下使用Git出现的问题

主要记录下使用Git出现的问题1. Clone||Pull远端仓库失败或中断设置git的http.postBuffer属性git config --global http.postBuffer 524288000更改clone方式为ssh终极大招。。。手动下载2. clone速度慢由于git的地址在国外,一般都会限速,可以选择配置hosts地址映射来加速访问。配...

2019-04-24 18:21:58 44

原创 mac上安装expect实现自动登陆

必备软件tclexpect下载软件的地址建议放在/usr/local目录下。1. 配置tcl解压&&编译cd tcl8.4.20cd unixsudo ./configure --prefix=/usr/local/tcl --enable=sharedsudo make sudo make installsudo cp ./tclUnixPo...

2019-04-24 18:20:56 872

原创 SpringBoot配置拦截器导致swagger失效

问题背景:Springboot 启用拦截器后,Swagger无法访问原因拦截器拦截了所有的请求,导致swagger也被拦截,当在进行鉴权的的时候,可能需要传入一些特定的参数,或者请求头信息,这样我们就无法正常通过swagger了。解决配置静态资源处理器,以及将swagger的访问路径排除在外,即可解决问题。import com.eechain.sso.interceptor.Au...

2019-04-24 18:18:56 1985 1

原创 CentOS 安装 Docker

准备工作系统要求Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。卸载旧版本旧版本的Docker称为 docker或者 docker-engine,使用以下命令卸载旧版本:sudo yum remove ...

2019-04-22 22:22:20 46

原创 jenkins+Warnings Next Generation Plugin构建代码自动化检测

背景现在大多数企业,都会选择使用自动化的方式去构建代码.UT,打包,部署等等,一条龙服务,为了产出优质的代码,代码检测当然是必不可少的.这个代码检测当然不是由我们手动检查,当然是由工具帮我们自动完成,下面就是我们要介绍的重点咯,jenkins+Warnings Next Generation Plugin实现自动化代码检测.Warnings Next Generation PluginW...

2019-04-17 22:27:06 1383 4

原创 git下使用checkstyle构建代码风格检查

背景出于团队协作开发的效率考虑,决定引入checksytle来规范代码风格.统一了风格,办起事来自然干净利落咯.那引入之后有什么优点呢:统一了代码风格,这样看起代码来不会觉得头疼.能够矫正我们的撸代码规范,就跟那个坐姿优点类似...能够检测代码垃圾,让代码编译更快,出问题的可能性大大降低.有啥-缺点-呢:每次提交代码,各种检测神烦,一个个调试,可能是一种煎熬吧.调风格贼难...

2019-04-16 23:06:31 1048

原创 单例设计模式

单例设计模式简介​ 单例模式是设计模式中最简单的形式之一。 单例设计模式通常来讲,就是确保一个类在一个应用程序中只能存在一个实例,并提供一个访问它的全局访问点。一般我们会提供一个静态方法来供全局访问。应用场景各种资源池类(pool)对象。如:线程池,数据库连接池,HTTP连接池缓存(cache)对话框,前端经常使用的模态框注册表等容器对象,例如:SpringIOC容器等构...

2018-12-27 19:30:09 69

原创 kettle的简单操作

本文将记录下如何简单的操作kettle,针对CVS以及Excel文件进行入库操作。CVS入库操作创建数据库表第一步: 创建数据库 kettle第二步: 建表DLL语句如下:CREATE TABLE `csv_test` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, `address` varchar(2...

2018-12-04 14:28:17 106

原创 Kettle 9.0 源码编译

Kettle源码包编译指南本次构建基于Kettle源码的9.0快照版本环境准备maven 3+JDK 1.8下载settings.xml文件,存放于.m2文件下源码下载源码下载地址:https://github.com/pentaho/pentaho-kettle.git开始构建进入源文件根目录maven命令构建:mvn clean install -Dmaven.te...

2018-12-04 14:18:33 3275 17

原创 【Leetcode】583.Delete Operation for Two Strings

Delete Operation for Two StringsGiven two words word1 and word2, find the minimum number of steps required to make word1 and word2 the same, where in each step you can delete one character in either ...

2018-11-20 21:09:36 66

原创 【Leetcode】880. Decoded String at Index

Decoded String at IndexAn encoded string S is given. To find and write the decoded string to a tape, the encoded string is read one character at a time and the following steps are taken:If the c...

2018-11-19 22:07:35 393

原创 【Leetcode】376. Wiggle Subsequence

Wiggle SubsequenceA sequence of numbers is called a wiggle sequence if the differences between successive numbers strictly alternate between positive and negative. The first difference (if one exis...

2018-11-16 17:30:00 88

原创 快速幂

快速幂快速幂,实际上是快速幂取模的缩写。简单的说,就是快速的求一个幂式的模(余)。在程序设计过程中,经常要去求一些大数对于某个数的余数,为了得到更快、计算范围更大的算法,产生了快速幂取模算法。一般运用到的公式主要如下:ab%n=((a%n)(b%n))%nLeetcode 372. 超级次方 - 题解static int Mod0 = 1337;public static int su...

2018-11-13 17:43:35 244

原创 JAVA桥接方法

桥接方法随着JDK的发展,到1.5的时候,引入了泛型(generics)的概念。由于集合类的广泛使用,不得不加上一些安全考虑,因为传统的集合是可以添加任意的类型的数据,我们在取数据的时候,还需要进行手动强制转型,但是我们并不知道我们取出的数据是什么类型的,比如:一个List集合,先加入String,再加入Object,再加入Date,随着容器的扩大,我们根本分不清当前索引位置的值到底是什么类型...

2018-11-13 17:42:59 157

原创 【LeetCode】373. Find K Pairs with Smallest Sums

373. Find K Pairs with Smallest SumsYou are given two integer arrays nums1 and nums2 sorted in ascending order and an integer k.Define a pair (u,v) which consists of one element from the first array...

2018-11-13 17:42:09 215

原创 【LeetCode】284.Peeking Iterator

284.Peeking Iterator题目描述:Given an Iterator class interface with methods: next() and hasNext(), design and implement a PeekingIterator that support the peek() operation – it essentially peek() at the...

2018-11-08 14:23:39 47

原创 【LeetCode】368. Largest Divisible Subset

Given a set of distinct positive integers, find the largest subset such that every pair (Si, Sj) of elements in this subset satisfies:Si % Sj = 0 or Sj % Si = 0.If there are multiple solutions, retu...

2018-11-07 22:31:28 41

原创 Vue2.0 之props是数据绑定出错

背景在使用Vue进行组件开发时,对于父组件传递过来的props属性,在子组件内部对这个值进行了更改,就会出现如下的错误信息:[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a...

2018-11-07 14:14:35 555

原创 【LeetCode】495. Teemo Attacking(提莫大魔王)

In LOL world, there is a hero called Teemo and his attacking can make his enemy Ashe be in poisoned condition. Now, given the Teemo’s attacking ascending time series towards Ashe and the poisoning tim...

2018-11-06 22:38:29 63

原创 LRU缓存算法的实现

LRULRU(Least Recently Used)是一种常见的页面置换算法,在计算中,所有的文件操作都要放在内存中进行,然而计算机内存大小是固定的,所以我们不可能把所有的文件都加载到内存,因此我们需要制定一种策略对加入到内存中的文件进项选择。常见的页面置换算法有如下几种:LRU 最近最久未使用FIFO 先进先出置换算法 类似队列OPT 最佳置换算法 (理想中存在的)NRU C...

2018-11-06 21:54:54 23373 6

原创 elementUI Table组件实现拖拽效果

背景使用Element UI Table+Vue实现表格的拖拽。在GitHub上搜索了下发现Sortable这款插件挺不错的,Star14000+,而且还支持Vue等多种主流的前端框架,可谓是十分的强大。最重要的原因是,完全不依赖JQ。Vue.Draggable,Vue版本的Sortable。拖拽后能够使数据模型同步,完美兼容Vue的数据视图双向绑定。下面贴一下官方demo看得出来真的很...

2018-11-03 00:30:29 16638 12

原创 JS获取CSS样式的三种方式

JS获取CSS样式的三种方式第一种获取非行间的样式:使用getComputedStyle与currentStyle属性获取样式这里第一个参数值获取那个选择器的属性,第二个参数代表是否需要获取伪类元素:before,:after等if(obj.currentStyle){ return obj.currentStyle[attr];}else{ return obj.g...

2018-11-02 23:35:45 6975

原创 CAS单点登录之使用JDBC认证

构建版本基于CAS 5.3.xCAS认证策略Cas提供非常的认证策略,不仅仅支持第三方的认证策略,还支持自定义认证策略,我们主要集成的第三方认证如下:LADP 轻量级目录访问协议JAAS Java标准身份验证和授权APIShiro 可以集成Apache Shiro来进行身份认证Basic Authentication 在HTTP中,基本认证(Basic access authen...

2018-11-01 19:24:18 1488 13

原创 node-sass安装失败

使用npm install提示node-sass安装失败,说是node-sass 这个Module找不到。由于项目使用到的是vue组件式开发,需要用到sass语法,所以需要配置sass loader。这又需要node-sass等等一系列依赖。由于错误现场没有及时保存,所以下面寻找几个关键的错误提示信息:npm ERR! node-sass@3.8.0 postinstall: `node sc...

2018-11-01 12:55:41 4689

原创 MyBatis通用Mapper与分页PageHelper混淆报错问题

背景当同时引入通用Mapper与PageHelper两款插件的时候,会存在报错的可能。如果像这样,先执行通用Mapper,再执行分页插件就会出错 <!-- 通用Mapper插件 --> <plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor"> <property ...

2018-10-28 21:54:49 902

原创 SpringBoot整合Mybatis实现自动转换枚举类型

背景  在做之前项目的时候,里面充斥很多不明的变量,一般来说状态,标志等等属性都需要使用Int或者固定字符串来标识,比如0代表可用,1代表禁用,或者是可用,不可用,随着人员的增加,萝卜酸菜各有所爱,有些人可能会使用1代表可用,0代表不可用。还有的人不喜欢使用0,直接用1,2来代替。使用字符串就更加坑爹了,比如你使用可用,不可用,他使用可用,禁用。虽然知道你要表达的意思,但是给前端人员的时候就十分...

2018-10-28 00:01:01 8312 14

原创 Integer解析

作为一名Java开发,相信大家对于Integer都不会陌生,接下来就其分析下开箱与装箱  开箱装箱主要针对于Java中出现的几种包装类,比如int与之对应的Integer。通俗一点的理解就是,Integer可以与int自动的相互转换,这个转换过程对于开发人员来说是透明的,JVM在底层帮我们进行了转化。装箱:举个栗子:Integer i = 10; //Integer i = new In...

2018-10-24 23:15:32 446

原创 SpringBoot 2.x 整合 jpa实现多数据源

SpringBoot 2.x 在jpa中配置多数据源,与1.x还是存在稍许差别的,本示例基于SpringBoot2.0.61. 下载依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifac...

2018-10-23 22:31:07 7089 11

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