- 博客(17)
- 收藏
- 关注
原创 排序算法----------基数排序详解
在讲基数排序之前,先了解一下桶排序,因为基数排序就是在桶排序的基础上进行优化的。**桶排序:**创建一个新的数组,将原数组中的数放入到下标对应的位置中,如 5放置到 a[5]。这种方法虽然简单但是在排序数组很大的时候将会占用过大的空间,所以不提倡使用。基数排序的原理(先对个位数排序,再对十位数排序,以此类推)1.遍历数组中各个数的最尾部数(个位数),将其放置到对应的下标里。再逐个取出。...
2019-09-27 10:17:49 146
原创 MYSQL晋级之路----------(4)视图以及存储过程
视图的定义视图是虚拟的表,与数据库中我们所定义的数据库表不一样,视图只包含使用使用时动态检索数据的查询。视图就是对SELECT语句的一种封装。视图的使用1.创建: CREATE VIEW viewname AS SELECT语句2.删除 DROP VIEW3.更新视图(1)先DROP 再 CREATE(2)CREATE OR REPLACE VIEW存储过程的定义存储过程就是...
2019-09-25 13:29:07 108
原创 MYSQL晋级之路----------(3)搜索(全文、扩展、布尔)
全文搜索两个最常使用的引擎为MyISAM和InnoDB,前者支持全文本搜索,而后者不支持。指定引擎为MyISAM,且需要创建FULLTEXT索引,可以指定多列,但在之后的使用中必须在MATCH中指定相同的顺序。具体使用全文搜索MATCH() AGAINST 必须在创建FULLTEXT索引之后才可使用,且MATCH后的()内容必须与FULLTEXT的()中内容一致(包括顺序)。全文搜索...
2019-09-24 15:36:45 311 1
原创 MYSQL晋级之路----------(2)函数
文本处理函数UPPER函数UPPER(列名)将文本转换为大写常用文本处理函数LEFT/RIGHTLEFT(字段名,LENGTH) 返回字段名左边长度为LENGTH的字符串LOCATE(substr,str), LOCATE(substr,str,pos)LOCATE第一个语法返回字符串str第一次出现的子串substr的位置。第二个语法返回第一次出现在字符串str的子串s...
2019-09-24 11:12:44 203
原创 MYSQL晋级之路----------(1)拼接(计算)字段
拼接字段CONCAT的使用SELECT CONCAT(ven_name,’(’,vend_country,’)’)FROM vendorsORDER BY vend_name;CONCAT拼接串,即把多个串连接起来形成一个较长的串,各个串之间用逗号隔开TRIM函数LTRIM():去除括号中列值的左边空格RTRIM():去除括号中列值的右边空格TRIM();去除括号中列值的两边空...
2019-09-24 09:58:11 95
原创 Java并发编程----------2(volatile)
volatile的使用在多线程并发编程中synchronized和volatile都扮演着重要的角色。Volatile是轻量级的synchronized,保证了共享变量的“**可见性**”。可见性是指当一个线程改变一个变量的时候,另外一个线程能读到这个变量的值。volatile的定义与实现原理**定义:**如果一个变量被声明为volatile,Java线程内存模型确保所有线程访问这个变量...
2019-09-21 16:01:42 90
原创 Java并发编程----------1
线程安全性当多个线程访问一个类的时候,如果不用考虑这些线程在运行时环境下的调度和交替执行,并且不需要额外的同步以及在调用方代码不必作其他协调,这个类的行为依然是正确的,那么称这个类是线程安全的。简单来说就是,一个类无论什么时候调用、多少线程来调用,他执行的结果依旧与开发人员预期的一样。原子性程序的所有操作,要么全部完成,要么都不完成。锁为了保护状态的一致性,要在单一的原子操作中更新相互...
2019-09-21 14:17:21 83
原创 设计模式8-------外观模式
外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这个子系统更加容易使用。(1)定义多个方法(接口)public class SubSystemOne { public void MethodOne(){ System.out.println("子系统方法1"); }}/***********************...
2019-09-19 10:21:05 73
原创 设计模式7-------模板方法模式
模板方法模式定义一个操作中算法的骨架,将一些步骤延迟到子类中。模板方法模式可以不改变一个算法的结构即可重定义该算法中的某些步骤。AbstractClass 是抽象类,也就是上面所说操作中算法的骨架,所就是所谓的“模板”,它给出了一个顶级逻辑的骨架,逻辑的组成步骤在子类中实现。public abstract class AbstractClass { public abstract ...
2019-09-19 09:52:38 67
原创 Java 深复制(深拷贝)
在原型模式中,涉及到了浅复制的内容,很好奇深复制是如何实现的,因此另外再找了一些深复制的资料,对此进行总结实现深复制的方法(1)重写clone方法/* * 创建年龄类 * 即被引用的类 */class Age implements Cloneable{ //年龄类的成员变量(属性) private int age; //构造方法 public Age(...
2019-09-18 13:52:02 200
原创 设计模式6-------原型模式
定义一个抽象类,实现Cloneable接口public abstract class Shape implements Cloneable{ private String id; protected String type; abstract void draw(); public String getType(){ return type;...
2019-09-18 13:30:25 80
原创 设计模式5-------工厂方法模式
工厂方法模式以上次简单工厂方法的例子为例。先构建一个工厂接口public interface IFactory { Operation CreateOperation();}再为多种操作各建立一个具体工厂去实现工厂接口public class AddFactory implements IFactory { @Override public Operati...
2019-09-18 09:59:37 76
原创 设计模式4-------代理模式
代理模式代理模式为其他对象提供一种代理以控制对这个对象的访问Subject类(即之后例子中的GiveGift),定义了RealSubject(即之后例子中的Persuit)和Proxy(即之后例子中的Proxy)的共用接口,这样就在任何使用RealSubject的地方都可以使用Proxy。abstract class Subject{ public abstract void Reque...
2019-09-17 15:31:48 119 1
原创 设计模式2-------策略模式
策略模式定义一个抽象类abstract class Strategy { public abstract void AlgorithmInterface();}编写任意个类继承这个抽象类,实现该抽象类中的方法。public class ConcreteStrategyA extends Strategy { //实现方法A @Override pu...
2019-09-16 20:34:13 116 1
原创 设计模式1-------简单工厂模式
简单工厂模式定义一个类,有n个类继承该类,重写了该接口中的方法。/** * 基础类 */public class Operation { private double numberA = 0; private double numberB = 0; public double getResult(){ double result = 0; ...
2019-09-16 16:15:09 155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人