- 博客(12)
- 收藏
- 关注
原创 代理模式
静态代理:优点:可完成在不修改目标对象的功能前提下,对目标功能扩展.缺点:1. 都要实现公共接口2. 需要创建一个代理类,并且只能代理一个对象用例:package designPattern.proxy;/** * @Author Snail * @Describe * @CreateTime 2019/6/29 */public class TestS...
2019-06-29 18:00:17 741
原创 TCP数据传输下的滑动窗口与拥塞控制
流量控制:让发送放的发送速率不要太快,让接受方来得及接收。滑动窗口:滑动窗口实现了流量控制,规定发送方的发送窗口不超过接收方给出的接受窗口的数值(以字节为单位)拥塞控制:四种实现的算法:慢开始 拥塞控制 快重传 快恢复...
2019-06-29 10:15:32 817
原创 给出一个数组和一个目标值,输出 数组中任意两个数字相加之和等于目标值 的位置
@Test public void a(){ int target = 13; int [] arr=new int[]{1,2,5,8,99,5,3,10,1}; int[] ints = twoSum(arr, target); System.out.println(Arrays.toString(ints)); ...
2019-06-27 17:26:24 2726
原创 Spring中的循环依赖出现示例
循环依赖的场景:service中的类A和类B,类A中需要DI类B,而类B中又需要DI类A。但环并不一定会出现,跟DI的方式有关。Spring中的循环依赖有:构造器循环依赖(会出现环的情况,项目无法启动) Filed属性注入依赖(类AB的Scope不同时,有不同的情况。)代码用例:构造器循环依赖:将陷入环,项目启动失败。@Servicepublic class Loop...
2019-06-24 11:48:20 1314
原创 深拷贝与浅拷贝的含义与用例
Java中有基本数据类型(元类型),和类的实例对象这个引用数据类型。而一般使用 『=』号做赋值操作的时候。对于基本数据类型,实际上是拷贝的它的值,但是对于对象而言,其实赋值的只是这个对象的引用,将原对象的引用传递过去,他们实际上还是指向的同一个对象。浅拷贝:只对类中基本数据类型进行了拷贝,而对引用数据类型只是进行了引用的传递,而没有真实的创建一个新的对象,则认为是浅拷贝。...
2019-06-23 16:18:25 843
原创 Deprecated:JVM内存模型 与 volatile:轻量级的同步锁机制
JVM内存模型:Java内存模型中,有存储所有变量(包括实例字段,静态字段,构成数组对象的元素)的主内存和线程私有的工作内存,工作内存中的变量是主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,不同线程之间无法直接访问对方工作内存的变量,线程间变量值的传递均需要通过主内存来完成。主内存主要属于Java内存分区的方法区,工作内存主要属于内存分区的虚拟机栈。volatile特性:...
2019-06-22 12:57:12 771 1
原创 单词查找树(Trie Tree)
应用于对大量字符串(不仅限于字符串)的保存,出现频率统计。数据结构构建思路:构建一个树型结构,除根节点为空字符以外,任意节点都有如下的属性/*** 字典树的节点类型*/class TrieNode{ char ch; //这个节点的字符 int freqs; //记录这个词出现的次数(从根节点到这个节点的串) Map<Character...
2019-06-19 16:35:22 948
原创 动态规划下的爬楼梯:
/** * 动态规划,时间复杂度O(n)空间复杂度O(1) * 求得斐波那契数列的第n项的值。前两项为1,2 * n阶的梯子,每步只能上一阶或两阶,求有多少中方法走完n阶 */public class Fbnx { public static void main(String[] args) { int n=5;//第n个数(从1开始) Lo...
2019-06-19 16:06:53 822
原创 单例模式,与Spring的结合
单例模式:保证系统中一个类只有一个实例1.饿汉式单例静态常量/** * 饿汉式单例:在类加载的初始化阶段就完成了实例化,使用JVM来解决了线程同步问题 * JVM中,初始化类时只有一个线程在操作 */public class HungrySingleton1 { private static final HungrySingleton1 instance=new H...
2019-06-16 17:19:13 959
原创 接口和抽象类的优缺点
更新到(19.12.22):https://blog.csdn.net/BigBug_500/article/details/1036576491. 接口中只有抽象方法。对于实现它的子类,都要求重写它的抽象方法。当在一个接口中,加入一个抽象方法时,他的子类都必须去实现新的抽象方法。2. 抽象类中既可以有抽象方法,也可以有非抽象方法。对于继承它的子类,具有它的非抽象方法,但必须重写...
2019-06-13 22:24:13 2082
原创 快速排序,分治法
平均时间复杂度是O(nlogn);在传入的数组为倒序时,将出现最坏的情况,时间复杂度为O(n^2) private static void myQuickSort(int[] arr, int start, int end) { if(start>=end){ return; } int divideInd...
2019-06-05 11:41:35 895
原创 微信本地模拟开发环境搭建
修改Windows下的"C:\Windows\System32\drivers\etc\hosts",让域名和本地(127.0.0.1)映射。目的是为了模拟微信客户端在发送请求时,既可以请求到微信服务器,也可以通过域名请求到本地的服务。 在Web服务器中监听指定的443端口(https)或者80端口。对于使用Nginx下的443端口需要配置对应的公私钥,nginx.conf中server片段:...
2019-06-03 21:01:52 2187
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人