摘要:
相信spring-mvc这种被玩坏了的架构理念,大家都烂熟于胸了,不过还是想来扒一扒他的细节。 一个http请求,怎么样被 spring 接收,又怎样做出响应呢? 一般地,我们会配置一个 web.xml,然后开始代码之旅。 在 web.xml 中配置 servlet-mapping, 将请求转发到 阅读全文
摘要:
从字节码看java中 this 隐式传参具体体现(和python中的self如出一辙,但是比python中藏得更深),也发现了 static 与 非 static 方法的区别所在! static与非static方法都是存储java的方法区。在static 方法中,没有this引用,因此无法使用当前类 阅读全文
摘要:
工具除了会用,还应该多做点。我觉得使用一个软件工具(开源类),一般会经历几个步骤: 1. 通过wiki了解大致作用,然后开始码代码; 2. 系统性地学习其特性,找出可能需要的点,用上去; 3. 通过阅读其源码,清楚其来龙去脉; 4. 有能力你就去超越别人; mybatis作为orm框架给我们带来了很 阅读全文
摘要:
感觉中,OutOfMemeryError(内存溢出错误) 是jvm抛出的异常,是不能被捕获的。 直到工作中真的遇到OOM异常,而且tomcat服务还一直对外提供服务。 那么问题来了: 1. OOM 到底能不能被捕获? 2. jvm抛出OOM后,是否就会立即停止运行呢? 3. jvm什么时候会抛出OO 阅读全文
摘要:
请问二叉树等数据结构的物理存储结构是怎样的? 好吧,咱们书上说了,一般两种存储方式: 1. 以完全二叉树的形式用连续空间的数组存储; 2. 以链表形式存储,即各个数据之间保存了相关的数据的指针地址! 如果回答就是这样,那么我想大家也不费那神了,直接洗洗睡吧?咱们能不能深入点? 数组是好理解的,在内存 阅读全文
摘要:
优雅停机? 这个名词我是服的,如果抛开专业不谈,多好的名词啊! 其实优雅停机,就是在要关闭服务之前,不是立马全部关停,而是做好一些善后操作,比如:关闭线程、释放连接资源等。 再比如,就是不会让调用方的请求处理了一增,一下就中断了。而处理完本次后,再停止服务。 Java语言中,我们可以通过Runtim 阅读全文
摘要:
2.9. 哈希查找 哈希的思路很简单,如果所有的键都是整数,那么就可以使用一个简单的无序数组来实现:将键作为索引,值即为其对应的值,这样就可以快速访问任意键的值。这是对于简单的键的情况,我们将其扩展到可以处理更加复杂的类型的键。 详细信息请参考: https://www.cnblogs.com/yw 阅读全文
摘要:
tomcat 作为知名的web容器,很棒! 本文简单了从其应用命令开始拆解,让我们对他有清晰的了解,揭开神秘的面纱!(冗长的代码流水线,给你一目了然) 话分两头: 1. tomcat是如何启动的? 2. tomcat是如何接收请求的? x. 应用程序是怎样接入tomcat的? 1. 从何处开始? 找 阅读全文
摘要:
谈到阻塞,相信大家都不会陌生了。阻塞的应用场景真的多得不要不要的,比如 生产-消费模式,限流统计等等。什么 ArrayBlockingQueue, LinkedBlockingQueue, DelayQueue... 都是阻塞队列的实现啊,多简单! 阻塞,一般有两个特性很亮眼:1. 不耗cpu的等待 阅读全文
摘要:
有时需要测试一下某个功能的并发性能,又不要想借助于其他工具,索性就自己的开发语言,来一个并发请求就最方便了。 java中模拟并发请求,自然是很方便的,只要多开几个线程,发起请求就好了。但是,这种请求,一般会存在启动的先后顺序了,算不得真正的同时并发!怎么样才能做到真正的同时并发呢?是本文想说的点,j 阅读全文