hashcode()和equals()都继承于Object,并且Object都提供了默认实现,具体可以参考Java根类Object的方法说明。关于Java中HashMap的相关原理可以参考前面的两篇文章,HashMap源码阅读和HashMap为什么线程不安全。
在实际使用中,如果HashMap中的key是自定义的类,一般我们都会重写hashcode()和equals(),这是为什么呢??
Good Good Study, Day Day Up
hashcode()和equals()都继承于Object,并且Object都提供了默认实现,具体可以参考Java根类Object的方法说明。关于Java中HashMap的相关原理可以参考前面的两篇文章,HashMap源码阅读和HashMap为什么线程不安全。
在实际使用中,如果HashMap中的key是自定义的类,一般我们都会重写hashcode()和equals(),这是为什么呢??
前几天看到蚂蚁开源的sofa框架,其中提供了应用关闭后的回调方法,看了原理之后发现是利用了JAVA虚拟机关闭钩子(Shutdown Hook)来实现的。
Java程序经常也会遇到进程挂掉的情况,一些状态没有正确的保存下来,这时候就需要在JVM关掉的时候执行一些清理现场的代码。JAVA中的ShutdownHook提供了比较好的方案。
今天被问到一道题目,如何实现多个线程同时进行,谷歌之,发现网上有篇文章提到可以用wait
和notifyall
来实现,想着以前看过wait
和notify
的区别,今天正好有机会来看下notifyall
。
本文记录了notify和notifyAll的区别和相同,以便不时之时查阅。
这周在写代码的时候,由于配置了IDE的快捷提示,一不留神使用了ConcurrentReferenceHashMap
这个新奇的类,虽然不会引发什么bug,但是还是在CR的时候被师兄发现了。
本文就来探讨一下ConcurrentReferenceHashMap
这个map具体是什么类。
工作所需,我这个后端程序猿又开始操起我那半吊子的前端技术,开始写前端。这次在实现前端页面逻辑的时候,碰到了一个JS深拷贝的问题。原先默认都是浅拷贝,或者是第一层深拷贝,但是到里面的嵌套对象就是浅拷贝了。踩了这个坑之后,遂记录本文以供后续参考。
本文重点介绍JS中如何实现深拷贝,避免在实际开发中踩坑。当然,考虑到部分同学对深拷贝和浅拷贝的概念可能不太熟,我们也会先介绍一下深拷贝和浅拷贝的原理。
MySQL 3种text类型的最大长度如下:
TEXT:65,535 bytes ~64kb
MEDIUMTEXT:16,777,215 bytes ~16Mb
LONGTEXT:4,294,967,295 bytes ~4Gb
一提起“分布式系统”,大家的第一感觉就是好高大上啊,深不可测,看各类大牛关于分布式系统的演讲或者书籍,也大多是一脸懵逼。本文期望用浅显易懂的大白话来就什么是分布式系统、分布式系统有哪些优势、分布式系统会面临哪里挑战、如何来设计分布式等方面的话题来展开讨论。
之前上软件测试课的时候,曾经听闻某些同学在考试的时候使用黑科技,直接通过反射的方式直接调用private方法,提高测试用例覆盖率。当时只是觉得这个好高大上,但是也没在意去学习一下。因为类私有方法只允许被本类访问,而其他类无权调用,我只要通过给其他public的方法写好测试用例就行了。
然鹅,前几天公司的研发流程中需要变更行覆盖率达到一定程度,可是由于逻辑太复杂的,导致部分private方法很难被覆盖到。时间不多了,只能出绝招了——通过Junit测试私有方法。
目前我们开发的项目最终都是部署到服务器上,而服务器一般而言都是Linux的操作系统。大部分情况下,服务器字符编码都是UTF-8
的,开发环境也基本都是UTF-8
。然鹅,最近待的公司,一些服务器字符编码是GBK
,我本地默认的UTF-8
登录上去中文直接乱码。
本文介绍了如何快速无痛地解决本地UTF-8
环境登录GBK
的服务器。由于现在是Mac
的重度使用者,所以本文也就介绍了Mac
下如何完美解决SSH
连接GBK
服务器,Windows
的机器SecureCRT
可以完美解决这个问题,自行谷歌一下。