- 博客(19)
- 资源 (13)
- 收藏
- 关注
原创 LeetCode:0和1矩阵
题目:给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。示例 1:输入:0 0 00 1 00 0 0输出:0 0 00 1 00 0 0示例 2:输入:0 0 00 1 01 1 1输出:0 0 00 1 01 2 1注意:给定矩阵的元素个数不超过 10000。给定矩阵中至少有一个元素是 0。矩阵中的元素只在四个方向上相邻: 上、下、左、右。解题思路:复用前面已经计算出距离的元素对于每个元素,计算其上方、
2020-07-26 17:28:04 1175
原创 LeetCode:实现atoi函数
请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。注意:假如该字符串中的第一个非空格字符不是一个有效整数
2020-07-19 19:22:19 432
原创 LeetCode:寻找最长回文子串
题目:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。解题思路:暴力解法:遍历字符串,以每一个/两个字符串为中心,双指针同时向前后移动,依次寻找最长回文子串。时间复杂度O(n^2)。双指针夹避法:收尾两个指针,如果收尾指针出字符相等,两指针同时收缩,记录本次回文的startIndex和endIndex,如果两个指针不相等,分两种情况:首指针不动,尾指..
2020-07-18 22:29:06 147
原创 记录一次HashMap死循环问题
一、HashMap简介:1、数据结构数组+链表的结构,每一对k:v都封装成一个entry,通过链表解决冲突和碰撞。put(k, v):首先对key哈希找到table对应的位置index,如果该位置没有entry,直接放进去,如果该位置已经有entry了,插入表头;当table里的元素达到一定阈值的时候,通过rehash扩大table的大小(2倍)降低冲突/碰撞率;2、HashMap存在...
2020-05-05 17:08:07 368
原创 虚拟机中类加载机制
1、为什么要了解虚拟机的类加载机制?public class SSClass{ static { System.out.println("SSClass init!"); }} public class SuperClass extends SSClass{ static { System.out.printl...
2020-05-05 17:07:00 250
原创 java虚拟机之逃逸分析
在Java的编译体系中,一个Java的源代码文件变成计算机可执行的机器指令的过程中,需要经过两段编译,第一段是把.java文件转换成.class文件。第二段编译是把.class转换成机器指令的过程。第一段编译就是javac命令。在第二编译阶段,JVM 通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解释翻译。很显然,经过解释执行,其执行速度必然会比可执行的二进制字节码程序慢很多。这就是传统...
2020-05-05 17:05:51 138
原创 Kafka到底会不会丢消息
1、kafka是什么一种高吞吐量的分布式、发布订阅消息系统,它可以处理消费者规模的,网站中的所有动作流数据,具有高性能、持久化、多副本备份、横向扩展能力……以时间复杂度为 O(1) 的方式提供消息持久化能力,即使对 TB 级以上数据也能保证常数时间复杂度的访问性能。高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒 100K 条以上消息的传输。支持 Kafka Server 间的消...
2020-05-05 17:05:11 794
原创 设计模式之状态模式详解
电梯具有的动作:开门:乘客进入、出去。关门:电梯准备开始运行。运行:上下运行。停止:停止运行。1、先让电梯运行起来//定义电梯接口public interface ILift { void open(); void close(); void run(); void stop();}//电梯实现类public class LiftImp i...
2020-05-05 17:04:29 311
原创 ThreadlLocal详解
1、ThreadlLocal简介:ThreadLocal提供线程的局部变量,每个线程都可以通过get()和set()对局部变量进行操作而不会对其他线程的局部变量产生影响,实现了线程之间的数据隔离。e.g. 数据库的连接池管理。原理:每个Thread维护着一个ThreadLocalMap的引用ThreadLocalMap是ThreadLocal的内部类,用Entry来进行存储调用...
2020-05-05 17:03:41 602
原创 索引背后的数据结构和算法原理
提问:常见索引有哪些?1、从数据结构角度* B-Tree/B+Tree索引:B-Tree/B+Tree简介。* Hash索引:1、查询效率非常高,一次查询即可;2、仅能满足=、in,不能用于范围查询;3、* 只有memory引擎显示支持。* 全文索引:用于查找文本中的关键词,InnoDB和MyISAM都支持。* R-Tree索引:用于对GIS数据类型创建SPATIAL索引。2、从物理...
2020-05-05 16:59:14 337
原创 C语言基础知识 - 笔记(一)
C语言基础知识 - 笔记(一)数据类型 char—8位—127—255 int—16位—32767—65535 short—16位—32767—65535 long—32位—2147483647—4294967295在表达式中,P是指针,*P是指向它的内容函数指针 V.S. 指针函数 函数指针 int (*fun) ():本质上是一个指针,指向一个函数的地址,用于函数调用指针函数
2017-08-18 20:32:15 1837
原创 liunx下安装配置JDK
liunx JDK安装教程1、到官网下载JDK安装包:jdk-7u79-linux-x64.gz2、解压: tar -zxvf jdk-7u79-linux-x64.gz3、为了方便重新命名: mv jdk-7u79-linux-x64 jdk4、将重新命名的jdk移动到安装目录下: mv jdk /usr/local/cloudshare/jdk
2016-11-28 10:30:09 349
原创 部署单体daytrader
安装服务器(前提安装配置好jdk):1、获取tomcat服务器:geronimo-tomcat7-javaee6-web3.0.0-bin.tar.gz安装包2、安装tomcat服务器:解压到某个目录下即可3、启动服务器:进入bin目录,执行./startup命令,启动服务器4、验证安装是否成功:打开浏览器,输入ip:8080安装部署daytrader1、获取源码:
2016-11-28 10:27:01 515
转载 如何让 Spring Boot 项目发布到 Tomcat 服务器
第 1 步:将这个 Spring Boot 项目的打包方式设置为 war。war这里还要多说一句, SpringBoot 默认有内嵌的 tomcat 模块,因此,我们要把这一部分排除掉。即:我们在 spring-boot-starter-web 里面排除了 spring-boot-starter-tomcat ,但是我们为了在本机测试方便,我们还要引入它,所以我们这样写:
2016-11-28 10:24:08 3821
原创 微服务环境搭建(Kong+Consul+Swarm+Shipyard)
最近在做单体系统的微服务化拆分,划分好微服务边界就是编码,这部分工作和开发一样,但是微服务的部署环境可是比较麻烦,各种组件需要配置,捣鼓了3-5天终于捣鼓出来了。前端API Gateway选用Kong,服务注册用Consul,部署用Docker,容器的编排管理用Swarm,运维监测用Shipyard,一下为具体配置教程。系统:Centos7Docker:1.12虚机节点三个:1
2016-11-28 10:08:53 9544
原创 liunx下的系统性能监测工具——Nmon
因为要对拆分后的系统进行性能测试,上网查了查相关工具,这类工具有很多,但最后我选择了Nmon,没啥特殊原因,在满足我需求的前提下学习成本最低。安装:- mkdir /usr/local/nmon- cd /usr/local/nmon- wget http://sourceforge.net/projects/nmon/files/nmon_linux_14i.tar.gz
2016-11-28 09:43:12 368
原创 关于用wubi安装ubuntu没有“在windows中安装”的选项解决办法
为了把Ubuntu像安装软件一样按到我的电脑中,wubi是个很好的选择。它可以在我们空闲的任一盘里划出10个G左右的空间作为ubuntu系统的安装位置,最最重要的是在Windows中还不影响我们对这一盘的使用,只是在这个盘中多了一个叫Ubuntu的文件夹。系统的运行速度嘛,基本没有影响。正常情况下,当我们启动wubi时会出现三个选项,其中最终要的一个选项(也是我们选择的那个)叫做在wi
2014-08-15 21:29:56 1422
转载 ubuntu下Firefox中安装flash player插件
在ubuntu中安装软件是件非常麻烦的事,按一个简单的flash插件就浪费了我好多时间,在网上找各种帖子、教程,总算是装上了。整理了下准备工作:安装的过程实质就是将下载的文件解压然后拷贝到系统的文件夹下即OK。此后的一系列都需要在终端操作所以我们需要利用shift+alt+T快捷键调出终端,如果终端不是root@ubuntu开头则可能需要你获得一下root权限(否则的话可能有很多文件夹你都
2014-08-15 21:26:48 914
结构化方法及其数据流图回执方法
2013-04-20
软件工程——从过去到现在,论软件开发过程
2013-04-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人