- 博客(70)
- 资源 (1)
- 收藏
- 关注
原创 select、poll、epoll
I/O多路复用(事件驱动模型)前面已经论述了多进程、多进程模型会因为开销巨大和调度困难而导致并不能承受高并发量。但不适用这种模型的话,无论是阻塞还是非阻塞方式都会导致整个服务器停滞。所以对于大并发量,我们需要一种代理模型可以帮助我们集中去管理所有的socket连接,一旦某个socket数据到达了就执行其对应的用户进程,I/O多路复用就是这么一种模型。Linux下I/O多路复用的系统调...
2019-11-19 09:49:40 209
原创 JDBC中Statement、PreparedStatement 、CallableStatement 区别和联系
Statement、PreparedStatement 、CallableStatement 区别和联系1. Statement、PreparedStatement和CallableStatement都是接口(interface)。2. Statement继承自Wrapper、PreparedStatement继承自Statement、CallableStatement继承自Prepare...
2019-11-19 09:47:57 258
原创 python爬取豆瓣top250图书信息
python爬虫之爬取豆瓣top250图书信息1. 爬虫库准备 BeautifulSoup Requests2. 爬取网页(1)分析豆瓣图书TOP 250的url: 第一页是https://book.douban.com/top250?start=0 第二页是https://book.douban.com/top250?start=25 ...
2018-07-06 16:41:54 921
原创 leetcode
题目:Given a string, find the length of the longest substring without repeating characters.例子:Given "abcabcbb", the answer is "abc", which the length is 3.Given "bbbbb", the answer i
2018-02-07 17:43:33 245
原创 leetcode之add two numbers
题目:You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and
2018-02-07 17:09:04 253
原创 leetcode之TwoSum[Java]
题目Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution.Example:Given nums =
2017-09-16 18:35:43 238
原创 栈的压入、弹出序列
题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)实现:public class Solution { public b
2017-09-14 09:45:28 251
原创 B树和B+树的区别
这都是由于B+树和B具有这不同的存储结构所造成的区别,以一个m阶树为例。1. 关键字的数量不同;B+树中分支结点有m个关键字,其叶子结点也有m个,其关键字只是起到了一个索引的作用,但是B树虽然也有m个子结点,但是其只拥有m-1个关键字。2. 存储的位置不同;B+树中的数据都存储在叶子结点上,也就是其所有叶子结点的数据组合起来就是完整的数据,但是B树的数据存储在每一个
2017-09-12 23:10:41 1346
原创 打气球游戏
题目:打气球游戏Given n balloons, indexed from 0 to n-1.Each balloon is painted with a number on it represented by array nums. You areasked to burst all the balloons. If the you burst balloon i you will get
2017-09-12 18:58:21 1083
原创 设计模式之模板方法
模板方法定义一个操作中的算法骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。结构模板方法模式结构比较简单,其核心是抽象类和其中的模板方法的设计。 模板方法模式包含如下两个角色: (1)AbstractClass(抽象类):在抽象类中定义了一系列基本操作(PrimitiveOperatio
2017-09-07 10:35:03 243
原创 leetcode之subset II
题目Given a collection of integers that might contain duplicates, S, return all possible subsets.Note:Elements in a subset must be in non-descending order.The solution set must not contain dup
2017-09-05 21:48:36 287
原创 netty原理
NettyNetty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开
2017-09-04 16:20:02 4875
原创 数串
题目描述设有n个正整数,将他们连接成一排,组成一个最大的多位整数。如:n=3时,3个整数13,312,343,连成的最大整数为34331213。如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。输入描述:有多组测试样例,每组测试样例包含两行,第一行为一个整数N(N输出描述:每组数据输出一个表示最大的整数。示例1输入212 123
2017-09-03 15:12:31 244
原创 leetcode之surrounded-regions
题目Given a 2D board containing'X'and'O',capture all regions surrounded by'X'.A region is captured by flipping all'O'sinto'X's in that surrounded region .For example,X X X XX O O XX X O XX
2017-09-03 11:21:13 237
原创 Leetcode之Longest Consecutive Sequence
[LeetCode] Longest Consecutive Sequence 求最长连续序列Given an unsorted array of integers, findthe length of the longest consecutive elements sequence.For example,Given [100, 4, 200, 1, 3, 2],The lon
2017-09-01 22:09:03 249
原创 springboot入门(一)
Spring boot学习:入门例子helloworld1. 编写pom.xml文件2. 编写代码为了完成这个应用,我们需要创建一个简单的Java文件,创建一个src/main/java/Example.java文件:注意观察以上代码,我们使用了@RestController和@RequestMapping两个Spring MVC的注解:
2017-08-29 10:04:11 357
原创 Unique Paths II
题目Follow up for "Unique Paths":Now consider if some obstacles are added tothe grids. How many unique paths would there be?An obstacle and empty space is markedas1and0respectively in the grid.F
2017-08-24 22:30:52 209
原创 统计字符
题目描述给定一个英文字符串,请写一段代码找出这个字符串中首先出现三次的那个英文字符。输入描述:输入数据一个字符串,包括字母,数字等。输出描述:输出首先出现三次的那个英文字符示例1输入Have you ever gone shopping and输出E实现 public class Main { publicstatic void
2017-08-24 21:10:49 304
原创 删除公共字符
题目描述输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”Theyare students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”输入描述:每个测试输入包含2个字符串输出描述:输出删除后的字符串示例1输入They are students.aeiou输出Thy r stdnts.实现i
2017-08-24 20:29:28 338
原创 TCP之三次握手和四次挥手
图解TCP三次握手与四次分手引言TCP三次握手和四次挥手是在开发中一个非常重要的知识点,它是我们优化web程序性能的基础。但是大部分书籍都对这部分解释的比较抽象,本文我们就利用wireshark来抓包以真正体会整个流程的细节,并且在文末我还会补充一下TCP滑动窗口和重传机制。三次握手根据下面这幅图我们来看一下TCP三次握手。p.s: 每个箭头代表一次握手。
2017-08-23 15:33:09 327
原创 最大连续子数组的和
问题给定一个整数数组,数组里可能有正数、负数和零。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。例如,如果输入的数组为{1,-2,3,10,-4,7,2,-5},和最大的子数组为{3,10,-4,7,2},那么输出为该子数组的和18。实现public class MaxSubArray {public static void main
2017-08-22 16:11:33 328
原创 Java并发
1,Java内存模型是什么? Java内存模型规定和指引Java程序在不同的内存架构、CPU和操作系统间有确定性地行为。它在多线程的情况下尤其重要。Java内存模型对一个线程所做的变动能被其它线程可见提供了保证,它们之间是先行发生关系。这个关系定义了一些规则让程序员在并发编程时思路更清晰。比如,先行发生关系确保了: 线程内的代码能够按先后顺序执行,这被称为程序次序规则。
2017-08-19 21:18:41 202
原创 IO与NIO的区别
IO与NIO的区别面向流与面向缓冲 Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方。此外,它不能前后移动流中的数据。如果需要前后移动从流中读取的数据,需要先将它缓存到一个缓冲区。 Java NIO的缓冲导向方法略有不同。数据读取到一个它稍后处理
2017-08-18 19:19:39 385
原创 eclipse中maven项目部署到tomcat运行
将maven项目部署到本地安装的tomcat中1、准备工作 下载安装并配置好Tomcat和Maven。 准备好一个Maven Web项目。2、Maven部署Web项目到Tomcat的配置 2.1 Maven自动部署实际上调的是Tomcat安装目录下的manager功能。而为了能正常访问http://localhost:8080/m
2017-08-16 11:18:07 15239
原创 maven安装
Maven安装安装maven,首先得去maven官网(http://maven.apache.org/)下载相应的文件。 下载完成后解压即可。我自己的解压路径的是E:\apache-maven-3.5.0。需要注意的是Maven会默认在c盘下建立.m2/repository文件(也即本地仓库的位置),我们需要在其它盘建立本地仓库的位置。因为随着jar包的下载,maven本地仓库,会变的
2017-08-15 17:27:10 1803
原创 JDBC中Statement、PreparedStatement 、CallableStatement 区别和联系
Statement、PreparedStatement 、CallableStatement 区别和联系1. Statement、PreparedStatement和CallableStatement都是接口(interface)。2. Statement继承自Wrapper、PreparedStatement继承自Statement、CallableStatement继承自Prepare
2017-08-15 10:24:36 416
原创 寻找和为定值的n个数
寻找和为定值的N个数题目:输入两个整数n和sum,要求从数列1, 2, 3, ...,n中随意取出几个数,使得它们的和等于sum,请将其中所有可能的组合列出来。思路:上述问题是典型的背包问题的应用,即先找出n个数的所有组合,再在这些组合中寻找组合数相加之和等于sum的组合,并依次输出这些组合中的数。实现:public class ManySumN {
2017-08-14 16:20:25 749
原创 设计模式之抽象工厂模式
抽象工厂模式定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。从定义中可知,我们是要创建一个接口,而这个接口是干嘛的呢,是为了创建一组相关或者相互依赖的对象,而且我们创建的对象不是具体的类,也就是说我们创建的是一个接口或者一个抽象类。UML:具体实现产品代码实现:interface ProductA { void methodA
2017-08-14 11:25:41 216
原创 leetcode之candy
题目:There are N children standing ina line. Each child is assigned a rating value.You are giving candies to these childrensubjected to the following requirements:Each child musthave at least one
2017-08-13 21:12:15 214
原创 leetcode之压缩字符串中的重复字符
题目通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出现的重复字母进行压缩,并输出压缩后的字符串。压缩规则:1、仅压缩连续重复出现的字符。比如字符串”abcbc”由于无连续重复字符,压缩后的字符串还是”abcbc”。2、压缩字段的格式为”字符重复的次数+字符”。例如:字符串”xxxyyyyyyz”压缩后就成为”3x6yz”。
2017-08-13 16:25:07 1917
原创 leetcode之Word-break
题目Word-breakGiven a string s and a dictionary of wordsdict, determine if s can be segmented into a space-separated sequence of one ormore dictionary words.For example, givens ="leetcode",d
2017-08-13 11:10:50 318
原创 java线程
Java线程线程的从创建方式一:继承Thread类创建线程类class PrimeThread extends Thread { long minPrime; PrimeThread(long minPrime) { this.minPrime = minPrime; } public void
2017-08-12 10:46:25 306
原创 java消息服务
java消息服务JMS(Java MessageService, Java消息服务)API是一个消息服务的标准/规范,允许应用程序组件基于JavaEE平台创建、发送、接收和读取消息。它使分布式通信耦合度更低,消息服务更加可靠以及异步性。消息模型在JMS标准中,有两种消息模型P2P(Point to Point),Publish/Subscribe(Pub/Sub)。P2P模
2017-08-11 17:00:17 218
原创 java注解annotation
注解Java注解用于为 Java代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。Java注解是从 Java5开始添加到 Java的。注解语法注解通过 @interface关键字进行定义。public @interface TestAnnotation {}它的形式跟接口很类似,不过前面多了一个
2017-08-11 10:49:14 197
原创 线程的状态及转化
线程状态1.新建状态(New): 当用new操作符创建一个线程时, 例如new Thread(r),线程还没有开始运行,此时线程处在新建状态。当一个线程处于新生状态时,程序还没有开始运行线程中的代码。2.就绪状态(Runnable) 一个新创建的线程并不自动开始运行,要执行线程,必须调用线程的start()方法。当线程对象调用start()方法即启
2017-08-10 16:35:30 206
原创 内连接和外联结连接的区别
数据库之连接数据库中多表之间的查询通常使用连接的方式来实现。连接分为内连接、外连接和交叉连接。内连接:内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。包括相等连接和自然连接。外连接:外连接又分为左外连接、右外连接和完整外连接。1. 左外连接(LEFT JOIN或LEFT OUTER JOIN):左外连接的结果集包括 LEFT JOIN子句中指定的左表
2017-08-09 14:22:37 1624
原创 设计模式之策略模式
策略模式定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。结构:角色:● 环境(Context)角色:持有一个Strategy的引用。● 抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。● 具体策略(ConcreteS
2017-08-09 09:01:09 177
原创 fail-fast快速失败机制分析
Fail-fast总结:1. Fail-fast机制式java集合中的一种异常机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast。抛出java.util.ConcurrentModificationException异常时,也即产生fail-fast事件2. Fail-fast机制,是一种错误检测机制。它只能被用来检测错误,因为JDK并不保
2017-08-08 20:50:54 549
原创 SQL语句之DDL和DML
1. DDL - Data Definition Language数据库定义语言:定义数据库的结构。 其主要命令有CREATE,ALTER,DROP等,下面用例子详解。CREATE - to create objects in the database 在数据库创建对象例:CREATE DATABASE test; // 创建一个名为test的数据库ALTER - a
2017-08-08 10:22:50 694
原创 redis之集群
Redis集群集群技术是构建高性能网站架构的重要手段,试想在网站承受高并发访问压力的同时,还需要从海量数据中查询出满足条件的数据,并快速响应,我们必然想到的是将数据进行切片,把数据根据某种规则放入多个不同的服务器节点,来降低单节点服务器的压力。集群要实现的目的是要将不同的 key 分散放置到不同的 redis 节点,这里我们需要一个规则或者算法,通常的做法是获取 key 的哈希值,然后
2017-08-05 15:13:35 469
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人