
其他
文章平均质量分 92
栋先生
Java程序员,努力学习,早日成为大神!
展开
-
重排链表
解题思路给定链表 1->2->3->4->5, 重新排列为 1->5->2->4->3.通过观察,可以将重排链表分解为以下三个步骤:首先重新排列后,链表的中心节点会变为最后一个节点。所以需要先找到链表的中心节点:876. 链表的中间结点可以按照中心节点将原始链表划分为左右两个链表。2.1. 按照中心节点将原始链表划分为左右两个链表,左链...原创 2019-12-08 20:39:07 · 1811 阅读 · 0 评论 -
反转链表
反转一个单链表,此题为面试高频题。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL解法一:递归假设列表的其余部分已经被反转,现在我该如何反转它前面的部分? public ListNode reverseList(ListNode head) { //终止...原创 2019-12-08 20:36:33 · 281 阅读 · 0 评论 -
Big O notation 算法复杂度计算方法
文章目录常见的算法复杂度O(1)O(N)O(N^2)O(logN)O(2^n)O(n!)时间复杂度对比Big O notation大零符号一般用于描述算法的复杂程度,比如执行的时间或占用内存(磁盘)的空间等,特指最坏时的情形。常见的算法复杂度O(1):Constant Complexity 常数复杂度O(N):线性时间复杂度O(N^2):N square Complexity 平方O(...原创 2019-06-30 18:34:03 · 9397 阅读 · 0 评论 -
《重构》读书笔记
本文是重构的思维导图原创 2018-07-15 23:57:41 · 521 阅读 · 0 评论 -
函数重构之道
短小只做一件事每个函数一个抽象层级switch语句函数参数无副作用输出参数分隔指令与询问使用异常替代错误码抽离try/catch代码块如何写出简洁函数我们先来介绍写的比较长的函数。以下代码做了好几件事情。它创建缓冲区、获取页面、搜索继承下来的页面、渲染路径、添加神秘的字符串、生产HTML等等。 // Listing 3-1 ...原创 2018-07-29 12:26:52 · 1604 阅读 · 0 评论 -
分布式系统入门
一、什么是分布式系统?分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅是通过消息传递进行通信和协调的系统。 首先分布式系统一定是由多个节点组成的系统,一般来说一个节点就是我们的一台计算机;然后这些节点不是孤立的,而是相互连通的;最后,这些连通的节点上部署了我们的组件,并且互相之间的操作会有协同。二、为什么需要分布式系统?升级单机处理能力的性价比越来越低。...原创 2018-06-16 18:38:42 · 3321 阅读 · 0 评论 -
google Guava之EventBus
EventBus基本用法1. 创建Listener2. 创建EventBus并发送消息Listener之间的继承关系Subscriber不同类型参数的Subscribeevent继承关系的eventDeadEventEventBus之异常处理EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现,在应...原创 2018-06-03 22:35:52 · 11856 阅读 · 1 评论 -
单例模式
单例模式是常见的一种设计模式,本文就来总结一下单例模式的几种写法。一、饿汉式所谓饿汉式单例设计模式,就是将类的静态实例作为该类的一个成员变量,也就是说在JVM 加载它的时候就已经创建了该类的实例,因此它不会存在多线程的安全问题。/** * 饿汉式版单例模式的实现 */public class Singleton { public static final Sing...原创 2018-03-12 22:32:17 · 325 阅读 · 0 评论 -
使用spring session解决session共享问题
一、导入Maven依赖二、 添加Spring配置文件三、在web.xml中添加相应的filter过滤器在Web项目中配置Spring Session分为四步:搭建用于Spring Session的数据存储将Spring Session的jar文件添加到web应用中将Spring Session filter添加到web应用的配置中配置Spring Session...原创 2018-03-12 22:26:17 · 1697 阅读 · 3 评论 -
解决session共享问题方式调研
为了提高服务器性能,最近公司项目采用了分布式服务集群的部署方式。所谓集群,就是让一组计算机服务器协同工作,解决大并发,大数据量瓶颈问题。项目使用nginx做负载均衡,这样同一个IP访问同一个页面会被分配到不同的服务器上,此时就涉及到一个session共享的问题。因为session是在服务器端保存的,如果用户跳转到其他服务器的话,session就会丢失,一般情况下,session不可跨服务器而存在。...原创 2018-03-12 22:13:16 · 946 阅读 · 0 评论 -
MySql绿色版安装与配置
假设我们想配置一个端口为3381的 MySql,同理也可以依照该方法配置多个MySql:解压MySql.7z文件,重新复制一份3380文件,将其重命名为3381。进入mysql\3381\data\目录下面,打开my.ini文件,将所有的3380替换为3381。将以下的3个路径配置成自己MySql所在的路径: datadir=C:/software/development/mysql/原创 2018-01-20 15:04:45 · 623 阅读 · 0 评论 -
idea创建maven项目时一直显示“Loading archetype list ”
idea创建maven项目时一直显示“Loading archetype list ”的2种解决方法原创 2017-07-11 15:17:24 · 7992 阅读 · 5 评论 -
jsonp详解
说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决?这两个问题目前都有不同的解决方案,比如数据可以用自定义字符串或者用XML来描述,跨域可以通过服务器端代理来解决。 但到目前为止最被推崇或者说首选的方案还是 用JSON来传数据,靠JSONP来跨域。而这就是本文将要讲述的内容。原创 2017-06-19 22:11:14 · 737 阅读 · 0 评论 -
Maven生命周期
Maven的生命周期就是为了对所有的构建过程进行抽象和统一。 Maven从大量项目和构建工具中学习和反思,然后总结了一套高度完善的、易扩展的生命周期。这个生命周期包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有构建步骤。也就是说,几乎所有项目的构建,都能映射到这样一个生命周期上。原创 2017-06-02 21:38:16 · 3582 阅读 · 0 评论 -
Maven仓库详解
概念理解1. 构件在Maven世界中,任何一个依赖、插件或者项目构建的输出,都可以称为构件。如依赖log4j-1.2.15.jar是一个构件,插件maven-compiler-plugin-2.0.2.jar是一个构件。2. 坐标Maven坐标为各种构件引入了秩序,任何一个构件都必须明确定义自己的坐标,而一组Maven坐标是通过一些元素定义的,它们是 groupId,artifactId,versi原创 2017-06-01 21:42:32 · 5880 阅读 · 0 评论 -
动态代理详解
代理 是常用的基本设计模式之一,在某些情况下,一个客户不想或者不能直接引用一个对 象,此时可以通过一个称之为“代理”的第三者来实现 间接引用。代理对象可以在客户端和目标对象之间起到 中介的作用,并且可以通过代理对象去掉客户不能看到 的内容和服务或者添加客户需要的额外服务。 通过引入一个新的对象(如小图片和远程代理 对象)来实现对真实对象的操作或者将新的对象作为真 实对象的一个替身,这种实现机制即为代理模式。原创 2017-05-29 12:37:32 · 1446 阅读 · 0 评论 -
IntelliJ IDEA如何导入Gradle项目
最近学习Gradle,本文来重点介绍一下,如何使用`IntelliJ IDEA`导入`Gradle项目的一种方法。原创 2017-04-20 10:14:03 · 115395 阅读 · 22 评论 -
Markdown小结
使用Markdown进行博客的写作也已经有差不多两年了,在这里总结一下自己的一些心得和学习的路径吧!为什么要适用markdown?推荐文章:Markdown写作浅谈 这篇文章详细介绍了使用markdown进行写作的好处以及为什么要用为知笔记进行写作。markdown语法的简单介绍推荐文章:献给写作者的 Markdown 新手指南markdown编辑器1. 作业部落markdown编辑器官网 这个原创 2017-03-26 16:15:03 · 530 阅读 · 0 评论 -
google、百度对比
1. 2014年10月28日 21:24:07问题:在使用遨游浏览器的时候遇到了一个问题:在用支付宝在网上银行支付时, 老是弹出 这个窗口, 然后使用百度和google搜索引擎进行搜索。百度搜索结果:第一页原创 2014-11-04 11:15:16 · 1050 阅读 · 0 评论