自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ReDisaster的博客

文章内容参考即可

  • 博客(41)
  • 资源 (5)
  • 问答 (10)
  • 收藏
  • 关注

原创 java数据库连接

本文以mysql数据库为例一:Java访问数据库的具体步骤:1.加载(注册)数据库Class.forName("com.mysql.jdbc.Driver").newInstance(); 2.建立链接java.sql.DriverManager类中有三种获取数据库连接的方法,虽说是三种,但是获取链接的方法是大同小异的,方法中都是通过return (getConnection(url, info,

2017-05-12 21:47:03 702

原创 感知哈希算法实现简单图片搜索

一、我先声明一下,本文中的源代码是来自网上资源,我这里演示一下如何在Java Web中使用该算法。 资源地址:http://download.csdn.net/detail/haigenwong/4412334二、 1:servlet部分代码:List<String> resultPic = SimilarImageSearch.search(filenametest+"."+prefix);

2016-10-09 16:38:27 1375 1

原创 windows下redis集群安装(V3.2.100)单机模式

一、windows下的Redis资源:Redis官网仅有linux版本,windows下redis由Microsoft维护,Github地址为:Microsoft Redis二、单服务安装:Github上下载文件之后,直接解压到PC下,选择将Redis配置成服务:CMD下运行:配置服务redis-server --service-install redis.windows.conf -...

2019-05-31 13:25:43 389

转载 设计模式--Delegate

委派模式 在常用的23种设计模式中其实面没有委派模式(delegate)的影子,但是在Spring中委派模式确实用的比较多的一种模式,Spring MVC框架中的DispatcherServlet其实就用到了委派模式,有前辈将其总结为代理模式和策略模式的组合。下面通过一个简单的实例来总结委派模式委派模式跟静态代理模式以及策略模式的区别? 委派模式:代理人全权负责这一件事。如:老板给项目经...

2018-08-24 22:05:16 1109

转载 设计模式--Strategy

策略模式 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用...

2018-08-24 21:38:35 249

转载 设计模式--Template

模板模式 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。主要解决:一些方法通用,却在每一个子类都重新写了这一...

2018-08-24 17:24:30 199

转载 设计模式--Prototype

原型模式 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,...

2018-08-24 12:27:12 325

原创 设计模式--abstractFactory

抽象工厂模式 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的...

2018-08-24 01:09:41 203

原创 设计模式--工厂方法模式

1.工厂方法模式 1.1 描述 定义一个创建对象的工厂接口,让子类决定实例化哪一个类,将实际创建工作推迟到子类当中。1.2 使用场景 1、日志记录器:记录可能记录到本地硬盘、系统事件、远程服务器等,用户可以选择记录日志到什么地方。 2、数据库访问,当用户不知道最后系统采用哪一类数据库,以及数据库可能有变化时。 3、设计一个连接服务器的框架,需要三个协议,”POP3”、”IMAP”、”H...

2018-08-24 00:56:14 237

原创 设计模式--Factory

工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 优点: 1、一个调用者想创建...

2018-08-24 00:46:06 169

原创 设计模式--Proxy

1.代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系...

2018-08-23 21:45:21 187

转载 SQL--全连接(FULL OUTTER JOIN)

FULL OUTER JOIN 关键字只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行.FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。SQL FULL OUTER JOIN 语法SELECT column_name(s)FROM table1FULL OUTER JOIN table2ON ta...

2018-08-12 18:55:54 9523

转载 SQL---右外连接(RIGHT JOIN)

RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。SQL RIGHT JOIN 语法SELECT column_name(s)FROM table1RIGHT JOIN table2ON table1.column_name=table2.column_name;或SELECT colu...

2018-08-12 18:46:37 1027

转载 SQL--左外连接(LEFT JOIN)

LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。SQL LEFT JOIN 语法:SELECT column_name(s)FROM table1LEFT JOIN table2ON table1.column_name=table2.column_name;或SELECT co...

2018-08-12 18:27:05 14565

转载 SQL-内连接(Inner join)

SQL INNER JOIN 语法:SELECT column_name(s)FROM table1INNER JOIN table2ON table1.column_name=table2.column_name;或SELECT column_name(s)FROM table1JOIN table2ON table1.column_name=table2.col...

2018-08-12 18:23:11 3755

转载 排序算法---希尔排序(5)

希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。...

2018-08-10 17:24:32 227

转载 排序算法---快速排序(4)

快速排序的基本思想是,通过一轮的排序将序列分割成独立的两部分,其中一部分序列的关键字(这里主要用值来表示)均比另一部分关键字小。继续对长度较短的序列进行同样的分割,最后到达整体有序。在排序过程中,由于已经分开的两部分的元素不需要进行比较,故减少了比较次数,降低了排序时间。package com.zust.edu.sort;import java.util.Arrays;public...

2018-08-09 20:29:54 225

转载 排序算法---直接插入排序(3)

直接插入排序基本思想是每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。 package com.zust.edu.sort;import org.junit.Test;public class DirectInsertionSort { public static void swap(int []arr,int a,int b){ ...

2018-08-09 20:08:43 530

转载 排序算法-----简单选择排序(2)

简单选择排序是最简单直观的一种算法,基本思想为每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,简单选择排序是不稳定排序。在算法实现时,每一趟确定最小元素的时候会通过不断地比较交换来使得首位置为当前最小,交换是个比较耗时的操作。其实我们很容易发现,在还未完全确定当前最小元素之前,这些交换都是无意义的。我们可以通过设置一个变量min,每一次比较仅存储较小元素...

2018-08-09 19:57:48 162

转载 排序算法-----冒泡排序(1)

在冒泡排序的过程中,如果某一趟执行完毕,没有做任何一次交换操作,比如数组[5,4,1,2,3],执行了两次冒泡,也就是两次外循环之后,分别将5和4调整到最终位置[1,2,3,4,5]。此时,再执行第三次循环后,一次交换都没有做,这就说明剩下的序列已经是有序的,排序操作也就可以完成了。根据上面这种冒泡实现,若原数组本身就是有序的(这是最好情况),仅需n-1次比较就可完成;若是倒序,比较次数为...

2018-08-09 19:16:41 312

原创 获取一个字符串的所有子串

获取一个字符串的所有子串import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Set;public class StringSplit { private static Set<String> aa = new HashSet<String>();//存贮结果

2017-12-16 00:34:11 6686

原创 后台学习历程

后台学习历程一、基础阶段1.java基础 java基础方面我是看这个视频学的,感觉还不错(http://www.atguigu.com/download.shtml)。学习进度就按照他安排好的学,20天也就够了。其中重点的内容在于:集合,多线程,反射,io,三大特性。 其中java源码需要自己深入看一下,可以自己手写一些类,java基础还是很重要的,有时间的话可以多看看。2.html和css

2017-10-12 03:24:48 2654 3

原创 内部类

内部类需要遵守以下守则: 1.内部类的类名只用于定义它的类或者语句块之内,在外部引用时必须给出带有外部类名的完整名称。 2.内部类的名字不允许与外部类的名字相同。 3.内部类可以是抽象类或接口,若是接口,则可以有其他内部类实现。按照内部类是否含有显示的类名把内部类分为1.实名内部类 2.匿名内部类实名内部类实名内部类格式: [类修饰词表] class 类名 [extedns 父类名][imp

2017-04-16 19:36:55 805

原创 Java类对象排序问题---如何对不同类的所有对象进行排序

问题如下:设有A、B两个类,其中均含有属性:java.util.Date time;A中含有若干个属性a1…an,B中含有若干个属性b1…bm, 现在有A的若干个实例 A1 A2 A3 …,B的若干个实例B1 B2 B3… 现在按照time属性进行排序,依次输出A和B的所有实例。我的设想是先创建一个公共父类,其中含有time属性,并且实现comparable接口。//公共父类class A i

2017-03-29 10:35:27 2336

原创 Java - 泛型

泛型的作用泛型,JDK1.5新加入的,解决数据类型的安全性问题,其主要原理是在类声明时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这样在类声明或实例化时只要指定好需要的具体的类型即可。Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException异常。同时,代码更加简洁、健壮。泛型的声明及实例化public class

2017-03-22 10:48:41 292

原创 Java集合概述

Java 集合可分为 Collection 和 Map 两种体系Collection接口:Set:Set接口是Collection的子接口,set接口没有提供额外的方法。Set 集合不允许包含相同的元素,如果试把两个相同的元素加入同一个 Set 集合中,则添加操作失败。Set 判断两个对象是否相同不是使用 == 运算符,而是根据 equals 方法。 实现类: HashSet: Has

2017-03-20 22:05:41 280

原创 类成员之四--初始化块

作用:在构造器之前执行的一段代码,它的用处是,如果一段初始化处理代码对所有对象完全相同,且无须接受任何参数,就可以把这段提取到初始化块中。系统将在类初始化阶段执行静态初始化块,而不是在创建对象时才执行。因此静态初始化块总是比普通初始化块先执行。程序执行顺序: 所有类的静态初始化块(从父类自顶向下) -> 所有类的普通初始化块然后接着类的构选器(从父类自顶向下)代码:package com.v512

2017-03-15 20:40:25 560

转载 设计模式--Singleton

第一种(懒汉,线程不安全): `public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance == null) { instance = new Sin

2017-03-15 19:25:17 341

原创 虚拟方法调用

定义:在子类中可以根据需要对从父类中继承来的方法进行改造,也称方法的重置、覆盖。在程序执行时,子类的方法将覆盖父类的方法。要求: 1.重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值类型。 2.重写方法不能使用比被重写方法更严格的访问权限。 3.重写和被重写的方法须同时为static的,或同时为非static的。 4.子类方法抛出的异常不能大于父类被重写方法的异常。如果现在父类的

2017-03-15 07:49:04 943

原创 this关键字

在java中,this关键字比较难理解,它的作用和其词义很接近。this表示当前对象,可以调用类的属性、方法和构造器。 它在方法内部使用,即这个方法所属对象的引用; 它在构造器内部使用,表示该构造器正在初始化的对象。什么时候使用this关键字呢? 当在方法内需要用到调用该方法的对象时,就用this。注意点: 1.当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该

2017-03-14 21:13:38 318

原创 特性---封装

Java中通过将数据声明为私有的(private),再提供公共的(public)方法:getXxx()和setXxx()实现对该属性的操作,以实现下述目的: 1.隐藏一个类中不需要对外提供的实现细节; 2.使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作; 3.便于修改,增强代码的可维护性;Java权限修饰符public、protected、privat

2017-03-14 20:55:15 334

原创 方法参数传递

方法,必须有其所在类或对象调用才有意义。 若方法含有参数: 形参:方法声明时的参数。 实参:方法调用时实际传给形参的参数值。Java的实参值如何传入方法呢? Java里方法的参数传递方式只有一种:值传递。 即将实际参数值的副本(复制品)传入方法内,而参数本身不受影响。代码: public class TestTransfer { public static vo

2017-03-14 20:47:02 513

原创 可变个数形参方法

1.可变参数:方法参数部分指定类型的参数个数是可变多个。 2.声明方式:方法名(参数的类型名…参数名)。 3.可变参数方法的使用与方法参数部分使用数组是一致的。 4.方法的参数部分有可变形参,需要放在形参声明的最后。 //下面采用数组形参来定义方法 public static void test(int a ,String[] books); //以可变个数形参来定义方法 public

2017-03-14 20:24:13 648

原创 排序算法

衡量排序算法的优劣:1.时间复杂度:分析关键字的比较次数和记录的移动次数 2.空间复杂度:分析排序算法中需要多少辅助内存 3.稳定性:若两个记录A和B的关键字值相等,但排序后A、B的先后次序保持不变,则称这种排序算法是稳定的。常用的内部排序1.选择排序:直接选择排序、堆排序直接选择排序:第一次找出最小的元素放到第一个位置处,第二次找第二小的元素放到第二个位置,以此类推。 代码如下: 自定义类

2017-03-13 21:33:17 258

原创 数据结构

数据逻辑结构:数据元素之间存在的关联关系被称为数据的逻辑结构。归纳起来,应用程序中的数据大致有如下四种基本的逻辑结构: 1.集合:数据元素之间只有“同属于一个集合”的关系 2.线性关系:数据元素之间存在一个对一个的关系 3.树形结构:数据元素之间存在一个对多个的关系 4.图状结构或网状结构:数据元素之间存在多个对多个的关系 同一种的逻辑结构,在底层通常有两种物理存储结构: 1.顺序存储结

2017-03-13 15:55:52 338

原创 数组

一维数组初始化: 动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行 静态初始化:在定义数组的同时就为数组元素分配空间并赋值。二维数组初始化: 格式1(动态初始化):int[][] arr = new int[3][2]; 格式2(动态初始化):int[][] arr = new int[3][]; 格式3(静态初始化):int[][] arr = new int[][]{{3,

2017-03-13 12:35:53 276

原创 类型转换

代码1:`package com.v512.main;//变量:基本数据类型(8个) vs 引用数据类型(类、接口、数组) //1.java中的变量定义的格式:数据类型 变量名 = 初始化值 class TestVeriable { public static void main(String[] args) { //2.变量得先定义,后使用 in

2017-03-12 14:59:43 256

原创 java api文档生成

说明: 文档注释(java特有) 格式:/** * @author 指定java程序的作者 *@version 指定源文件的版本 *@param 方法的参数说明信息 */ 注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。

2017-03-12 14:57:42 353

原创 System.gc()--垃圾回收

代码:`package com.v512.main;public class GC {public void finalize() { System.out.println("the Object is going..."); } public static void main(String[] args) { for (int i = 0; i < 100; i++

2017-03-12 14:04:00 493

原创 获取时间差(类似微信朋友圈消息的时间显示)

获取时间差(类似微信朋友圈消息的时间显示)

2016-11-28 20:54:42 2511

c3p0连接池需要Jar包.XML文件

c3p0连接池需要Jar包.XML文件

2017-05-12

计算时间差

外部调用这个函数public String value(String newTime,String oldTime) 传入两个String类型的参数,这样的类型:yyyy-MM-dd HH:mm:ss

2016-11-29

引入Uediter的javaweb项目

缺分,请见谅,有问题私信我CSDN账号!

2016-11-23

jsp+servlet实现的小型web项目(含SQL)

需要帮助可私信我CSDN账号:LoveRestart

2016-11-23

web爬虫程序(亲测可用,含sql文件)

web爬虫程序(亲测可用,含sql文件) 有问题咨询[email protected] SohuNews.java第122行插入新闻时间有误,需要的可以自己改下

2016-11-02

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

TA关注的人

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