IDEA 实用快捷键

Ctrl Alt M 抽取方法 method Ctrl Alt F 抽取字段 field Ctrl Alt V 抽取变量 variable Ctrl Alt C 抽取常量 const Ctrl F6 修改函数属性 Sh...

2019-06-05 14:53:49

阅读数 15

评论数 1

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

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

2019-01-10 19:40:20

阅读数 88

评论数 0

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

今天我会对 NIO 进行一些补充,在专栏第 11 讲中,我们初步接触了 Java 提供的几种 IO 机制,作为语言基础类库,Java 自身的 NIO 设计更偏底层,这本无可厚非,但是对于一线的应用开发者,其复杂性、扩展性等方面,就存在一定的局限了。在基础 NIO 之上,Netty 构建了更加易用、...

2019-01-10 19:40:12

阅读数 75

评论数 0

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

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

2019-01-10 19:40:04

阅读数 78

评论数 0

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

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

2019-01-10 19:39:55

阅读数 183

评论数 0

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

我在专栏上一讲介绍了微基准测试和相关的注意事项,其核心就是避免 JVM 运行中对 Java 代码的优化导致失真。所以,系统地理解 Java 代码运行过程,有利于在实践中进行更进一步的调优。 今天我要问你的问题是,JVM 优化 Java 代码时都做了什么? 与以往我来给出典型回答的方式不同,今天...

2019-01-10 19:39:47

阅读数 188

评论数 0

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

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

2019-01-10 19:39:38

阅读数 401

评论数 0

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

在日常工作中,应用或者系统出现性能问题往往是不可避免的,除了在有一定规模的 IT 企业或者专注于特定性能领域的企业,可能大多数工程师并不会成为专职的性能工程师,但是掌握基本的性能知识和技能,往往是日常工作的需要,并且也是工程师进阶的必要条件之一,能否定位和解决性能问题也是对你知识、技能和能力的检验...

2019-01-08 22:56:32

阅读数 103

评论数 0

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

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

2019-01-08 22:56:25

阅读数 866

评论数 0

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

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

2019-01-08 22:56:15

阅读数 55

评论数 0

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

如今,Docker 等容器早已不是新生事物,正在逐步成为日常开发、部署环境的一部分。Java 能否无缝地运行在容器环境,是否符合微服务、Serverless 等新的软件架构和场景,在一定程度上也会影响未来的技术栈选择。当然,Java 对 Docker 等容器环境的支持也在不断增强,自然地,Java...

2019-01-08 22:56:03

阅读数 212

评论数 0

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

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

2019-01-08 22:55:57

阅读数 63

评论数 0

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

目录 今天我要问你的问题是,谈谈你的 GC 调优思路? 典型回答 考点分析 知识扩展 首先,先来整体了解一下 G1 GC 的内部结构和主要机制。 你可以思考下 region 设计有什么副作用? 前面介绍了 G1 的内部机制,并且穿插了部分调优建议,下面从整体上给出一些调优的建议。 ...

2019-01-08 22:55:48

阅读数 256

评论数 0

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

目录 今天我要问你的问题是,Java 常见的垃圾收集器有哪些? 典型回答 考点分析 知识扩展 垃圾收集的原理和基础概念 常见的垃圾收集算法 垃圾收集过程的理解 GC 的新发展 一课一练 垃圾收集机制是 Java 的招牌能力,极大地提高了开发效率。如今,垃圾收集几乎成为现代语言的...

2019-01-08 22:55:33

阅读数 52

评论数 0

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

目录 今天我要问你的问题是,如何监控和诊断 JVM 堆内和堆外内存使用? 典型回答 考点分析 知识扩展 首先,堆内部是什么结构? 1. 新生代 2. 老年代 3. 永久代 第二,分析完堆内空间,我们一起来看看 JVM 堆外内存到底包括什么? 一课一练 上一讲我介绍了 JVM ...

2019-01-08 22:55:22

阅读数 441

评论数 0

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

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

2019-01-08 22:55:12

阅读数 244

评论数 0

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

目录 今天我要问你的问题是,有哪些方法可以在运行时动态生成一个 Java 类? 典型回答 考点分析 知识扩展 我们分析一下,动态代码生成是具体发生在什么阶段呢? 最后一个问题,字节码操纵技术,除了动态代理,还可以应用在什么地方? 在开始今天的学习前,我建议你先复习一下专栏第 6 讲有...

2019-01-08 22:54:29

阅读数 190

评论数 0

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

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

2019-01-08 22:53:54

阅读数 77

评论数 0

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

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

2019-01-08 22:53:34

阅读数 92

评论数 0

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

目录 今天我要问你的问题是,Java 并发类库提供的线程池有哪几种? 分别有什么特点? 典型回答 考点分析 知识扩展 下面我就从源码角度,分析线程池的设计与实现,我将主要围绕最基础的 ThreadPoolExecutor 源码。 进一步分析,线程池既然有生命周期,它的状态是如何表征的呢...

2019-01-08 22:53:23

阅读数 106

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