自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

转载 设计模式:装饰者模式

前言装饰者(Decorator)模式动态地将责任附加到对象上,若要扩展功能,装饰者模式提供了比继承更加有弹性的替代方案(来自 Head First 设计模式)UML图Component:组件接口,每个组件都可以单独使用。也可以被装饰者包装起来使用。Concrete:具体的组件。扩展自组件接口Decorator:装饰者接口。ConcreteDecorat...

2019-03-02 15:20:00 95

转载 设计模式:适配器模式

前言适配器(Adapter)模式是将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法一起工作的两个类能够一起工作。UML适配器模式是比较容易理解的设计模式,下面看UML图:可以看到,适配器模式主要分为4个角色:1.client:客户端,即实际使用目标接口方法的类2.Target:目标接口,即提供给客户端调用的方法3.Adaptee:...

2019-03-01 11:59:00 106

转载 抽象类和接口

在Java中,抽象类接口是面向对象的重要体现。抽象类抽象类基于继承的概念。用abstrac关键字修饰,抽象类定义了一组抽象的方法,抽象方法的具体实现由子类来完成。抽象方法的声明:abstract void print();抽象方法也是用abstract 来修饰。但是不能有具体的实现,所以后面是没有{}的。抽象类的声明:abstract class ...

2019-02-10 11:53:00 95

转载 面向对象基本特征:多态

多态是面向对象最重要的特征。具体到Java中是如何体现的呢。多态在我们的使用中其实就是重载与重写。下面分别进行讲述一下。重载重载的定义:一个类中,如果有两个方法的方法名相同,但参数列表不同,可以说一个方法是另一个方法的重载。注意2点:1.方法名相同 2.参数列表不同(参数列表为:参数的类型,参数的个数)调用重载方法的时候,JVM会根据不同的参数列表来选择合适的方法...

2019-02-09 23:22:00 129

转载 面向对象基本特征:封装与继承

面向对象的4个基本特征:抽象,封装,继承,多态(后面写)抽象抽象是忽略与目标无关的方面,专注于当前目标的方法。抽象包括2方面:数据抽象,过程抽象数据抽象:表示一类事物的特征,就是对象的属性。过程抽象:表示一类事物的行为,就是对象的方法。封装封装(也成为数据隐藏).将数据和方法(即操作数据的过程)组合起来。并对对象的使用者隐藏数据的实现方式。只能通过对象的方式与...

2019-02-09 19:06:00 78

转载 从i=i++开始的JVM之旅

JVM分类建了很久了,一直都没写,总感觉这方面太头疼,一直都似懂非懂。今天做到了一道题目关于i=i++,方法间参数的传递其实题目也没这么难,也就是i=i++,i的结果的问题。还有方法间参数的传递。已经写了很久这种东西,基本上没去细细想为什么。反正很自然的做对了。但是看评论还是看到了一个大神通过javap从栈帧的角度去解释了答案,突然发现我能看懂他从JVM的角度去解释答案的过...

2019-02-01 02:01:00 168

转载 链表练习题

这段时间将会用这版面来记录一些链表的题目,脚踏实地去理解链表和使用链表。加油。(也许不是最优解,但是一定是符合题目要求的而且AC的)1.移除链表元素leetcode203题目:删除链表中等于给定值val的所有节点。这是开始写的第一道,准备用3种方式来完成这道题目,记录自己的思路。1.一般使用head节点完成思路:既然是链表的删除元素,也只有next才能访问到其他元...

2019-01-31 02:09:00 158

转载 排序算法

简单介绍排序算法是学完数据结构后最开始接触的也是非常常用的算法。下面将常用排序算法进行介绍并代码实现以下时间复杂度总结先把结论摆出来吧。这样比较好记忆。1.冒泡排序冒泡排序是最开始学的排序算法。时间复杂度为O(n²)步骤:依次比较前后2个数字的大小,如果前面大于后面,则交换位置。(按升序来排的话).public void bubbleS...

2019-01-29 16:50:00 119

转载 String源码初了解

