winsky小站

Good Good Study, Day Day Up


  • 首页

  • 归档

  • 分类

  • 标签

  • 关于

  • 搜索

使用HashMap,如果key是自定义的类,就必须重写hashcode()和equals()

发表于 2018-08-25 | 分类于 Java , Java基础 |

hashcode()和equals()都继承于Object,并且Object都提供了默认实现,具体可以参考Java根类Object的方法说明。关于Java中HashMap的相关原理可以参考前面的两篇文章,HashMap源码阅读和HashMap为什么线程不安全。

在实际使用中,如果HashMap中的key是自定义的类,一般我们都会重写hashcode()和equals(),这是为什么呢??

阅读全文 »

单链表翻转

发表于 2018-07-29 | 分类于 算法 |

单链表翻转也是面试中经常会被问到的一个经典算法。解决这个问题,最常想到的是递归,或者借助外部数组村组来实现。但是这两种方式的复杂度都偏高。

本文主要介绍使用指针来实现复杂度为O(1)的单链表翻转方法。

阅读全文 »

JAVA虚拟机关闭钩子(Shutdown Hook)

发表于 2018-07-28 | 分类于 Java , JVM |

前几天看到蚂蚁开源的sofa框架,其中提供了应用关闭后的回调方法,看了原理之后发现是利用了JAVA虚拟机关闭钩子(Shutdown Hook)来实现的。

Java程序经常也会遇到进程挂掉的情况,一些状态没有正确的保存下来,这时候就需要在JVM关掉的时候执行一些清理现场的代码。JAVA中的ShutdownHook提供了比较好的方案。

阅读全文 »

notify和notifyAll的区别和相同

发表于 2018-07-28 | 分类于 Java , Java基础 |

今天被问到一道题目,如何实现多个线程同时进行,谷歌之,发现网上有篇文章提到可以用wait和notifyall来实现,想着以前看过wait和notify的区别,今天正好有机会来看下notifyall。

本文记录了notify和notifyAll的区别和相同,以便不时之时查阅。

阅读全文 »

Spring ConcurrentReferenceHashMap简单测试

发表于 2018-07-22 | 分类于 Spring |

这周在写代码的时候,由于配置了IDE的快捷提示,一不留神使用了ConcurrentReferenceHashMap这个新奇的类,虽然不会引发什么bug,但是还是在CR的时候被师兄发现了。

本文就来探讨一下ConcurrentReferenceHashMap这个map具体是什么类。

阅读全文 »

对象、数组复制的几种方法(深拷贝)

发表于 2018-07-22 | 分类于 JavaScript |

工作所需,我这个后端程序猿又开始操起我那半吊子的前端技术,开始写前端。这次在实现前端页面逻辑的时候,碰到了一个JS深拷贝的问题。原先默认都是浅拷贝,或者是第一层深拷贝,但是到里面的嵌套对象就是浅拷贝了。踩了这个坑之后,遂记录本文以供后续参考。

本文重点介绍JS中如何实现深拷贝,避免在实际开发中踩坑。当然,考虑到部分同学对深拷贝和浅拷贝的概念可能不太熟,我们也会先介绍一下深拷贝和浅拷贝的原理。

阅读全文 »

MySQL text类型的最大长度

发表于 2018-07-22 | 分类于 数据库 |

MySQL 3种text类型的最大长度如下:

  • TEXT:65,535 bytes ~64kb

  • MEDIUMTEXT:16,777,215 bytes ~16Mb

  • LONGTEXT:4,294,967,295 bytes ~4Gb

阅读全文 »

大白话聊聊分布式系统

发表于 2018-07-21 | 分类于 分布式 |

一提起“分布式系统”,大家的第一感觉就是好高大上啊,深不可测,看各类大牛关于分布式系统的演讲或者书籍,也大多是一脸懵逼。本文期望用浅显易懂的大白话来就什么是分布式系统、分布式系统有哪些优势、分布式系统会面临哪里挑战、如何来设计分布式等方面的话题来展开讨论。

阅读全文 »

Junit测试延伸——私有方法测试

发表于 2018-07-21 | 分类于 测试 |

之前上软件测试课的时候,曾经听闻某些同学在考试的时候使用黑科技,直接通过反射的方式直接调用private方法,提高测试用例覆盖率。当时只是觉得这个好高大上,但是也没在意去学习一下。因为类私有方法只允许被本类访问,而其他类无权调用,我只要通过给其他public的方法写好测试用例就行了。

然鹅,前几天公司的研发流程中需要变更行覆盖率达到一定程度,可是由于逻辑太复杂的,导致部分private方法很难被覆盖到。时间不多了,只能出绝招了——通过Junit测试私有方法。

阅读全文 »

Mac、Linux完美解决SSH连接GBK服务器

发表于 2018-06-23 | 分类于 Linux |

目前我们开发的项目最终都是部署到服务器上,而服务器一般而言都是Linux的操作系统。大部分情况下,服务器字符编码都是UTF-8的,开发环境也基本都是UTF-8。然鹅,最近待的公司,一些服务器字符编码是GBK,我本地默认的UTF-8登录上去中文直接乱码。

本文介绍了如何快速无痛地解决本地UTF-8环境登录GBK的服务器。由于现在是Mac的重度使用者,所以本文也就介绍了Mac下如何完美解决SSH连接GBK服务器,Windows的机器SecureCRT可以完美解决这个问题,自行谷歌一下。

阅读全文 »
1234…13
winsky

winsky

生命不息,折腾不止

124 日志
35 分类
82 标签
GitHub E-Mail
友情链接
  • winsky wiki
  • Jestom
© 2020 winsky
由 Hexo 强力驱动
|
主题 — NexT.Pisces
|
博客全站共235.3k字
人 次