- 博客(30)
- 资源 (1)
- 收藏
- 关注
原创 volatile语义理解
java内存模型中的volatile关键字保证:保证多线程共享变量的可见性,但是不能保证原子性 synchronized 关键字保证了操作的原子性,可见性,但是不能保证指令重拍 volatile关键字保证了指令的重排序,java内存模型要求对volatile变量的写操作先与volatile变量的读操作看代码package com.bootdo.testDemo.rpc;imp...
2018-10-17 21:32:28 162
原创 Fork/Join 简单框架
以下为一个见到的java中的并发框架例子:采用的fork/join 机制,采用分治的思想来求1-12000的和代码如下: package com.bootdo.testDemo.rpc;import java.util.concurrent.ExecutionException;import java.util.concurrent.ForkJoinPool;import j...
2018-10-17 17:12:03 110
翻译 RPC简单的demo
编写rpc服务端代码如下:package com.bootdo.testDemo.rpc;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.OutputStream;import java.lang.reflect.Method;import java.lang.re...
2018-10-17 14:23:11 309
原创 自定义类加载器
实现一个自定义类加载器来加载指定目录上的类package com.bootdo.springBoot.classloader;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.IOException;import java.lang.reflect.Invocatio...
2018-10-16 10:30:01 491
原创 排序算法java实现
典型的排序算法有:基础版:冒泡排序,简单选择排序,插入排序,归并排序升级版:堆排序,希尔排序,快排,归并排序,还有一些桶排序,计数排序等,这里没有实现java代码实现如下:package org.cn.sort;import java.util.ArrayList;import java.util.Arrays;import java.util.List;...
2018-10-08 22:07:06 91
原创 websocket简单通信
使用websocket可以实现客户端到服务器的全双工通信,底层还是tcp协议。原理概念请百度。、。首先我们使用idea搭建一个简单的web项目,使用maven管理项目的依赖。为项目添加spring springmvn支持能力,添加pom依赖如下: <dependency> <groupId>javax.websocket</groupId>...
2018-10-08 21:55:52 242
原创 redis操作基本命令
get namedel name //删除键 decr agedecrby age 5 //使age-5mset key1 HongWan1 key2 HongWan2 //一次设置多个值setex name 10 liurong //设置name=刘荣,并且过期时间是10秒setrange name 8 gmail.com ...
2018-09-28 10:03:39 98
原创 DFS实现N皇后问题
给定一个N x N 的空格子 。。。。。对于n皇后问题是什么问题请自行百度。。。话不多说,见代码最终是用一个List来保存n皇后的输出图像 #输入为n,输出为合法的n皇后表格图像 public List<List<String>> solveNQueens(int n) { List<List<String>...
2018-09-05 22:15:10 295
原创 责任链模式
#开始不知道一个链上的那个对象去处理,话不多说,大致的代码如下。interface IHander{ void operator();}abstract class AbstractHandler implements IHander{ private IHander iHander; public IHander getIHander(){ ...
2018-09-05 16:11:41 96
原创 观察者设计模式
#观察者设计模式实现对某一个事物的观察,当东西发生变化的时候,在调用自身的方法interface Observer{ public void update();}class Observer1 implements Observer{ @Override public void update(){ System.out.println("ob...
2018-09-05 15:55:04 85
原创 模板设计模式
#模板设计模式,主类定义一个主方法实现对其他方法的调用,具体的方法实现由子类去实现。interface IStrategy{ public int split(String string);}abstract class AbstractStrategy implements IStrategy{ //主方法实现对其他方法的调用 public int cacu...
2018-09-05 15:46:37 91
原创 策略设计模式
#策略设计模式,就是对同一个算法进行不同的封装,由客户端采用选取不同的策略abstract class AbstractStrategy implements IStrategy{ public int[] split(String reg,String splot){ String[] strings=reg.split(splot); int[] ...
2018-09-05 15:20:37 133
原创 享元设计模式
#享元设计模式 适用于连接池技术,可以提高程序的运行效率public class PoolConnection{ private static final String USER="root"; private static final String PASSROWD="XXXX"; private static final String URL="XXX"; ...
2018-09-05 15:03:18 87
原创 桥接模式
#桥接模式interface interface2{ void method();}class Source1 implements interface2{ @Override public void method(){ // }}class Source2 implements interface2{ @Override...
2018-09-05 15:02:29 84
原创 外观模式
#外观模式将所有的类关系都统一到一个类的实现当中,就像spring中使用xml文件管理所有类的实现关系一样class CPU{ public void startUp(){ System.out.println("CPU startUp"); } public void shutDown(){ System.out.println("C...
2018-09-04 22:42:27 77
原创 代理设计模式
#代理设计模式,使用代理类来调用真实的主题interface SourceAble{ void method1();}class Source implements SourceAble{ @Override public void method1(){ // }}class Proxy implements SourceAble...
2018-09-04 22:35:01 94
原创 装饰模式
#当需要为一个类的新方法添加新的功能的时候就采用装饰模式 interface SourceAble{ void method1();}class Source implements SourceAble{ @Override public void method1(){ // }}class Decorator impleme...
2018-09-04 22:28:26 94
原创 适配器模式
#是配置模式有三种,分别为类的适配器模式,接口的适配器模式,还有对象适配器模式#当希望把类转换成满足另一个实现的新接口的类的时候使用class Source{ public void method1(){ System.out.println("source's method1"); }}interface Target { public ...
2018-09-04 22:22:38 74
原创 原型设计模式
#注意这里的区别实现深复制,浅复制的方式和区别,同时还可以通过对象序列化的方式实现深复制class Protype implements Cloneable{ private int age; private String name; public Protype(String name,int age){ this.name=name; ...
2018-09-04 21:53:32 75
原创 构造器模式
/***当我们要创建的一个对象需要很多的属性的时候,不需要设置过多的构造函数,建造者模式将发挥作用*/class Builder{ static class Student{ String name="liurong"; int age; String address="china"; int score=90;...
2018-09-04 21:37:31 255
原创 单例模式
#线程安全的单例模式,还有一些延迟初始化等class Singleton{ private Singleton(){} private static class SingletonBuilder{ public static Singleton singleton=new Singleton(); } private static ...
2018-09-04 21:25:03 103
原创 抽象工厂模式
class Basic{}class A extends Basic{}class B extends Basic{}class C extends Basic{}class BeanFactory{ public A getA(){ return new A(); } public B getB(){ return new ...
2018-09-04 21:21:12 94
原创 LRU缓存的代码实现
#基本实现是用一个双向链表来保存节点,同时使用Hashtable来保存每个节点的映射关系 import java.util.*;class LRUCache { class DListNode{ int value; int key; DListNode pre; DListNode post; ...
2018-09-04 19:33:23 159
原创 工厂设计模式
#最简单的工厂设计模式class Basic{}class A extends Basic{}class B extends Basic{}class C extends Basic{}class BeanFactory{ public A getA(){ return new A(); } public B getB(){...
2018-09-04 19:27:30 60
原创 redis基础操作
get namedel name //删除键 decr agedecrby age 5 //使age-5mset key1 HongWan1 key2 HongWan2 //一次设置多个值setex name 10 liurong //设置name=刘荣,并且过期时间是10秒setrange name 8 gmail.com ...
2018-09-02 11:18:11 82
原创 git操作指南
git config --global user.name "liurong"git config --global user.adress "[email protected]" //添加全局变量,用户名和密码git config --list //查看全局变量的信息git init //进入要创建代码仓库的目录,就会生成.git 隐藏文件git init --b...
2018-08-29 15:23:32 91
原创 矩阵的最大面积(单调栈)
求图片中矩形最大的面积,类似于桶的容量由最短的木板决定的,见图片。 矩形的高度可以用数组表示,同时这个场景可以和另外一个场景联系起来:给定一个二维矩阵,矩阵中的元素只有0和1,求一个最大的子矩阵(要求子矩阵中的元素全是1) ,最大指的是矩阵中的1的数量最多。下图中的矩阵 a 只包含1和0:[1, 1, 1, 1, 1, 1, 1, 1][1, 1, 1, 1, 1, 1, 1, 0][1, 1...
2018-05-10 21:42:54 1546 2
原创 弗洛伊德算法实现求图中任意两个节点的距离
太多的理论概念没有太多的意思,学习一种算法最后要变成自己的理解,复杂的技术简单化,图论算法有很多,包括图的广度优先,深度优先,图的最小生成树,迪杰斯特拉算法等,这里的弗洛伊德算法可以求图中任意两个节点的最小距离,同时还要求两个节点之间最小距离经过的路径,怎么实现的呢?代码如下:public class FuloyideDemo { private int MAX=Integer.MAX_VAL...
2018-05-07 18:04:43 2080
原创 Dijkstra(迪杰斯特拉算法)的java实现
这个算法是图论算法的一种,可以实现求图中任意两个节点之间的最短距离话不多说,直接上代码:package my.demo.main;import java.util.Arrays;import java.util.HashSet;import java.util.Map;import java.util.Scanner;import java.util.Set;//迪杰斯特拉算法求...
2018-04-29 16:17:36 1221
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人