
java
我是月亮呀
来自一位女架构师的分享!
展开
-
面试题:你简历中写到熟悉Spring源码,那你给我说说它用到了那些设计模式?
Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行内典范。好了,话不多说,开始今天的内容。spring中常用的设计模式达到九种。模板方法(Template Method)spring的jdbc模板,对Spring源码的精妙真是佩服得五体投地,极为经典。spring中真是集设计模式之大成,而且用得是炉火纯青。模板方法(template method)就在sp...原创 2019-05-27 16:36:00 · 3361 阅读 · 0 评论 -
2019社招阿里、腾讯、蚂蚁金服Java面试真题
在过去很长一段时间内,国内互联网一直处于三足鼎立状态,BAT即百度、阿里巴巴、腾讯。而在最新的互联网企业价值榜上,百度却被蚂蚁金服挤出前三的位置。能够进一线互联网公司,是大部分程序员奋斗的目标,有很多小伙伴可能因为学历望而止步,其实只要能力够,学历真的不是那么重要!今天给大家带来ATM(阿里巴巴,腾讯,蚂蚁金服)的Java面试真题,希望能帮助各位读者在奋斗的路上少走弯路。阿里巴...原创 2019-06-14 15:45:45 · 2444 阅读 · 0 评论 -
百亿数据量下,掌握这些Redis技巧你就能Hold全场
一、Redis封装架构讲解实际上NewLife.Redis是一个完整的Redis协议功能的实现,但是Redis的核心功能并没有在这里面,而是在NewLife.Core里面。这里可以打开看一下,NewLife.Core里面有一个NewLife.Caching的命名空间,里面有一个Redis类,里面实现了Redis的基本功能;另一个类是RedisClient是Redis的客户端。Red...原创 2019-06-19 21:51:40 · 449 阅读 · 0 评论 -
死磕 java同步系列之ReentrantLock源码解析(一)——公平锁、非公平锁
问题(1)重入锁是什么?(2)ReentrantLock如何实现重入锁?(3)ReentrantLock为什么默认是非公平模式?(4)ReentrantLock除了可重入还有哪些特性?简介Reentrant = Re + entrant,Re是重复、又、再的意思,entrant是enter的名词或者形容词形式,翻译为进入者或者可进入的,所以Reentrant翻译为可重复进入...原创 2019-06-10 15:26:14 · 210 阅读 · 0 评论 -
死磕 java同步系列之ReentrantLock源码解析(二)——条件锁
问题(1)条件锁是什么?(2)条件锁适用于什么场景?(3)条件锁的await()是在其它线程signal()的时候唤醒的吗?简介条件锁,是指在获取锁之后发现当前业务场景自己无法处理,而需要等待某个条件的出现才可以继续处理时使用的一种锁。比如,在阻塞队列中,当队列中没有元素的时候是无法弹出一个元素的,这时候就需要阻塞在条件notEmpty上,等待其它线程往里面放入一个元素后,...原创 2019-06-10 15:27:36 · 284 阅读 · 0 评论 -
使用 Gradle 构建 Spring-Boot 的 Docker 镜像
通常我们使用 Dockerfile 来构建项目的Docker 镜像,但是也有需求希望使用 gralde 在编译项目的时候一起把镜像给构建并上传,所以该教程讲解了使用 gradle 编写配置 Dockerfile 并生成镜像的过程。1. 添加依赖教程使用gradle-docker插件来实现,在 Gradle 的脚本里配置 dockerfile 的构建镜像功能。gradle-docker插...原创 2019-06-10 16:57:46 · 2394 阅读 · 0 评论 -
【Java面试题系列】:Java中final finally finalize的区别
按我的个人理解,这个题目本身就问的有点问题,因为这3个关键字之间没啥关系,是相对独立的,我猜想这道题的初衷应该是想了解面试者对Java中final finally finalize的使用方法的掌握情况,只是因为3个关键字比较像,而成了现在网上流传的题目“Java中final finally finalize的区别”。既然是想了解面试者对Java中final finally finalize的使...原创 2019-06-04 14:41:43 · 173 阅读 · 0 评论 -
不可不说Java“锁”事,乐观锁 VS 悲观锁,公平锁 VS 非公平锁
前言Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8和Netty 3.10.6)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。文章篇幅较长,读完需要九分钟Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快...原创 2019-06-20 17:55:24 · 680 阅读 · 0 评论 -
包装严重的IT行业,作为面试官,我是如何甄别应聘者的包装程度
一、初选如何鉴别劣质简历 二、进入面试阶段,如何甄别对方的水分在互联网极速膨胀的社会背景下,各行各业涌入互联网的IT民工日益增大。早在2016年,我司发布了Java、Ios工程师的招聘信息,就Java工程师单个岗位而言,日收简历近200份,Ios日收简历近一千份。没错,这就是当年培训机构对Ios工程师这个岗位发起的市场讨伐。而随着近几年的发展,市场供大于求现象日益严重。人员摸底成为用人...原创 2019-06-23 21:12:28 · 871 阅读 · 0 评论 -
谁说数据库不适合Docker?解读MySQL DB Mesh的创造性实践
以 Docker 为代表的容器技术正在以一种不可阻挡的趋势席卷全球,但真正的落地过程依然十分坎坷。6 月 20 日北京,在 2019 企业容器创新大会上,业内首家覆盖业务全流程、运营全体系的移动信贷整体技术服务商飞贷金融科技的副总裁陈定玮分享了飞贷的数据库生产容器化及 Istio 应用的经验。基于飞贷金融科技容器化道路的实践与经验,InfoQ 记者也专访了陈定玮,并将其分享和思考整理如下。...原创 2019-07-08 21:47:02 · 822 阅读 · 0 评论 -
通过IDEA快速定位和排除依赖冲突
|0前言我们程序员在开发的时候经常会遇到各种各样的 BUG 问题,其中大部分是业务逻辑异常,还有一些是代码书写不规范造成的异常例如:NullPointException(NPE),IndexOutOfBoundsException 等等,其实这些我们都好定位和修复。但是还有一些运行时异常定位起来是特别头疼的,那就是 jar 包冲突引起的异常。一般程序在运行时发生类似于java.lang....原创 2019-07-03 20:51:54 · 544 阅读 · 0 评论 -
开发10年,面试300人,想进阿里的大牛总结出,java面试69题
基础题目Java线程的状态 进程和线程的区别,进程间如何通讯,线程间如何通讯 HashMap的数据结构是什么?如何实现的。和HashTable,ConcurrentHashMap的区别 Cookie和Session的区别 索引有什么用?如何建索引? ArrayList是如何实现的,ArrayList和LinkedList的区别?ArrayList如何实现扩容。 equals方法实现...原创 2019-07-09 16:18:46 · 1247 阅读 · 0 评论 -
微服务架构之幂等性问题及设计思想,你不得不知的一些幂等方案
前言小伙伴们有没有遇到过生产环境经常出现过重复的数据?在排查问题的时候,数据又是正常的。这个是何解呢?怎么会出现这种情况,而且还很难排查问题。今天我给大家分享一下这里的原因,以及解决方案。读者福利:点击免费获取Java学习笔记,面试,文档以及视频罪魁祸首产生重复数据或数据不一致(假定程序业务代码没问题),绝大部分就是发生了重复的请求,重复请求是指同一个请求因为某些原因被多次提交...原创 2019-07-04 14:14:03 · 966 阅读 · 1 评论 -
鹅厂java技术面试官说说常用的springmvc、springboot一些注解
springmvc,面试遇到这个鬼虽说是很正常的问题,但是还是得好好的整理下@Controller只是定义了一个控制器类@RequestMapping用来处理请求地址映射的注解是真正处理请求@Resource和@Autowiredbean的注入时使用@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需...原创 2019-07-13 22:02:45 · 894 阅读 · 0 评论 -
Java动态追踪技术探究,从JSP到Arthas
引子在遥远的希艾斯星球爪哇国塞沃城中,两名年轻的程序员正在为一件事情苦恼,程序出问题了,一时看不出问题出在哪里,于是有了以下对话:“Debug一下吧。”“线上机器,没开Debug端口。”“看日志,看看请求值和返回值分别是什么?”“那段代码没打印日志。”“改代码,加日志,重新发布一次。”“怀疑是线程池的问题,重启会破坏现场。”长达几十秒的沉默之后:“据说,排查问题的最...原创 2019-06-13 21:46:25 · 391 阅读 · 0 评论 -
一起来了解一下针对代码级别的性能测试工具 JMH吧!
正文开始JMH,即Java Microbenchmark Harness,这是专门用于进行代码的微基准测试的一套工具API。JMH 由 OpenJDK/Oracle 里面那群开发了 Java 编译器的大牛们所开发 。何谓 Micro Benchmark 呢? 简单地说就是在 method 层面上的 benchmark,精度可以精确到微秒级。Java的基准测试需要注意的几个点:测试前需要...原创 2019-06-01 20:30:20 · 204 阅读 · 0 评论 -
看完不要再说自己不懂ZooKeeper,纯干货技术分享!
点关注,不迷路;持续更新Java架构相关技术及资讯热文!!!我本人曾经使用过 ZooKeeper 作为 Dubbo 的注册中心,另外在搭建 Solr 集群的时候,我使用到了 ZooKeeper 作为 Solr 集群的管理工具。前几天,总结项目经验的时候,我突然问自己 ZooKeeper 到底是个什么东西?想了半天,脑海中只是简单的能浮现出几句话:Zookeeper 可以...原创 2019-05-27 17:39:15 · 410 阅读 · 0 评论 -
程序员懵逼时刻:几个月后,之前自己写的代码也看不懂了?
程序员们大多都会有过这样的经历,就是要看别人写的代码。比如说公司有同事离职了,他的业务就需要有其它的小伙伴们给接下来继续维护。这对好多程序员来说是一种折磨,边看边骂,这写的是什么东西呀。相信好多人都有这种经历。那么为什么会出现这样一个局面呢,其实这里面就有很多讲究的地方了,如果不注意的话,不光是看不懂别人写的代码,即使是自己写的代码,几个月后你再去瞧瞧,你也会发现,咦,看不懂了呢。那么接下...原创 2019-05-30 11:49:29 · 1368 阅读 · 1 评论 -
为什么 TCP 建立连接是三次握手,关闭连接确是四次挥手呢?
背景描述对以下技术点有任何疑问的,可以来群里与更多的大佬交流切磋技术,戳这里:咱们来一起抱团取暖,好吗?我们知道网络层,可以实现两个主机之间的通信。但是这并不具体,因为,真正进行通信的实体是在主机中的进程,是一个主机中的一个进程与另外一个主机中的一个进程在交换数据。IP协议虽然能把数据报文送到目的主机,但是并没有交付给主机的具体应用进程。而端到端的通信才应该是应用进程之间的通信。UDP,在传...原创 2019-05-30 12:26:44 · 4462 阅读 · 0 评论 -
Java并发编程40道面试题及答案——大厂面试稳了!
1、线程与进程的区别?进程是操作系统分配资源的最小单元,线程是操作系统调度的最小单元。一个程序至少有一个进程,一个进程至少有一个线程。文末有福利,思维导图和视频资料等你来领2、什么是多线程中的上下文切换?多线程会共同使用一组计算机上的CPU,而线程数大于给程序分配的CPU数量时,为了让各个线程都有执行的机会,就需要轮转使用CPU。不同的线程切换使用CPU发生的切换数据等就是上下...原创 2019-05-27 22:33:59 · 414 阅读 · 0 评论 -
五分钟带你搞定分布式事务
前言分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在这几年越来越火的微服务架构中,几乎可以说是无法避免,本文就围绕分布式事务各方面与大家进行介绍。一. 事务1.1 什么是事务数据库事务(简称:事务,Transaction)是指数据库执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。事务拥有以下四个特性,习惯上被称为ACID特性:...原创 2019-05-28 15:42:22 · 234 阅读 · 0 评论 -
Redis的Linux系统优化
文章转载自《Redis开发与运维》第12章通常来看,Redis开发和运维人员更加关注的是Redis本身的一些配置优化,例如AOF和RDB的配置优化、数据结构的配置优化等,但是对于操作系统是否需要针对Redis做一些配置优化不甚了解或者不太关心,然而事实证明一个良好的系统操作配置能够为Redis服务良好运行保驾护航。众所周知Redis的作者对于Windows操作系统并不感冒,目前大部分公司都...原创 2019-05-28 16:34:32 · 709 阅读 · 1 评论 -
10年程序员被裁员后的真实生活,痛心:没有这样放松过!
一名程序员在年前被裁员了,也许是塞翁失马,焉知祸福,借着这段被裁员的日子,这名程序员索性开始放松享受生活:12月底被裁,现在每天接送孩子买菜做饭,中午午休,说句实话也不是大富大贵,只是这样的日子突然发现好舒心,十年了没这么在春节前休息过,完全毫无压力,还能早点回老家陪老妈办年货,以前的春节都是担心年假请多了不好,不能第一天上班就到岗不好,担心项目出问题。担心过年得给老板电话拜年,给同事微信拜年...原创 2019-05-28 20:11:27 · 553 阅读 · 0 评论 -
我在阿里做技术面试官的一些经验
前言一般阿里腾讯这样的大公司,校招面试的流程是一轮统一笔试+三轮技术面试+一轮HR面试,如果对候选人的水平有争议,技术面试有可能会增加一轮,以2019年春招(实习生招聘)为例:统一的笔试。技术初面,一般这一轮都是由你将来同一个团队的比较资深的同事来面试技术二面,一般是由你的未来主管面试技术交叉面,一般是其他事业部的主管面试HR终面,非技术问题对应届生来说,大厂统一校招前,如果你想...原创 2019-05-28 21:35:06 · 5001 阅读 · 1 评论 -
2019年面试必备:最新Java核心知识点(1)—JVM
核心知识——JVM上篇文章我给大家看了Java核心技术点的目录兼进阶路线这篇文章将把文章里面的每个点分析给大家,我们先从第一个知识点入手。jvm基本概念:JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、 一个垃圾回收,堆 和 一个存储方法域JVM 是运行在操作系统之上的,它与硬件没有直接 的交互。...原创 2019-06-05 21:55:31 · 189 阅读 · 0 评论 -
谁说漂亮女程序员就不能拿大厂Offer了?美团面试经历分享,值得借鉴
美团我是在网上投的简历,之前也投过一次,简历都没通过筛选,后来让学姐帮我改了一下简历,重新投另一个部门,获得了面试机会。10月23日中午HR打电话过来预约了下午4点半面试,说会在线写代码,让我准备好网络环境。结果5点半还没打电话过来,被放鸽子。与hr重新沟通过后,确定下周一下午再面,可是跟hr沟通预约这一套貌似在美团并没有什么用。文末有总结面试资料分享给大家~美团技术一面20分钟...原创 2019-06-12 15:46:24 · 788 阅读 · 5 评论 -
百度某员工哀叹:身边的混子太多,坚持了一年,简直浪费生命!
职场上总会有混子,大公司也不例外。无独有偶,一名自称来自百度的网友就在互联网匿名社区论坛吐槽起来,其称自己身边的混子太多,看着有能力的人一个个都走了,劣币驱逐良币而心寒。其还进一步补充道,之前在一家1000多人的独角兽公司,感觉都比百度这个部门的人各方面能力,态度都要强,很多不是一个层次的感觉,在百度坚持了一年,简直就是浪费生命。当然,这些都是来自这名百度员工自己的吐槽,其真实性我们不得而知...原创 2019-05-31 18:01:08 · 685 阅读 · 0 评论 -
面试题:你主要负责公司基础架构的高可用,那你说说DNS的解析过程?
DNS 是互联网核心协议之一。不管是上网浏览,还是编程开发,都需要了解一点它的知识。DNS 是什么?DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址。你可以把它想象成一本巨大的电话本。举例来说,如果你要访问域名 math.stackexchange.com,首先要通过DNS查出它的IP地址是 151.101.129.69。查询...原创 2019-05-29 14:08:09 · 819 阅读 · 0 评论 -
【BAT面试题系列】面试官:你了解乐观锁和悲观锁吗?
前言乐观锁和悲观锁问题,是出现频率比较高的面试题。本文将由浅入深,逐步介绍它们的基本概念、实现方式(含实例)、适用场景,以及可能遇到的面试官追问,希望能够帮助你打动面试官。一、基本概念乐观锁和悲观锁是两种思想,用于解决并发场景下的数据竞争问题。乐观锁:乐观锁在操作数据时非常乐观,认为别人不会同时修改数据。因此乐观锁不会上锁,只是在执行更新的时候判断一下在此期间别人是否修改了数据:如...原创 2019-05-29 15:34:58 · 285 阅读 · 0 评论