自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lance的专栏

学习随笔

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

原创 如何证明平衡树可以通过左旋+右旋保持平衡?

注意事项:以下内容用到大量的代号,建议一边画图,一边推导假设,左子树高度为LH,右子树高度为RH,左孩子的左子树高度为LLH,左孩子的右子树高度为LRH,右孩子的左子树高度为RLH,右孩子的右子树高度为RRH,旋转后左子树高度为NLH,旋转后右子树高度为NRH1. LL与RR以LL情况为例,可知:LH = RH + 2LH = max(LLH, LRH) + 1 = LLH + 1RH = LLH - 1LRH + 1 <= LLH <= LRH + 2.

2021-09-28 17:40:26 232

原创 为什么poi解析Excel慢?

我们项目用xlsx配置业务数据,每个项目中会有500~600张表,解析耗时1分多钟。尝试改成csv后,解析耗时5~6秒。这不禁让我陷入思考,都是文本数据,为什么poi解析Excel会这么慢?带着疑问,我创建了一个样例xlsx,这里包含了若干行的文本和一张百度截图在断点poi代码时,我发现文件流先经过一次zip解析再经过xml的解析顺势着,我猜测xlsx文件,本质上就是一个zip压缩包,里面是一堆的xml文件。为了验证这个猜测,我将xlsx...

2021-09-24 11:11:54 1998

原创 Java字符串存储在堆?还是字符串常量池?

最近有个同事分享了一篇文章,在Java虚拟机中,字符串常量到底存放在哪

2021-05-28 12:43:14 1718

原创 为什么@Configuration注解的类中,@Bean方法可以相互调用,不会产生死循环或不同的bean?

