自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 串匹配算法(二)——手把手教你KMP算法(2)

提示:请结合上一篇文章一起阅读。子串的移动: 现在我们用一个int类型的数组来记录当前字符前面最多有多少个子字符与字符串一开始是相同的。 前两个字符的next数组对应的值都是0,第一个是0,是因为他前面没有字符,第二个字符前面就一个字符与字符串一开始的字符是同一个字符,如果算上的话,那么从相同的字符的下一个字符开始比较,还是失配点与第二个字符开始比较,没有意义,所以前两个字符对应的值都是0.

2017-03-29 17:55:23 402

原创 串匹配算法(二)——手把手教你KMP算法(1)

KMP算法是一种比较高效的串匹配算法,高效体现在:源串下标不回溯,子串合理的移动。 KMP算法属于思路比较复杂的算法,我自己学习这个算法可以说是第三次了,前两次是似懂非懂的,但是最近在刷牛客题的时候,发现这个算法还是挺高效的,按照常规思路我的程序在时间复杂度根本通不过,所以下狠心再次去学习这个算法,终于整理出来了。现在觉得要想学懂这个算法必须要耐下心来一遍遍的变量跟踪。 本文主要整理出我自己学习

2017-03-29 17:19:15 313

原创 串匹配算法(一)

本文主要介绍普通的串匹配算法,这种算法的特点是好想,但是消耗时间,不够高效,在牛客上做题时遇到这种题,一般情况下是通不过的。该算法为后面的KMP算法做一个铺垫。 思路: 从源字符串的第一个字符开始与子字符串的第一个字符开始比较,字符相同,继续比较下一个字符,遇到不相同的,源字符串回溯到第二个字符,子字符串回溯到第一个字符,再次比较….直到循环停止。我的代码:package com.zha

2017-03-28 16:41:14 356

原创 实现线程内共享数据(二)

本文主要介绍利用java提供的ThreadLocal类去实现线程之间的数据共享。 ThreadLocal内部是一个Map来存放当前线程对象Thread和数据,一个ThreadLocal对象只能存放一个数据,要想存放多个数据,可以创建多个ThreadLocal对象或者将数据打包成一个pojo对象,将pojo对象存放在1ThreadLocal中。本文存放pojo对象,用单例的形式实现pojo对象类。

2017-03-27 16:18:49 305

原创 实现线程内共享数据(一)

本文主要实现线程范围内共享数据,即当前线程运行的时候,得到该线程对应的数据,保证该线程每次运行的时候数据是共享的。 思路: 将当前线程对象和数据保存保存在map集合中,当该线程运行的时候,从根据当前线程对象,从map集合中获取到对应的数据,进行操作。

2017-03-25 17:07:10 538

原创 多态(二)--例子

有一个动物类,1.0版本只有吃、睡得方法。 而1.1时代动物类就有了很多子类,这些子类都有他们各自吃睡得方法,但是行为跟父类是一样的,属于方法的重载。因为动物太多了,我可以每次都去创建对象,但是每次调用对象的方法都是相同的过程,所以1.2时代,我可以把这个过程抽取出来,放在另外一个工具类中,把我每次调用方法的过程都封装到工具类中。 在这个工具类中,这些方法处理参数不同,其他的都相同。我又发现这些

2017-03-24 21:32:35 245

原创 Java中的多态(一)

多态:事物存在的多种体现形态; 1.多态的基本体现: 父类的引用指向了自己的子类对象eg: Animal c = new cat();父类的引用也可以接受自己的子类对象。  2.多态的前提:必须是类与类之间有继承或实现关系,通常存在覆盖,但体现多态性的覆盖代码必须和父类中的代码功能一致3.多态的好处:多态的出现提高了程序的扩展性;找到对象的共同所属类型,通过操作

2017-03-21 22:46:47 255

原创 抽象类、接口的具体例子

Java中抽象类的举例:       StringBuffer和StringBuilder共同继承了一个父类AbstractStringBuilder。因为StringBuffer是线程安全的,StringBuilder是线程不安全的,这两个类中的数据、操作数据的行为都是一样的。StringBuffer为了保证他的线程安全,在他的每个方法上加了synchronized,即两个类的同名方法内要做

2017-03-20 20:47:46 762

原创 抽象类接口总结

