
Java
Java
武培轩
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
性能调优必备利器之 JMH
if 快还是 switch 快?HashMap 的初始化 size 要不要指定,指定之后性能可以提高多少?各种序列化方法哪个耗时更短?无论出自何种原因需要进行性能评估,量化指标总是必要的...原创 2020-06-01 23:10:22 · 928 阅读 · 0 评论 -
为什么阿里巴巴Java开发手册中不允许魔法值出现在代码中?
在阅读《阿里巴巴Java开发手册》时,发现有一条关于关于常量定义的规约,具体内容如下:图中的反例是将数据缓存起来,并使用魔法值加链路 id 组成 key,这就可能会出现其他开发人员在复制...原创 2020-05-25 13:12:27 · 1349 阅读 · 0 评论 -
一文搞懂 ThreadLocal 原理
当多线程访问共享可变数据时,涉及到线程间同步的问题,并不是所有时候,都要用到共享数据,所以就需要线程封闭出场了。数据都被封闭在各自的线程之中,就不需要同步,这种通过将数据封闭在线程中而避免使用同步的技术称为线程封闭。本文主要介绍线程封闭中的其中一种体现:ThreadLocal,将会介绍什么是 ThreadLocal;从 ThreadLocal 源码角度分析,最后介绍 ThreadLocal 的...原创 2020-04-05 17:43:34 · 2102 阅读 · 0 评论 -
听说用 Lombok 可以早点下班?
听说隔壁用 Lombok 的六点就下班了,我也想六点下班!好的,那么这篇文章就介绍下什么是 Lombok,Lombok 做了什么以及 Lombok 是怎么做的?在介绍之前,先通过是否使用 Lombok 的效果来看下对比,首先来看下没有 Lombok 之前,我们的一个简单的 Java 对象(POJO)是长什么样子的:哦,我的天啊,居然 60 行,好长啊!那我们接下来使用的 Lombok 来试...原创 2020-03-31 22:32:19 · 275 阅读 · 0 评论 -
原来 CPU 为程序性能优化做了这么多
不要让 CPU 的努力白费,大家一起来见证下!原创 2020-03-29 15:55:09 · 454 阅读 · 0 评论 -
如何优雅地中止线程?
我就用 stop 中止线程不行吗?原创 2020-03-27 01:26:52 · 228 阅读 · 0 评论 -
线程数,射多少更舒适?
我相信大家都用过线程池,但是线程池数量设置为多少比较合理呢?线程数的设置的最主要的目的是为了充分并合理地使用 CPU 和内存等资源,从而最大限度地提高程序的性能,因此让我们一起去探索吧!首先要考虑到 CPU 核心数,那么在 Java 中如何获取核心线程数?可以使用 Runtime.getRuntime().availableProcessor() 方法来获取(可能不准确,作为参考)在确认了...原创 2020-03-25 02:39:47 · 661 阅读 · 1 评论 -
Java异常处理只有Try-Catch吗?
今天,我们将讨论一个非常重要的主题-Java 中的异常处理。尽管有时可能会对此主题进行过多的讨论,但并非每篇文章都包含有用且相关的信息。Java 中最常见的异常处理机制通常与 try-catch 块关联 。我们使用它来捕获异常,然后提供在发生异常的情况下可以执行的逻辑。的确,你不需要将所有异常都放在这些块中。另一方面,如果你正在研究应用程序的软件设计,则可能不需要内置的异常处理机制。在这种情...原创 2019-12-01 15:59:56 · 1235 阅读 · 0 评论 -
你真的了解 volatile 关键字吗?
今天,让我们一起来探讨 Java 并发编程中的知识点:volatile 关键字本文主要从以下三点讲解 volatile 关键字:volatile 关键字是什么?volatile 关键字能解决什么问题?使用场景是什么?volatile 关键字实现的原理?volatile 关键字是什么?在 Sun 的 JDK 官方文档是这样形容 volatile 的:The Java program...原创 2019-10-31 01:16:16 · 971 阅读 · 11 评论 -
Java 中的 final、finally、finalize 有什么不同?
Java 中 final、finally、finalize 有什么不同?这是在 Java 面试中经常问到的问题,他们究竟有什么不同呢?这三个看起来很相似,其实他们的关系就像卡巴斯基和巴基斯坦一样有基巴关系。那么如果被问到这个问题该怎么回答呢?首先可以从语法和使用角度出发简单介绍三者的不同:final 可以用来修饰类、方法、变量,分别有不同的意义,final 修饰的 class 代表不可以继...原创 2019-10-29 00:19:42 · 1689 阅读 · 0 评论 -
深入理解 Java 中的 final 关键字
final 是Java 中重要关键字之一,可以应用于类、方法以及变量上。这篇文章中将讲解什么是 final 关键字?将变量、方法和类声明为 final 代表了什么?使用 final 的好处是什么?final 关键字是什么?final 在 Java 中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量。一旦你将引用声明作 final,你将不能改变这个引用了,编译器会检查代码,如果试图将变...原创 2019-10-28 00:27:18 · 3278 阅读 · 5 评论 -
Java 异常处理的 20 个最佳实践,你知道几个?
异常处理是 Java 开发中的一个重要部分,是为了处理任何错误状况,比如资源不可访问,非法输入,空输入等等。Java 提供了几个异常处理特性,以try,catch 和 finally 关键字的形式内建于语言自身之中。Java 编程语言也允许创建新的自定义异常,并通过使用 throw 和 throws关键字抛出它们。在Java编程中,Java 的异常处理不单单是知道语法这么简单,它必须遵循标准的 J...原创 2019-10-26 22:45:24 · 1319 阅读 · 0 评论 -
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?
之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下:那么我们首先来用例子来看看在循环体中用 或者用 StringBuilder 进行字符串拼接的效率如何吧(JDK版本为 jdk1.8.0_201)。package com.wupx.demo;/** * @author wupx * @date 2019/10/23 */publi...原创 2019-10-24 00:12:46 · 737 阅读 · 0 评论 -
Java 8 Optional:优雅地避免 NPE
本篇文章将详细介绍 Optional 类,以及如何用它消除代码中的 null 检查。在开始之前首先来看下什么是 NPE,以及在 Java 8 之前是如何处理 NPE 问题的。空指针异常(NullPointException,简称 NPE)可以说是所有 Java 程序员都遇到过的一个异常,虽然 Java 从设计之初就力图让程序员脱离指针的苦海,但是指针确实是实际存在的,而 Java 设计者也只能是...原创 2019-10-23 12:45:15 · 1806 阅读 · 2 评论 -
为什么不建议使用Date,而是使用Java8新的时间和日期API?
Java 8:新的时间和日期API在Java 8之前,所有关于时间和日期的API都存在各种使用方面的缺陷,因此建议使用新的时间和日期API,分别从旧的时间和日期的API的缺点以及解决方法、Java 8 新的时间和日期API进行讲解。旧的时间和日期的API的缺陷Java 的 java.util.Date 和 java.util.Calendar 类易用性差,不支持时区,而且都不是线程安全...原创 2019-09-12 14:54:00 · 3071 阅读 · 0 评论 -
Java中Set集合是如何实现添加元素保证不重复的?
Java中Set集合是如何实现添加元素保证不重复的?Set集合是一个无序的不可以重复的集合。今天来看一下为什么不可以重复。Set是一个接口,最常用的实现类就是HashSet,今天我们就拿HashSet为例。先简单介绍一下HashSet类HashSet类实现了Set接口, 其底层其实是包装了一个HashMap去实现的。HashSet采用HashCode算法来存取集合中的元素,因此具有...原创 2018-04-16 21:54:00 · 1070 阅读 · 0 评论 -
在 Java 中如何比较日期?
在 Java 中有多种方法可以比较日期,日期在计算机内部表示为(long型)时间点——自1970年1月1日以来经过的毫秒数。在Java中,Date是一个对象,包含多个用于比较的方法,任何比较两个日期的方法本质上都会比较日期的时间。本文主要介绍以下五种方式:使用 Date.compareTo()使用 Date.before()、Date.after() 和 Date.equals()使用 ...原创 2019-10-17 21:39:01 · 2439 阅读 · 0 评论