8 qq541005640

尚未进行身份认证

暂无相关描述

等级
TA的排名 5w+

IDEA 实用快捷键

CtrlAltM抽取方法methodCtrlAltF抽取字段fieldCtrlAltV抽取变量variableCtrlAltC抽取常量constCtrlF6修改函数属性ShiftF6重命名ShiftDELETE安全删除某一行CtrlY...

2019-06-05 14:53:49

39、谈谈常用的分布式ID的设计方案?Snowflake是否受冬令时切换影响?

专栏的绝大部分主题都侧重于Java语言和虚拟机,基本都是单机模式下的问题,今天我会补充一个分布式相关的问题。严格来说,分布式并不算是Java 领域,而是一个单独的大主题,但确实也会在Java 技术岗位面试中被涉及。在准备面试时,如果有丰富的分布式系统经验当然好;如果没有,你可以选择典型问题和基础技术进行适当准备。关于分布式,我自身的实战经验也非常有限,专栏里就谈谈从理论出发的一些思考。...

2019-01-10 19:40:20

38、对比Java标准NIO类库,你知道Netty是如何实现更高性能的吗?

今天我会对NIO进行一些补充,在专栏第11讲中,我们初步接触了Java提供的几种IO机制,作为语言基础类库,Java自身的NIO 设计更偏底层,这本无可厚非,但是对于一线的应用开发者,其复杂性、扩展性等方面,就存在一定的局限了。在基础NIO之上,Netty 构建了更加易用、高性能的网络框架,广泛应用于互联网、游戏、电信等各种领域。今天我要问你的问题是,对比Java标...

2019-01-10 19:40:12

37、谈谈Spring Bean的生命周期和作用域?

在企业应用软件开发中,Java是毫无争议的主流语言,开放的JavaEE规范和强大的开源框架功不可没,其中Spring 毫无疑问已经成为企业软件开发的事实标准之一。今天这一讲,我将补充Spring相关的典型面试问题,并谈谈其部分设计细节。今天我要问你的问题是,谈谈SpringBean的生命周期和作用域?典型回答SpringBean生命周期比较复杂,可以分为创建和...

2019-01-10 19:40:04

36、谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?

目录今天我要问你的问题是,谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?典型回答考点分析知识扩展一课一练在日常开发中,尤其是业务开发,少不了利用Java对数据库进行基本的增删改查等数据操作,这也是Java工程师的必备技能之一。做好数据操作,不仅仅需要对 Java语言相关框架的掌握,更需要对各种数据库自身体系结构的理解。今天这一讲,作为补...

2019-01-10 19:39:55

35、JVM优化Java代码时都做了什么?

我在专栏上一讲介绍了微基准测试和相关的注意事项,其核心就是避免JVM运行中对Java代码的优化导致失真。所以,系统地理解Java 代码运行过程,有利于在实践中进行更进一步的调优。今天我要问你的问题是,JVM优化Java代码时都做了什么?与以往我来给出典型回答的方式不同,今天我邀请了隔壁专栏《深入拆解Java虚拟机》的作者,同样是来自Oracle的郑雨迪博士,让他以...

2019-01-10 19:39:47

34、有人说“Lambda能让Java程序慢30倍”,你怎么看?

在上一讲中,我介绍了Java性能问题分析的一些基本思路。但在实际工作中,我们不能仅仅等待性能出现问题再去试图解决,而是需要定量的、可对比的方法,去评估 Java应用性能,来判断其是否能够符合业务支撑目标。今天这一讲,我会介绍从Java 开发者角度,如何从代码级别判断应用的性能表现,重点理解最广泛使用的基准测试(Benchmark)。今天我要问你的问题是,有人说“Lambda能让J...

2019-01-10 19:39:38

33、 后台服务出现明显“变慢”,谈谈你的诊断思路?

在日常工作中,应用或者系统出现性能问题往往是不可避免的,除了在有一定规模的IT 企业或者专注于特定性能领域的企业,可能大多数工程师并不会成为专职的性能工程师,但是掌握基本的性能知识和技能,往往是日常工作的需要,并且也是工程师进阶的必要条件之一,能否定位和解决性能问题也是对你知识、技能和能力的检验。今天我要问你的问题是,后台服务出现明显“变慢”,谈谈你的诊断思路?典型回答首先,需要对这...

2019-01-08 22:56:32

32、如何写出安全的Java代码?

在上一讲中,我们已经初步接触了Java安全,今天我们将一起探讨更多Java 开发中可能影响到安全的场合。很多安全问题,在特定的上下文,存在着不同的定义,尽管本质是相似或一致的,这是由于Java 平台自身的特性所带来特有的问题。今天这一讲我将侧重于Java开发者的角度谈代码安全,而不是讲广义的安全风险。今天我要问你的问题是,如何写出安全的Java代码?典型回答这个问题可能...

2019-01-08 22:56:25

31、你了解Java应用开发中的注入攻击吗?

