自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode110:平衡二叉树

简单思路,时间复杂度:O(n2n^2n2)class Solution { public boolean isBalanced(TreeNode node){ if (node == null){ return true; } int leftH = getHeight(node.left); int rightH = getHeight(node.right); return isBalanc

2020-12-30 19:25:54 63

原创 Leetcode1:两数之和

Leetcode1:两数之和思路:哈希表存储class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (int i = 0; i < nums.length; i++) { if (map.containsKey(t

2020-12-17 19:26:36 116 1

原创 Leetcode3:无重复字符的最长子串

Leetcode3,无重复字符的最长子串思路:滑动窗口class Solution { public int lengthOfLongestSubstring(String s) { if (s == null || s.length() ==0){ return 0; } if (s.length() == 1){ return 1; } int l = s.leng

2020-12-17 19:12:22 72

原创 Spring统一异常处理

可以使用两个注解:@ExceptionHandler:统一处理某一类异常,从而能够减少代码重复率和复杂度@ControllerAdvice:异常集中处理,更好的使业务逻辑与异常处理剥离开;其是对Controller层进行拦截https://www.cnblogs.com/shuimuzhushui/p/6791600.html...

2020-12-16 14:27:48 73

转载 jdk中的设计模式

https://blog.csdn.net/qq_38311489/article/details/89439835

2020-12-14 15:46:28 114 1

原创 Spring中的设计模式

1.简单工厂实现方式:BeanFactory。2.工厂方法实现方式:FactoryBean接口。3.单例模式实现方式:bean默认单例。getSingleton方法使用synchronized+双重判空4.适配器模式实现方式:SpringMVC中的适配器HandlerAdatper。5.代理模式实现方式:AOP用的是动态代理6.观察者模式实现方式:Listener监听机制,例如ServletContextListener7.模版模式实现方式:JdbcTempalte, RedisT

2020-12-14 15:36:50 132 1

转载 代理模式和装饰器模式的区别

https://www.cnblogs.com/jaredlam/archive/2011/11/08/2241089.html代理模式:装饰器模式:这两个设计模式看起来很像。对装饰器模式来说,装饰者(decorator)和被装饰者(decoratee)都实现同一个 接口。对代理模式来说,代理类(proxy class)和真实处理的类(real class)都实现同一个接口。此外,不论我们使用哪一个模式,都可以很容易地在真实对象的方法前面或者后面加上自定义的方法。然而,实际上,在装饰器模式和代理

2020-12-14 15:26:53 123

转载 策略模式

https://www.runoob.com/design-pattern/strategy-pattern.html意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。策略接口public interface Strategy { public int doOperation(int num1, int num2);}策略实现类public class OperationAdd implements Strategy{ @Override publi

2020-12-14 15:14:26 75

转载 观察者模式

https://www.runoob.com/design-pattern/observer-pattern.htmlpublic class Subject { private List<Observer> observers = new ArrayList<Observer>(); private int state; public int getState() { return state; } pub

2020-12-14 15:04:53 53

转载 工厂设计模式:简单工厂模式,工厂模式,抽象工厂模式

https://blog.csdn.net/u012156116/article/details/80857255

2020-12-11 19:15:15 46

转载 模板模式

public abstract class Game { abstract void initialize(); abstract void startPlay(); abstract void endPlay(); //模板 public final void play(){ //初始化游戏 initialize(); //开始游戏 startPlay(); //结束游戏 endPlay.

2020-12-11 14:58:52 80

原创 Java,线上问题,HashMap多线程死循环

jdk1.7的HashMap有多线程死循环问题。原因,双层Map,外层用了ConcurrentHashMap,但是里层还是HashMap,导致死循环。老代码:ConcurrentHashMap<String, Map<String, Integer>> cacheMap = new ConcurrentHashMap<>();Map<String, Integer> result = new HashMap<>();cacheMap.pu

2020-12-08 14:55:10 70

原创 Java多线程,交替打印A/B/C

public class Test { public static void main(String[] args) throws Exception { MyPrinter myPrinter = new MyPrinter(); new Thread(() -> { for (int i=0;i<3;i++){ myPrinter.printA(); }

2020-12-08 10:37:27 155

原创 Java多线程,交替打印ABC/123

public class Test { public static void main(String[] args) { Object o = new Object(); new Thread(() -> { synchronized(o){ for (int i=0;i<5;i++) { System.out.println(i);

2020-12-07 18:10:08 756

原创 Java多线程,交替打印A/B

public class Test { public static void main(String[] args) { Object o = new Object(); Thread t1 = new Thread(() -> { synchronized(o){ for (int i=0;i<5;i++) { System.out.println("A")

2020-12-07 17:40:46 324

转载 分布式session

https://blog.csdn.net/qq_35620501/article/details/950476424种解决方案客户端存储,存cookiesession复制,广播到其他服务端session绑定,让一个客户端只访问固定的一个服务器基于redis存储

2020-12-04 18:54:08 56

转载 雪花算法SnowFlake

SnowFlake 算法,是 Twitter 开源的分布式 id 生成算法。其核心思想就是:使用一个 64 bit 的 long 型的数字作为全局唯一 id。在分布式系统中的应用十分广泛,且ID 引入了时间戳,基本上保持自增的。这 64 个 bit 中,其中 1 个 bit 是不用的,然后用其中的 41 bit 作为毫秒数,用 10 bit 作为工作机器 id,12 bit 作为序列号。https://blog.csdn.net/lq18050010830/article/details/898457

2020-12-04 17:42:09 87

转载 一致性哈希

https://www.jianshu.com/p/735a3d4789fc通过数据 key 的哈希值落在哈希环上的节点,如果命中了机器节点就落在这个机器上,否则落在顺时针直到碰到第一个机器。

2020-12-04 17:39:30 66

转载 SpringBoot自动配置的原理

https://blog.csdn.net/zjcjava/article/details/840282221 @SpringBootApplication2 @EnableAutoConfiguration3 @Import(AutoConfigurationImportSelector.class)4 getCandidateConfigurations() protected List<String> getCandidateConfigurations(AnnotationM

2020-12-04 17:31:54 92

原创 spring事务

https://blog.csdn.net/soonfly/article/details/70305683

2020-12-03 21:25:06 946

转载 方法区的垃圾回收

很多人以为方法区(或者HotSopt VM中的永久代)是没有垃圾收集的,Java虚拟机规范中确实说过可以不要求虚拟机在方法区实现垃圾收集,而且性价比一般较低,在对的新生代生一般能回收70%~95%的空间,而永久代远低于此。永久代的垃圾手机主要回收两部分内容:废弃常量和无用的类。 回收废弃常量与回收Java堆中的对象非常相似。以常量池中字面量的回收为例,若字符串“abc”已经进入常量池中,但当前系统没有任何String对象引用常量池中的“abc”常量,也没有其他地方引用该字面量,若发生内存回收,且必要的话,

2020-12-02 21:52:41 314

空空如也

空空如也

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

TA关注的人

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