样例代码:@Configurationpublic class SpringTest { @Test public void test() throws IOException { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(); ...

2020-02-04 14:04:34 1478 2

原创 Java读取MySQL数据时卡在SocketInputStream.socketRead0

本文先描述了我的项目遇到的问题,以及解决的思路,引出了部分MySQL网络协议的分析(代码样例跟我的项目无关,仅供参考)。行文有点乱,见谅背景项目中使用mysql-connector-java读取MySQL数据,卡在SocketInputStream.socketRead0"xx-6" #135 prio=5 os_prio=0 tid=0x00007fc4e047a800 ni...

2020-01-08 11:44:14 5175 2

原创 java的volatile关键字核心原理

这篇文章是我的个人笔记,将就着看吧(1)java使用volatile关键字,在字节码中只会标记ACC_VOLATILE,并不会额外生成字节码。本质上java使用的是C++的volatile volatile实现内存可见性分析:字节码版本(2)C++的volatile关键字,其实本质上就是在汇编代码上做了处理: C/C++ Volatile关键词深度剖(3)C语言中volatil...

2019-04-17 12:13:18 487 5

原创 如何修改Tomcat Connector运行模式

该文章作为其他文章的补充内容  修改Tomcat Connector运行模式,优化Tomcat运行性能 上面文章写得不错,但是可以通过下述方式更简单地修改Connector运行方式,直接添加 useAprConnector="true" 即可&lt;!--APR library loader. Documentation at /docs/apr.html --&gt;&lt;Li...

2019-02-12 21:52:34 671

原创 Tomcat启停原理

上接我之前写的文章 Tomcat的Bootstrap、Catalina及Server之间的关系上一篇偏向于原理,这篇偏应用。知道启停原理有个好处,就是知道怎么在本地启动多个Tomcat。 启动:  (1)Bootstrap初始化类加载器  (2)Catalina读取conf/server.xml配置,默认初始化StandardServer  (3)StandardServer读取...

2019-01-22 21:43:28 591

原创 Tomcat中Digester的作用

上一篇文章中大致讲了一下 Tomcat的Bootstrap、Catalina及Server之间的关系,这篇文章准备讲讲用来解析conf/server.xml的Digester工具类tomcat源码解析(三)——Digester类源码解析及Rule分析 我在看源码时,在Catalina中会看到大量的Digester代码段,这其实是Catalina解析server.xml配置的方式。 ...

2019-01-21 16:13:44 840

原创 Tomcat的Bootstrap、Catalina及Server之间的关系

相关连接: Tomcat之Bootstrap类和Catalina类 启动Tomcat:startup.sh关闭Tomcat:shutdown.sh实际上调用的Tomcat的Bootstrap类的main方法,具体可以看catalina.sh或catalina.bat (1)Bootstrap,按我理解,就是专门处理类加载这块的逻辑,Tomcat可以同时运行多个app项目,但...

2019-01-21 16:02:16 1128

原创 如何理解redis跳表源码中的span?

2018年12月30日12:26:04 我扑在跳表上,前后反复研究了十几二十次,一直都理解不了(大脑拒绝理解,停机)。昨晚下定决心(总结以前和现在学到的所有信息),拆分逻辑块,过滤这阶段不需要的信息,终于能理解跳表的基本结构了。看源码有个小技巧(我的),不从main为入口,而是以model(模型)为逻辑块。(1)先理解整体的zskiplist,哦,这个其实跟普通的链表是一样的,有heade...

2018-12-30 13:13:18 2055 4

原创 atom DIY atom-html-preview插件

说明atom-html-preview每次保存,或者按键时,都会刷新预览面板,从而导致预览页奔溃分析(1)atom用CoffeeScript+Less开发;(2)按键时会导致奔溃,那么只要关掉“按键”事件,只保留“save”事件即可。过程(1)File->Settings->Packages;(2)找到atom-html-preview插件,点“VI

2017-10-17 11:19:04 1698

原创 atom DIY platformio-ide-terminal主题

说明platformio-ide-terminal默认有18种主题,但我不喜欢,所以打算DIY一种背景色和前景色。例如:black背景色,Lime前景色操作重启atom

2017-10-16 18:37:46 1932 3

原创 node.js模拟webservice

为简单起见,采用大量的硬编码。简要说明最近学ws,理解到ws是按商量好的格式,通过xml传输数据。于是开脑洞,能不能模拟webservice服务端,令正常的其他程序(如:SoapUI)能够请求到模拟服务。分析webservice,本质上就是以下行为:  (1)请求?wsdl,返回服务的定义;  (2)

2017-10-13 09:53:30 1087

原创 IDE远程提交mapreduce任务至linux,遇到ClassNotFoundException: Mapper

情况VMware上安装了Linux系统,部署伪分布式hadoop2。我在Windows宿主机用IDEA或Eclipse编写MapReduce程序,提交任务之后,运行时报错:Error: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.lance.common.entity.LineSplitMa

2017-02-23 23:28:08 6465

原创 VMWare克隆linux虚拟机无法联网

参照下列链接之后,发现有一些细节不了解,在解决之后,准备总结一下。情况通过VMWare克隆了一个linux,在克隆机上无法ping通百度,而且通过ifconfig没看到eth0。但是,克隆之前,虚拟机是可以正常联网的。相关链接(1)如何在linux系统中设置静态ip地址(2)解决使用VMware克隆出来的新虚拟机无法联网的问题 软硬件CentOS

2017-02-05 00:13:27 556

原创 宿主机程序访问虚拟机HDFS

需求读取HDFS上的/user/hadoop/input/protocols,并写到windows的E盘下。软硬件CentOS6.7hadoop2.6.0IDEA 2016资源[hadoop@name01 hadoop]$ hadoop fs -ls /user/hadoop/input-rw-r--r-- 1 hadoop supergroup

2017-02-04 14:25:32 2488

原创 linux设置SSH免密码登录,但登录不成功

相关资料http://blog.csdn.net/shiqidide/article/details/7582572http://www.xuebuyuan.com/1583179.html配置CentOS6.7OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013情况(1)ssh属于root用户,用lance用

2017-02-03 10:54:18 7431

原创 无法打开卷直接访问

情况:(1)时隔两年半没用过的U盘,插到电脑上,只显示(H:)(2)在刚插U盘的很短暂的时间内,可以正常访问U盘,隔了几秒就变成上面的状态(3)双击U盘盘符,U盘不存在..brbr(4)通过cmd的chkdsk H: /f,显示“无法打开卷直接访问”解析:chkdsk是操作文件夹的,由于U盘的盘区都读不到,chkdsk根本就操作不了解决方案:(1)拔出U

2017-01-27 11:11:33 41537 7

原创 java.lang.NoSuchMethodError: scala.Predef$.$scope()Lscala/xml/TopScope$;

Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.$scope()Lscala/xml/TopScope$; at org.apache.spark.ui.jobs.StagePage.(StagePage.scala:44) at org.apache.spark.ui.jobs.StagesTab.(

2017-01-26 15:18:16 6417 3

原创 module '_tkinter' has no attribute '__file__'

配置列表:python3.5matplotlib1.5.3...相关配置测试程序:import matplotlibmatplotlib.use('tkagg')import matplotlib.pyplot as pltplt.plot([1,2,3,4,5],[4,3,5,6,3])plt.show()问题:进入ipython界面,使用mat

2017-01-14 20:08:53 3334

原创 sbt初次使用配置

1. 前言2016年12月16日 为了搭建Spark,需要使用sbt。sbt使用Ivy,所以先花了点时间去学Ant+Ivy。2016年12月17日 意识Ant+Ivy与Spark配置不相关,所以直接学习sbt+Ivy。由于sbt下载太慢,所以我从网上(百度、CSDN、SegmentFault、OSChina等)找了不少的资料,但是都没能很好地解决“下载慢”的问题。所以先记录一部分内容,主要

2016-12-18 12:09:13 15790 3

原创 为什么KMP算法的预处理时间是Θ(m)?

《算法导论》P590已经描述过,但并没有细说,或者只是描述一个名词“摊还分析”,所以我按自己的理解重新描述COMPUTE-PREFIX-FUNCTION(P)m=P.lengthlet π[1..m] be a new arrayπ[1]=0k=0for q=2 to m while k>0 and P[k+1]!=P[q] k=π[k] if P[k+1]==P[

2016-07-23 23:04:42 1386

原创 BASIC-12 十六进制转八进制 (用java超时的原因)

以下是对于“BASIC-12 十六进制转八进制 (用java超时的原因)”的专题讲解问题描述  给定n个十六进制正整数,输出它们对应的八进制数。输入格式  输入的第一行为一个正整数n (1  接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式  输出n行,每行为输入对应

2016-01-04 14:26:41 749 1

原创 棋盘覆盖 算法分析、设计与实现(Java)

该篇虽然与很多的博客、解说一样讲的都是棋盘覆盖的解法。但是,该篇更多地倾向于“证明”,这也是我与很多读者都想知道的,而不是开篇就上代码。  目录0,问题描述...11,相关博客...12,提出命题...13,命题证明...14,分析算法...25,代码实现...2  0,问题描述http://baike.baidu.com

2016-01-02 14:05:38 2721

原创 第K大数 算法分析、设计与实现(Java)

问题描述:有一个大小为n的数组A[0,1,2,…,n-1],求其中第k大的数。 策略:(1)   判断问题的性质,是排序型?最优型?其他?(2)   根据不同类型的问题挑选不同的算法。“已知算法->递归->分治->贪心->回溯法->分支限界法->动态规划->算法设计”(3)   根据相应的算法进行分析  目录0,分析输入输出...11,分析算法...

2016-01-02 12:00:09 2074 2

原创 三杯水问题 算法分析、设计与实现(Java)

问题描述:有标注A、B、C的三个杯子,A、B、C杯的最大容量分别为8L、5L、3L,现有A杯中有水8L,请通过算法获取4L+4L水。 策略:(1)      选择实现的语言(这里以java为例)(2)      如果不知道算法该怎设计,可以先将必要的实体、边界找出,并抽象成类。(缩小所需考虑的内容)(3)      按“已知算法->递归->分治->贪心->回溯法->分支限界

2016-01-02 10:13:54 3553

原创 装载问题

解算法:动态规划、贪心算法、回溯法都可以1,问题描述:有n个重量为w(i)的集装箱,要装入到两艘轮船A和B,轮船的载重量分别为W(1)和W(2),问:能否找到一组装载方案?2,涉及变量、定量:W(1):第一艘轮船的载重量(最大能装的重量)W(2):第二艘轮船的载重量A:第一艘轮船B:第二艘轮船w(i):第i个集装箱的重量n:集装箱的数量w:集装箱

2015-12-22 12:51:05 837

原创 Lucene初学(二)

本博文将以叙事性的方式描述我的lucene学习过程,以此记录我的学习流程(也可以给读者作为参考。每周更新一次)唠叨:2015年12月3日,到目前为止我已经学习lucene有两周多了,为什么我上周我没发《Lucene初学(二)》呢?因为我困在了lucene的实现上。我已经学习到《Lucene搜索引擎开发进阶实战》的第7章了,上周就已经学习到那。那里刚好开始讲解网站的lucene实现,

2015-12-04 22:16:25 464

原创 hdu acm1005解题思路

注意,这里只提供思路。下面将进行数学分析,数学学渣退散。(基本公式)-----------------------------------------------------------------基本情况---------------------------------------------------------------------------2015年11月24

2015-11-24 20:34:02 1416 2

原创 项目字符集修改

不知道大家有没有遇到过,当在使用Eclipse或者一些编程软件时,若项目需要更改字符集,是很麻烦的,需要一个个去操作。但今天我有点时间,刚好有批量转换字符集的需求,于是去找了许多网站,现在找到了一种非常好批量转换文件的方案。①迷你批量更改编码工具:http://www.crsky.com/soft/29270.html②元宝工具箱:http://www.pc6.com/so

2015-11-21 12:38:30 1541

原创 Lucene初学(一)

本博文将以叙事性的方式描述我的lucene学习过程,以此记录我的学习流程(也可以给读者作为参考。每周更新一次)2015年11月16日,我的算法老师找到我说:“XX师姐有个四六级的语法分析,XX师姐有个金融的分析,你喜欢哪个?你之前不是对爬虫有兴趣吗?你可以试一下学Lucene,不论做不做得出成品,先学着试一下。你可以去看一下《Lucene搜索引擎开发进阶实战》这本书,然后装个L

2015-11-19 19:19:33 536

原创 1005. 继续(3n+1)猜想 (25)

1005. 继续(3n+1)猜想 (25)时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。

2015-05-21 10:53:12 548

原创 最优二元正则树 Java实现

需求分析:①输入树叶数②输入树叶权值③输出最优二元正则树的遍历效果展示:效果解说:例如:“16(0)”,其中16是节点的权值,0是节点的层数。0层代表根节点涉及类:①TreeNodeMananger : 根据树叶的权值或者树叶节点计算根节点,遍历树(先根,中根,后根)import java.math.BigDecimal;im

2014-12-23 08:21:45 978

原创 离散数学之最优二元正则树的Java实现

需求描述:输入树叶数,输入树叶的权值,计算得最优二元正则树,并打印。用途:①快速计算最优二元正则树②可用于最优多元正则树的模板效果展示:说明:①如:"16(0)",其中16为节点的权值,0为层数,即根节点。②上述样例使用的是:“先根次序遍历”,中根遍历、后根遍历都可以从类TreeNodeConstants中找到相应的值③TreeN

2014-12-22 23:49:28 1538

原创 求多个数的最小公倍数

思路来源:解蓝桥杯练习题:  历届试题 核桃的数量  问题描述小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:1. 各组的核桃数量必须相同2. 各组内必须能平分核桃(当然是不能打碎的)3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入格式

2014-12-20 10:08:11 572

原创 蓝桥杯练习: 算法训练 关联矩阵

问题描述  有一个n个结点m条边的有向图,请输出他的关联矩阵。输入格式  第一行两个整数n、m,表示图中结点和边的数目。n  接下来m行,每行两个整数a、b,表示图中有(a,b)边。  注意图中可能含有重边,但不会有自环。输出格式  输出该图的关联矩阵,注意请勿改变边和结点的顺序。样例输入5 91 23 11 52 5

2014-12-19 22:38:35 837

原创 蓝桥杯练习: 算法训练 矩阵乘法

问题描述  输入两个矩阵,分别是m*s,s*n大小。输出两个矩阵相乘的结果。输入格式  第一行,空格隔开的三个正整数m,s,n(均不超过200)。  接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j)。  接下来s行,每行n个空格隔开的整数,表示矩阵B(i,j)。输出格式  m行,每行n个空格隔开的整数,输出相乘後的矩阵C(i,j)的值。

2014-12-19 22:31:25 1494 1

空空如也

空空如也

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

TA关注的人

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