自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

许文杰的博客

欢迎来到我的博客

  • 博客(22)
  • 资源 (10)
  • 收藏
  • 关注

原创 算法题:两个大数相加(java)

题目: 大数相加不能直接使用基本的int类型,因为int可以表示的整数有限,不能满足大数的要求。输入的两个大数可能正可能负分析: 首先需要判断两个大数的正负号,使用字符串来模拟小学数学中的两个数的加减法。代码:/** * 两个大数相加,输入的两个大数的正负号不确定 */public class Solution { public static void main...

2018-04-29 18:11:55 3368

原创 redis基础知识

Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下: 1、字符串类型 2、散列类型 3、列表类型 4、集合类型 5、有序集合类型。redis的特点: 1、Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 2、Redi...

2018-04-26 23:43:24 252

原创 redis集群的分区实现原理

绪论 Redis Cluster本身提供了自动将数据分散到Redis Cluster中不同节点的能力,分区实现的关键点问题包括:如何将数据自动地分散到不同的节点,使不同节点的存储数据相对均匀;如何保证客户端能够访问到正确的节点和数据;如何保证重新分片的过程中不影响正常服务。这篇文章通过了解这些问题来认识Redis Cluster分区实现原理。认识Redis Cluster Redis Cl...

2018-04-26 21:49:18 626

原创 初步了解redis集群

集群原理1、redis-cluster架构图: 架构细节: (1)所有redis节点彼此互联(通过PING-PONG机制),内部使用二进制协议优化传输速度和带宽。 (2)节点fail是通过集群中超过半数的节点检测失效时才生效。 (3)客户端与redis节点直连,不需要中间proxy层。客户端不需要连接集群中的所有节点,连接集群中任何一个可用节点即可。 (4)redis-clust...

2018-04-26 20:58:11 287

原创 HashMap实现原理分析

1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。      数组数组存储区间是连续的,占用内存严重,故空间复杂很大。但数组的按照二分查找时间复杂度小,为O(logn);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,...

2018-04-23 21:47:52 183

原创 java线程中join方法的简单讲解

一、作用 Thread类中的join方法的主要作用就是同步,它可以使得线程之间的并发执行变为串行执行。具体看代码:public class Test { public static void main(String[] args) throws InterruptedException { ThreadJoinTest t1 = new ThreadJoinTes...

2018-04-11 22:17:16 374

原创 浅谈Java中Volatile关键字

很早就接触了volatile,但是并没有特别深入的去研究它,只有一个朦胧的概念,就是觉得用它来解决可见性问题,但可见性又是什么呢?最近经过查阅各种资料,并结合自己的思考和实践,对volatile有了比较深刻的认识,在此总结并分享给大家。可见性如何理解可见性,还是来看个会出现死循环的例子:  这是为什么呢?先来看看java的内存模型,如下图: java...

2018-04-02 11:34:02 2202

原创 剑指offer第二版面试题17:打印1到最大的n位数(java)

题目描述: 输入数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,则打印出1,2,3一直到最大的3位数即999跳进面试官的陷阱: 这个题目看起来很简单。我们看到这个问题后,最容易想到的办法是求出最大的n位数,然后用一个循环从1开始逐个打印。于是我们很容易写出下面的代码。public static void print1ToMaxOfNDigits(int n) { ...

2018-04-30 17:17:28 775

原创 剑指offer第二版面试题16:数值的整数次方(java)

题目描述: 实现函数double Power(double base,int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。自以为很简单的解法: 由于不需要考虑大数问题,这道题看起来很简单,可能不少应聘者在看到题目30秒后就能写出如下的代码:public static double power(double base, int exp...

2018-04-30 16:12:29 495

原创 剑指offer第二版面试题15:二进制中1的个数(java)

题目描述: 请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1,因此如果输入9,该函数输出2。可能引起死循环的解法: 这是一道很基本的考察二进制和位运算的面试题。题目不是很难,面试官提出问题之后,我们很快就可以形成一个基本的思路:先判断整数二进制表示中最右边一位是不是1。接着把输入的整数右移一位,此时原来处于(从右边数起)第二位被移到最后...

2018-04-30 12:02:22 539

原创 剑指offer第二版面试题14:剪绳子(java)

题目描述: 给定一根长度为n的绳子,请把绳子剪成m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],…,k[m]。请问k[0]* k[1] * … *k[m]可能的最大乘积是多少? 例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。分析: 1、求一个问题的最优解; 2、整体的问题的最优解是依赖各个子问题的...

2018-04-30 10:22:33 1199

原创 剑指offer第二版面试题13:机器人的运动范围(java)

题目描述: 地上有一个m行n列的方格。一个机器人从坐标(0,0)的格子开始移动,它每次可以向左,向右,向上,向下移动一格,但不能进入行坐标和列坐标的位数之和大于k的格子。例如:当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18;但它不能进入方格(35,38),因为3 + 5+3+8 = 19.请问该机器人最多能到达多少个格子?分析: 和面试题13类似,这个方格也可...

2018-04-28 23:49:53 591

原创 剑指offer第二版面试题12:矩阵中的路径(java)

问题描述: 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串”bcced”的路径,但是矩阵中不包含”abcb”路径,因为字符串的第一个字符b...

2018-04-28 21:51:27 650 3

原创 剑指offer第二版面试题11:旋转数组的最小数字(java)

题目描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。解题思路: 1、暴力解法,从头到尾遍历一次,我们就能找出最小的元素,复杂度为O(n),但是没有利用输入的旋转数组的特性,肯定达不到面试官的要求。 2、二分查找,这里的数...

2018-04-28 21:02:08 595

原创 剑指offer第二版面试题10:斐波那契数列(java)

题目一:写一个函数,输入n,求斐波那契数列的第n项。斐波那契数列的定义如下:1、效率很低效的解法,挑剔的面试官不会喜欢很多C语言的教科书在讲述递归函数的时候,都会拿Fibonacci作为例子,因此很多的应聘者对这道题的递归解法都很熟悉。下面是实现代码我们教科书上反复用这个问题来讲解递归的函数,并不能说明递归的解法最适合这道题目。面试官会提示我们上述递归的解法有很严重的效率问题要求我...

2018-04-24 20:50:00 609 1

原创 剑指offer第二版面试题9:用两个栈实现队列(java)

题目描述: 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deletedHead,分别完成在队列尾部插入节点和在队列头部删除节点的功能。分析: 我们通过一个具体的例子来分析该队列插入和删除元素的过程。首先插入一个元素a,不妨先把它插入到stack1,此时stack1 中的元素有{a},stack2为空。再压入两个元素b和c,还是插入到stack1中,此时st...

2018-04-17 22:20:37 670

原创 剑指offer第二版面试题8:二叉树的下一个节点(java)

题目描述: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。分析: 根据中序遍历的特点,要找到一个节点的下一个节点无非就是三种情况: 1、有右子树,这时只需要把其右孩子作为下一个遍历的(并不是要找的)节点,然后沿着该节点的左子树(如果有的话)出发,直到遇到叶子节点,那么该叶子节点就是其下一个要找的节点;...

2018-04-17 21:50:52 783

原创 剑指offer第二版面试题7:重建二叉树(java)

题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重新构造出该二叉树。假设输入的前序遍历和中序遍历的结果中不包含重复的数字。例如输入的前序遍历序列为{1,2,4,7,3,5,6,8}和中序遍历为{4,7,2,1,5,3,6,8},则重建出二叉树并输出它的头结点。在二叉树的前序遍历序列中,第一个数字总是树的根节点的值。但在中序遍历中,根节点的值在序列的中间,左子树的结点的值位于根节点的值的...

2018-04-17 21:28:18 2817 2

原创 剑指offer第二版面试题6:从尾到头打印链表(java)

题目描述: 输入一个链表,从尾到头打印链表每个节点的值。返回新链表。分析: 可以借助栈也可以使用递归代码如下:/** * 从尾到头打印列表 */public class PrintListReverse { public static void main(String[] args) { ListNode node1 = new ListNode...

2018-04-17 20:43:11 790

原创 剑指offer第二版面试题5:替换空格(java)

题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy”,则输出”We%20are%20happy”.原因:在网络编程中,如果URL参数中含有特殊字符,如:空格、“#”等,可能导致服务器端无法获得正确的参数值。我们需要将这些特殊符号转换成服务器识别的字符。转换规则是在“%”后面跟上ASCII码的两位十六进制的表示。比如:空格的ASCII码是32,即十六...

2018-04-17 19:49:17 1035 1

原创 剑指offer第二版面试题4:二维数组中的查找(java)

问题描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 1 2 8 92 4 9 124 7 10 136 8 11 15分析: 首先我们选取数组右上角的数字9.由于9大于7,并且9还是第4列的第一个(也是最小的)数字,因此7...

2018-04-17 19:34:12 815

原创 剑指offer第二版面试题3:数组中重复的数字(java)

题目一: 在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复的次数。请找出数组中任意一个重复的数字。例如如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。 分析: 解决这个问题的一个简单的方法是先把输入的数组排序。从排序的数组中找出重复的数字是件容易的事情,只需要从头到尾扫描排...

2018-04-17 17:35:47 2820

黑马程序员19期java学院全部培训资料和22套java web项目

黑马程序员19期java学院全部培训资料和22套java web项目 2016 黑马19期 JAVAEE最新9月: 01、第一阶段java基础 02、第二阶段 Java web(24天) 03、第三阶段struts框架技术(5天) 04、第四阶段Hibernate(ORM框架技术)(4天) 05、第五阶段Spring3框架技术(7天) 06、第六阶段jQuery(2天) 07、第七阶段Oracle(3天) 08、第八阶段web service(2天 ) 09、第九阶段maven(1天) 10、第十阶段项目管理 11、第十一阶段项目:物流管理系统(12天) 12、第十二阶段mybatis(2天) 13、第十三阶段springmvc(2天) 14、第十四阶段lucene(1天) 15、第十五阶段solr(1天) 16、第十六阶段JavaEE_linux 17、第十七阶段redis(1天) 18、大数据:hadoop7天完整版(2016年3月最新版) 19、所有用到的jar包 20、19期压缩包解压密码.docx java项目视频22套: 第01项目:OA办公自动化项目(四套) 第02项目:CRM客户关系管理项目(两套) 第03项目:宅急送项目 第04项目:杰信商贸SSH版 第05项目:电力项目(两套) 第06项目:校内网项目 第07项目:Java邮件开发教程 第08项目:java网上在线支付实战视频 第09项目:俄罗斯方块游戏开发_视频教程 第10项目:交通灯管理系统视频教程 第11项目:银行业务调度系统视频教程 第12项目:供应链系统视频教程 第13项目:网上商城项目 第14项目:药品集中采购系统视频教程 第15项目:杰信商贸SSM版 第16项目:国家税务协同平台项目 第17项目:javaWeb聊天室 第18项目:点餐系统 第19项目:网上书店 第20项目:手机进销存系统 第21项目:新巴巴运动网 第22项目:基于SpringMVC、MyBatis、FreeMarker架构实战CMS大型门户网站(自定义模板)

2018-01-07

java开发文档

java开发文档。jdk1.6。java开发文档。jdk1.6。java开发文档。jdk1.6。

2017-11-27

【MyEclipse】配置代码格式化模版

MyEclipse代码格式化模版,可以参照我的博客进行设置,http://blog.csdn.net/u010028869/article/details/49780515

2017-10-15

校内网项目

该项目整合了ssh框架,实现了用户的注册、登陆、修改个人信息、上传头像、上传相册等功能

2017-06-26

公司部门内部留言本

本软件作为内部员工之间留言和发送消息使用。通过口令验证,可留言、上传附件和下载附件。

2017-04-29

文件的上传与下载

该项目使用struts web框架,实现用户注册、上传头像、查看用户信息以及下载用户头像等功能

2017-04-15

jsp标准标签库的使用

该资料中含有jsp标准标签库的使用案例,涵盖了常用的jsp标签、条件标签、迭代标签等等

2017-04-09

新闻管理系统model2模式

该项目采用model2开发模式,将项目分为界面层、业务层、数据访问层、数据库层,下层为上层提供服务。实现对用户登陆验证、新闻查询、添加新闻、安全退出等功能!

2017-03-28

新闻管理系统model1模式

该项目采用传统的model1开发模式,实现对用户登陆验证、新闻查询、添加新闻、安全退出等功能!

2017-03-28

网上书城销售系统

该项目支持用户在网上书城下订单购买图书,并能查看用户的购物车及历史订单。

2017-03-19

空空如也

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

TA关注的人

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