简单介绍String是Java常见的数据类型。常说的不可变类。通过源码来看一下比较重要的方法。类名定义public final class String implements java.io.Serializable, Comparable<String>, CharSequence {可以看到,首先final修饰了String类,表明了St...

2019-01-28 01:14:00 84

转载 剑指Offer:反转链表

剑指Offer:反转链表由于链表具有天然的递归结构,反转链表其实很容易想到递归的方式。这里暂不说了。说一下非递归的方式非递归的方式由于链表的next维持关系链的关键。反转的过程就需要用额外的指针指向当前节点的前一节点和后一节点,不然的话就会发生断链了。图示:具体步骤伪代码可为:1. pNext指向当前节点的next以保持链 pNext = curr...

2019-01-27 02:06:00 86

转载 剑指offer:旋转数组的最小数字

剑指offer:旋转数组的最小数字思路:由于数组是递增的。所以可以考虑2分查找。能达到O(logn)时间复杂度。参考图示应该可以看出2个指针的变化情况。如果arr[mid]>=arr[p1],则说明p1的位置要变成mid的位置。如果arr[mid]<=arr[p2],那说明p2的位置要变成mid的位置。跳出循环的条件就是arr[p1]<arr[...

2019-01-27 00:54:00 57

转载 Java集合框架:LinkedList

简单介绍:LinkedList 也是List接口的实现类。一样有序且允许重复,但是与ArrayList的结构不同。ArrayList是基于数组的结构。而ArrayList是基于双向链表的结构。链表的元素的内存空间可以不连续。在插入和删除的效率比较高,随机访问的速度比较慢。时间复杂度:add:O(1)remove:O(1)get:O(n)set:O(n)类名定义...

2019-01-26 21:26:00 87

转载 设计模式:单例设计模式

单例设计模式由于某些类创建对象可能会耗费内存和花费时间。一般将这种类设计为单例设计模式会比较好。1.对象在内存中只有一个,减少了内存的开销2.可以控制对象的创建时刻单例模式的特点:1.单例的类在整个JVM中只有一个实例2.需要提供一个全局访问点(1.公开的静态变量,2.公开的静态方法)1.饿汉式:特点:类加载的时候就创建了实例//饿汉式/*...

2019-01-24 23:56:00 88

转载 Java集合框架:ArrayList

ArrayList是常说的动态数组。下面通过部分源码来加深对ArrayList的了解。类名定义:默认容量10:常用的构造方法添加元素:(直接添加和按下标添加)删除元素:按下标删除:rangeCheck判断index是否大于size按对象删除对象的对比是通过equals()。所以如果对象重写了equals方法的话,要注...

2019-01-24 21:26:00 100

转载 剑指offer:二维数组的查找

题目:二维数组的查找思路:由于二维数组是从左到右,从上到下是递增的,所以可以从右上角或者左下角开始选择,比如从右上角开始,右上角的值都比目标值大的话,而右上角所在列的值都比右上角的值大,则所在列排除。右上角的值都比目标值小的话,而右上角所在行的值都比右上角的值小,则所在行排除。以此类推,查找会以行或者列的范围进行缩小。直到得到与目标值相同的值或者没有相同值...

2019-01-24 11:39:00 119

转载 Java集合框架:HashMap

今天复习到了HashMap,感觉好多东西都忘记了。所以去把源码看了一遍,把有些东西记了下来并注释了一下。类:public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable  主要属性://序列号...

2019-01-01 20:52:00 92

转载 2个队列实现栈

思路:由于队列是先进先出的,不论怎么样都无法逆序输出最后一个元素。因此暂时只能想到将第一个队列的除了最后一个元素外的所有值都转移到第二个队列,这样队列1剩下的元素出队就是出栈的元素了。思路1:q1作为入栈出栈的,q2作为一个中间站,不存储数据入栈:直接q1入队出栈:将q1除了最后一个元素外,其他的全部入队到q2中,然后q1剩下的1个元素出队列。之后把q2中的全部元素入队回q1...

2019-01-01 16:56:00 65

转载 剑指offer:2个栈实现队列

题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:栈的特点后进先出,队列的特点是先进先出。2个栈的情况可以通过2次的压栈和出栈实现队列的先进先出。其中一个栈来实现入队,一个栈实现出队。图示:注意:对于入队操作,直接对stack1进行入栈操作就好了。对于出队操作,需要有几个条件判断一下:1.当stack1和stack...

2019-01-01 15:36:00 78

转载 Java访问权限

一图解:转载于:https://www.cnblogs.com/fabaogege/p/10131081.html

2018-12-17 13:50:00 78

转载 后台解析JSON多个实体类数据

最近想用JSON发送1次发送多个数据回后台的时候,涉及到不同的表参数。网上找的解析JSON的例子大多参数都是对象。或者JSON里面的参数都是和类的属性对应的。但是我想要传的是参数是在不同的类里面的。我又不想用参数的形式多次分别传。就想用JSON一起传然后分别解析。难道我每一个涉及到不同类的参数都要新建一个实体类加上对应的属性才能获取解析?太扯了。。终于想到了用Map的方法进行解析。因...

2018-12-17 12:52:00 858

转载 mybatisGenerator配置时候生成文件的路径问题

今天重新想用mybatis-generator逆向生成dao,mappr,domain文件时候,突然失败了。但是控制台也没报错。确认了配置,数据库连接及表没问题。最后发现是路径的问题。之前的是相对路径,万般无奈之下我改成了绝对路径试试。。就成功了。改回相对路径又失败了。一直用的都是相对路径的方式,突然失效了。我感觉是IDEA的问题,但是暂时还没想懂为什么。先记着再说。...

2018-12-14 16:59:00 1272

转载 单向链表

单向链表由于单向链表的head节点不能找到前一个节点,对于添加和删除节点时候对于首部的操作会不一样,因此将head节点改为dummyHead,一个虚拟的头结点。便于进行操作的统一。链表的成员变量及初始化class LinkedList<E> { private Node dummyHead;//链表虚拟头节点 private int siz...

2018-12-13 15:48:00 73

转载 MD5加密及密码验证

MD5加密是常用的加密算法。可以对任意字符串的进行加密。生成16位字符数组。密码验证:将输入的密码进行MD5加密转换后的字符串与数据库的密码进行比对。相等则验证通过。 1 package utils; 2 3 import java.security.MessageDigest; 4 import java.security.NoSuchAlgorithmExc...

2018-12-12 23:11:00 484

转载 观察者模式

观察者模式突然想起还没用Java内置观察者模式改写。。。。现在理论先不写了。后面一起补。先放出源码吧。观察者模式场景:一论坛作者有许多关注他的读者,若作者更新文章,则关注他的读者会收到通知gitHub源码:观察者设计模式转载于:https://www.cnblogs.com/fabaogege/p/10109539.html...

2018-12-12 17:21:00 79

转载 数组

数组有序的元素序列,Java的数组用于存储固定大小的多个同类型的元素。数组方法及实现成员变量及构造函数Class Array<E>{  private E[] data;// 存放数据的集合  private int size;//有效元素个数  public Array(){  data = (E[])new Object[10];  s...

2018-12-12 11:52:00 98

转载 Java的main方法

main作为Java的程序入口方法一般写法:public static void main(String[] args){  方法体 }public :写法规定,标识该类对其他类公开。static:main()作为程序入口,并不会实例化,所以需要定义成静态方法(类方法),在类加载了以后就可以进行调用。void:JVM作为Java程序的最底层,返回为voidSt...

2018-12-05 09:38:00 80

转载 Java多线程

进程的生命周期及5种基本状态线程的生命周期:图示:线程的5种基本状态:1.新建状态(New):线程创建后,进入New状态,如:Thread myThead = new Thread();2.就绪状态(Runnable):调用线程对象的start()方法,进程进入就绪状态并等待CPU调度(还未执行)3.运行状态(Running):CPU开始调度处于Runnabl...

2018-12-05 09:10:00 81

转载 剑指Offer题目5:替换空格

题目:替换空格题目:请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入“We are happy.”,则输出“We%20are%20happy.”。解题思路:O(n2)解法:遍历字符串,每一次找到空格就进行替换,空格替换成%20,由于1个字符替换成了3个字符,后面的数字都要往后移动2个字节字符串长度为n,每一个空格后面都有n个字符进行移动,所以时间复杂度为O...

2018-12-04 19:51:00 100

空空如也

空空如也

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

TA关注的人

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