对于抽象类、接口、多态这三个看似很基础知识,我每次面试都会遇到,每次都让我举例,说明什么情况下用抽象类、接口,多态,每次答得的不尽人意,最近把这些总结了下,今天先总结下抽象类和接口的基础知识点,明天给出他们的例子。抽象类和接口基础知识点总结:抽象类——abstract: 1.抽象类的解释:       当多个类中出现相同功能的函数,但功能主体不同,这时可以向上抽取,只抽

2017-03-19 20:20:19 420

原创 java类加载及new对象的过程

package com.zhangyike.staticExcise; /* SubClass sub = new SubClass(); 这句话到底做了什么事情呢? 1.javac编译.java源文件形成.class字节码文件; 2.new SubClass()对象时,先检查有没有父类,有父类,类加载器(ClassLoader)先将父类的Class文件读入内存,创建一个java.lang

2017-03-17 08:41:58 7868 3

原创 static关键字总结

static关键字:1.是一个修饰符,用于修饰成员变量和成员函数;2.不在堆空间中,不是每个对象单独有的,是所有对象公用一份,节省内存空间。3.当成员被静态修饰后,多了一种调用方式,除了被对象调用外,还可以直接用类名调用,格式:类名.静态变量名。4.特点:  1.随着类的加载而加载;只要有类,就有这个静态存储变量;也就是说随着类的消失而消失  2.优先于对象存在;  3

2017-03-16 09:00:20 260

原创 StringBuffer和StringBuilder源码解析(三)-- indexOf()方法

1.    indexOf(…)找到元素出现的位置。int indexOf(Stringstr)int indexOf(Stringstr, int fromIndex)static intindexOf(char[] source, int sourceOffset, int sourceCount,  char[] target,                       i

2017-03-15 18:17:37 2038

原创 StringBuffer和StringBuilder源码解析(二)--append(..)和insert(...)方法

1.append()字符串拼接方法。StringBufferappend(Object obj)StringBufferappend(String str)StringBuffer append(StringBuffersb)StringBufferappend(CharSequence s)StringBufferappend(CharSequence s, int star

2017-03-14 08:47:32 1078

原创 StringBuffer和StringBuilder源码解析(一)--构造方法

public final classStringBuffer(StringBuilder)extends AbstractStringBuilderimplementsjava.io.Serializable, CharSequence1. 这个类final类型的,不能被继承,不能被修改;2. 继承了AbstractStringBuilder抽象类,这个抽象类中提供了很多方法,查看源码可以看到StringBuffer中的方法基本上都调用了这个类中的方法。为什么要写这个抽象类作为父类呢?我认为这个抽象

2017-03-13 17:40:29 1702 1

原创 一不小心就有的异常—NullPointerException

java中的空指针异常

2017-03-10 19:40:12 240

原创 mysql数据库中的事务

1. 什么是事务:事务中有多个操作,这些操作的执行结果要么完全成功,要么完全失败,不可能出现一部分成功,一部分失败的情况。比如说转账业务:张三给李四转100w,那么有两个操作,一个是张三减去100w,李四加上100w,两个操作都成功,要么都失败,不能出现张三减了100w,李四没有加上100w的情况。2.事务的四种特性:原子性:事务中的操作都是不可分割的原子单位,事务中所有的操作要么全部

2017-03-10 09:30:39 378

原创 SSM框架整合+阿里巴巴数据库连接池

本文以简单的注册登录为例,演示Spring、SpringMVC、mybatis框架的集成,采用alibb的数据库连接池的jar,并加入日志。1.应用mvc模型搭建项目的框架。文件夹说明:1.1.controller包:控制层,将客户端提交到服务端的数据进行分发,让service层去处理。1.2.service包:把控制层提交的数据根据业务规则,去处理,有关数

2017-03-09 15:06:06 1084

原创 二叉树遍历的递归实现

二叉树有三种遍历方式,分别是中根序,先根序和后根序。中根序的执行顺序:左孩子——>根节点——>右孩子先根序的执行顺序:根节点——>左孩子——>右孩子后根序的执行顺序:左孩子——>右孩子——>根节点中根序:84925A1637先根序:124895A267后根序:894A526731最近看牛客好多题是给你中根序和先根序让求后根序或者画出树状图来

2017-03-07 09:51:07 381

java中的三种代理模式

该资源提供了三种代理模式的使用代码,其中包含每种模式的jar包、具体代码、Demo测试类,详细的注释帮助你来理解。

2017-05-03

空空如也

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

TA关注的人

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