随笔分类 - Java
摘要:消息中间件作为分布式系统的重要成员,各大公司及开源均有许多解决方案。目前主流的开源解决方案包括RabbitMQ、RocketMQ、Kafka、ActiveMQ等。消息这个东西说简单也简单,说难也难。简单之处在于好用方便,接入简单使用简单,异步操作能够解耦系统间的依赖,同时失败后也能够追溯重试。难的地
阅读全文
摘要:相信我们在网上和平时学习和工作中或多或少都接触过Java的代理模式,经常听到什么静态代理、动态代理的一些名词。但我们是否真的很清楚这些呢?至少我在面试时,发现很多人并不很清楚。 首先代理比较好理解,就是帮一个人,或者一类人做一些事情。迁移到面向对象的程序设计中,代理就是帮一个类去做一些事情,而这个代
阅读全文
摘要:在平时繁忙的开发工作中,很难有时间深入了解一些Java的基础知识,而这些是我们作为程序员的一些核心竞争力。最近在做面试招聘的相关工作,因此也抽点时间来复习下一些基础知识,不论是平时开发以及用来做面试题都比较用得着,顺便打个广告,阿里国际化部门持续招人,欢迎留言联系,有意向的可以加微信详聊。 1. J
阅读全文
摘要:最近在做一个老系统的优化工作,由于里面的代码实在惨不忍睹,所以在做业务逻辑梳理及系统优化的同时,也开始做起了重构工作。由于没有充足的时间去做重新设计,毕竟在阿里白天要和沙雕产品撕逼,晚上要做正事,留给你优化系统的时间基本上少之又少,因此只能先从一些点开始,逐步进行,由点到面,记录下近期的重构工作。废
阅读全文
摘要:惭愧,从一次电面说起。我个人在某国企做一名软件设计师,国企大家都懂的,待遇一般而且没啥意思,做的方向基本都是操作系统、驱动和工具软件的开发,语言基本都是C/C++。最近也想跳槽,刚好有幸得到了一次阿里的面试机会,于是就试了试。 首先是电话面试,当时正在上班,人多口杂,好不容易找了个没人的地方开...
阅读全文
摘要:1. JVM Tuning基础知识1.1 Java堆结构 Java堆可以处于物理上不连续的内存空间上,只要逻辑上是连续的即可。Java堆就是各种对象分配和保存的内存空间,线程间共享。Java堆分为Eden区,Survivor区,tenured区和Permanent区,如下图所示。 Java堆的分...
阅读全文
摘要:线程池: “ 线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态。 可能你也许会问:为什么要搞得这么麻...
阅读全文