安全是软件开发领域永远的主题之一,随着新技术浪潮的兴起,安全的重要性愈发凸显出来,对于金融等行业,甚至可以说安全是企业的生命线。不论是移动设备、普通 PC、小型机,还是大规模分布式系统,以及各种主流操作系统,Java作为软件开发的基础平台之一,可以说是无处不在,自然也就成为安全攻击的首要目标之一。今天我要问你的问题是,你了解Java应用开发中的注入攻击吗?典型回答注入式(Inje...

2019-01-08 22:56:15

30、Java程序运行在Docker等容器环境有哪些新问题?

如今,Docker等容器早已不是新生事物,正在逐步成为日常开发、部署环境的一部分。Java能否无缝地运行在容器环境,是否符合微服务、Serverless 等新的软件架构和场景,在一定程度上也会影响未来的技术栈选择。当然,Java对Docker等容器环境的支持也在不断增强,自然地,Java 在容器场景的实践也逐渐在面试中被涉及。我希望通过专栏今天这一讲,能够帮你能做到胸有成竹。今天我要...

2019-01-08 22:56:03

29、Java内存模型中的happen-before是什么?

Java语言在设计之初就引入了线程的概念,以充分利用现代处理器的计算能力,这既带来了强大、灵活的多线程机制,也带来了线程安全等令人混淆的问题,而Java 内存模型(JavaMemoryModel,JMM)为我们提供了一个在纷乱之中达成一致的指导准则。今天我要问你的问题是,Java内存模型中的happen-before是什么?典型回答Happen-before关系,是J...

2019-01-08 22:55:57

28、谈谈你的GC调优思路?

目录今天我要问你的问题是,谈谈你的GC调优思路?典型回答考点分析知识扩展首先,先来整体了解一下G1GC的内部结构和主要机制。你可以思考下region设计有什么副作用?前面介绍了G1的内部机制,并且穿插了部分调优建议,下面从整体上给出一些调优的建议。一课一练我发现,目前不少外部资料对G1的介绍大多还停留在JDK7或更早期的实现,很多结论...

2019-01-08 22:55:48

27、Java常见的垃圾收集器有哪些?

目录今天我要问你的问题是,Java常见的垃圾收集器有哪些?典型回答考点分析知识扩展垃圾收集的原理和基础概念常见的垃圾收集算法垃圾收集过程的理解GC的新发展一课一练垃圾收集机制是Java的招牌能力,极大地提高了开发效率。如今,垃圾收集几乎成为现代语言的标配,即使经过如此长时间的发展,Java 的垃圾收集机制仍然在不断的演进中,不同大小的设备、不同特征...

2019-01-08 22:55:33

26、如何监控和诊断JVM堆内和堆外内存使用?

目录今天我要问你的问题是,如何监控和诊断JVM堆内和堆外内存使用?典型回答考点分析知识扩展首先,堆内部是什么结构?1.新生代2.老年代3.永久代第二,分析完堆内空间,我们一起来看看JVM堆外内存到底包括什么?一课一练上一讲我介绍了JVM内存区域的划分,总结了相关的一些概念,今天我将结合JVM参数、工具等方面,进一步分析JVM 内存...

2019-01-08 22:55:22

25、谈谈JVM内存区域的划分,哪些区域可能发生OutOfMemoryError?

目录今天我要问你的问题是,谈谈JVM内存区域的划分,哪些区域可能发生OutOfMemoryError?典型回答JAVA的JVM的3个区:堆(heap)、栈(stack)和方法区(method) 考点分析知识扩展接下来,我们来看看什么是OOM问题,它可能在哪些内存区域发生?OutOfMemoryError原因分析一课一练今天,我将从内存管理的角度,进一步...

2019-01-08 22:55:12

24、有哪些方法可以在运行时动态生成一个Java类?

目录今天我要问你的问题是,有哪些方法可以在运行时动态生成一个Java类?典型回答考点分析知识扩展我们分析一下,动态代码生成是具体发生在什么阶段呢?最后一个问题,字节码操纵技术,除了动态代理,还可以应用在什么地方?在开始今天的学习前,我建议你先复习一下专栏第6讲有关动态代理的内容。作为Java 基础模块中的内容,考虑到不同基础的同学以及一个循序渐进的学习过程,我...

2019-01-08 22:54:29

23、请介绍类加载过程,什么是双亲委派模型?

目录今天我要问你的问题是,请介绍类加载过程,什么是双亲委派模型?典型回答考点分析知识扩展通常类加载机制有三个基本特征:类加载器,类文件容器等都发生了非常大的变化,我这里总结一下: 谈到类加载器,绕不过的一个话题是自定义类加载器,常见的场景有:我们可以总体上简单理解自定义类加载过程:简单来说,AppCDS基本原理和工作过程是:一课一练Java通过引入...

2019-01-08 22:53:54

22、AtomicInteger底层实现原理是什么?如何在自己的产品代码中应用CAS操作?(高并发编程----8)

目录今天我要问你的问题是,AtomicInteger底层实现原理是什么?如何在自己的产品代码中应用CAS操作?典型回答考点分析知识扩展一课一练在今天这一讲中,我来分析一下并发包内部的组成,一起来看看各种同步结构、线程池等,是基于什么原理来设计和实现的。今天我要问你的问题是,AtomicInteger底层实现原理是什么?如何在自己的产品代码中应用CAS操作?...

2019-01-08 22:53:34

21、Java并发类库提供的线程池有哪几种? 分别有什么特点?(高并发编程----7)

目录今天我要问你的问题是,Java并发类库提供的线程池有哪几种?分别有什么特点?典型回答考点分析知识扩展下面我就从源码角度,分析线程池的设计与实现,我将主要围绕最基础的ThreadPoolExecutor 源码。进一步分析,线程池既然有生命周期,它的状态是如何表征的呢?线程池实践线程池大小的选择策略一课一练我在专栏第17 讲中介绍过线程是不能够重复启...

2019-01-08 22:53:23

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!