自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 哈夫曼编码

https://blog.csdn.net/qq_36653505/article/details/81701181哈夫曼编码,主要目的是根据使用频率来最大化节省字符(编码)的存储空间。简易的理解就是,假如我有A,B,C,D,E五个字符,出现的频率(即权值)分别为5,4,3,2,1,那么我们第一步先取两个最小权值作为左右子树构造一个新树,即取1,2构成新树,其结点为1+2=3,如图:虚线为...

2020-03-31 23:25:36 951

转载 静态代理和动态代理

本篇博客的由来,之前我们学习大话设计,就了解了代理模式,但为什么还要说呢?原因:1,通过DRP这个项目,了解到了动态代理,认识到我们之前一直使用的都是静态代理,那么动态代理又有什么好处呢?它们二者的区别是什么呢?2,通过学习动态代理了解到动态代理是一种符合AOP设计...

2020-03-30 20:11:33 129

原创 wait()和sleep()

sleep和waitsleep()是使线程暂停执行一段时间的方法。wait()也是一种使线程暂停执行的方法。例如,当线程执行wait()方法时候,会释放当前的锁,然后让出CPU,进入等待状态。并且可以调用notify()方法或者notifyAll()方法通知正在等待的其他线程。notify()方法仅唤醒一个线程(等待队列中的第一个线程)并允许他去获得锁。notifyAll()方法唤醒所有等待这个...

2020-03-30 09:49:35 209

原创 双亲委派模型

双亲委派模型双亲委派的意思是如果一个类加载器需要加载类,那么首先它会把这个类请求委派给父类加载器去完成,每一层都是如此。一直递归到顶层,当父加载器无法完成这个请求时,子类才会尝试去加载。这里的双亲其实就指的是父类,没有mother。父类也不是我们平日所说的那种继承关系,只是调用逻辑是这样。双亲委派模型不是一种强制性约束,也就是你不这么做也不会报错怎样的,它是一种JAVA设计者推荐使用类加载器的方式...

2020-03-29 13:39:22 112

原创 快排思路

总体思路(挖坑法)1.i =L; j = R; 将基准数挖出形成第一个坑a[i]。2.j–由后向前找比它小的数,找到后挖出此数填前一个坑a[i]中。3.i++由前向后找比它大的数,找到后也挖出此数填到前一个坑a[j]中。4.再重复执行2,3二步,直到i==j,将基准数填入a[i]中。代码//快速排序void quick_sort(int s[], int l, int r){ ...

2020-03-28 22:15:55 185

原创 JVM总结

1. 内存模型以及分区,需要详细到每个区放什么。栈区:栈分为java虚拟机栈和本地方法栈重点是Java虚拟机栈,它是线程私有的,生命周期与线程相同。每个方法执行都会创建一个栈帧,用于存放局部变量表,操作栈,动态链接,方法出口等。每个方法从被调用,直到被执行完。对应着一个栈帧在虚拟机中从入栈到出栈的过程。通常说的栈就是指局部变量表部分,存放编译期间可知的8种基本数据类型,及对象...

2020-03-28 15:53:33 166

转载 IOC加载过程

基础概念1、IoC 和 DIIoC (Inversion of Control),即控制反转。这不是一种新的技术,而是 Spring 的一种设计思想。在传统的程序设计,我们直接在对象内部通过 new 来创建对象,是程序主动去创建依赖对象;而在 Spring 中有专门的一个容器来创建和管理这些对象,并将对象依赖的其他对...

2020-03-28 15:25:11 453

原创 关于库存扣减问题

昨天面试的时候,被面试官问到库存扣减问题。。。估计面试官把我的项目当成秒杀了。。怪我自己没介绍清楚项目,自己挖坑。。。今天在博客上看了一些关于库存扣减问题,主要还是觉得比较合适的方式就是使用redis分布式锁,这是最简单的方案,但是如果事务过大,会有性能问题.操作不当,会有死锁问题基于redis setnx的简易分布式锁如果两个线程同时执行的话会出现超卖问题所以我们要加个锁但这样在并发...

2020-03-28 15:23:37 2027

原创 堆和栈

        int [] arr=new int [3];在内存中是怎么被定义的:      主函数先进栈,在栈中定义一个变量arr,接下来为arr赋值,但是右边不...

2020-03-25 11:35:52 117

原创 微信OAUTh2.0来实现第三方授权登录

1.OAuth原理OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。...

2020-03-22 16:53:37 956

原创 volatile和synchronize的作用和比较

volatile关键字的作用其实volatile关键字的作用就是保证了可见性和有序性(不保证原子性),如果一个共享变量被volatile关键字修饰,那么如果一个线程修改了这个共享变量后,其他线程是立马可知的。为什么是这样的呢?比如,线程A修改了自己的共享变量副本,这时如果该共享变量没有被volatile修饰,那么本次修改不一定会马上将修改结果刷新到主存中,如果此时B去主存中读取共享变量的值,那么...

2020-03-20 10:17:41 346 1

原创 最全!树的前序/中序/后序/层序遍历之递归法和迭代法总结--java版

最全完整版树的前序/中序/后序/层序遍历之递归和非递归--java版

2020-02-17 12:08:54 135

原创 LeetCode学习笔记:有效的括号

//错误代码package CH02;import java.util.Stack;public class Solution { public boolean isValid(String s) { Stack<Character> stack=new Stack<Character>(); for(int i=0;i<s.lengt...

2019-08-24 11:11:29 131

空空如也

空空如也

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

TA关注的人

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