随笔分类 - JavaCore
摘要:📦 本文以及示例源码已归档在 "javacore" 一、并发锁简介 确保线程安全最常见的做法是利用锁机制( 、`sychronized`)来对共享数据做互斥同步,这样在同一个时刻,只有一个线程可以执行某个方法或者某个代码块,那么操作必然是原子性的,线程安全的。 在工作、面试中,经常会听到各种五花八
阅读全文
摘要:📦 本文以及示例源码已归档在 "javacore" 一、原子变量类简介 为何需要原子变量类 保证线程安全是 Java 并发编程必须要解决的重要问题。Java 从原子性、可见性、有序性这三大特性入手,确保多线程的数据一致性。 确保线程安全最常见的做法是利用锁机制( 、`sychronized`)来对
阅读全文
摘要:📦 本文以及示例源码已归档在 "javacore" 一、J.U.C 简介 Java 的 包(简称 J.U.C)中提供了大量并发工具类,是 Java 并发能力的主要体现(注意,不是全部,有部分并发能力的支持在其他包中)。从功能上,大致可以分为: 原子类 如: 、`AtomicIntegerArray
阅读全文
摘要:📦 本文以及示例源码已归档在 "javacore" Java 内存模型(Java Memory Model),简称 JMM 。 JVM 中试图定义一种 JMM 来 屏蔽各种硬件和操作系统的内存访问差异,以实现让 Java 程序在各种平台下都能达到一致的内存访问效果 。 一、物理内存模型 物理机遇到
阅读全文
摘要:Java 线程基础 📦 本文以及示例源码已归档在 "javacore" <! TOC depthFrom:2 depthTo:3 "一、线程简介" "什么是进程" "什么是线程" "进程和线程的区别" "二、线程基本用法" "创建线程" "线程休眠" "线程礼让" "终止线程" "守护线程" "F
阅读全文
摘要:一、简介 什么是线程池 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。 为什么要用线程池 如果并发请求数量很多,但每个线程执行的时间很短,就会出现频繁的创建和销毁线程。如此一来,会大大降低系统的效率,可能频繁创建和销毁线程的时间、资源开销要大于实际工作的所
阅读全文
摘要:深入理解 Java 注解 本文内容基于 JDK8。注解是 JDK5 引入的,后续 JDK 版本扩展了一些内容,本文中没有明确指明版本的注解都是 JDK5 就已经支持的注解。 📓 本文已归档到:「 "javacore" 」 🔁 本文中的示例代码已归档到:「 "javacore" 」 1. 简介 1
阅读全文
摘要:📓 本文已归档到:「 "javacore" 」 🔁 本文中的示例代码已归档到:「 "javacore" 」 1. 异常框架 1.1. Throwable 是 Java 语言中所有错误( )和异常( )的超类。 包含了其线程创建时线程执行堆栈的快照,它提供了 等接口用于获取堆栈跟踪数据等信息。 主
阅读全文
摘要:📓 本文已归档到:「 "javacore" 」 🔁 本文中的示例代码已归档到:「 "javacore" 」 1. 简介 1.1. 数组的特性 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。几乎所有程序设计语言都支持数组。 数组代表一系列对象或者基本数
阅读全文
摘要:📓 本文已归档到:「 "javacore" 」 🔁 本文中的示例代码已归档到:「 "javacore" 」 1. 简介 的全称为 enumeration, 是 JDK5 中引入的特性。 在 Java 中,被 关键字修饰的类型就是枚举类型。形式如下: 枚举的好处 :可以将常量组织起来,统一进行管理
阅读全文
摘要:Java 控制语句 📓 本文已归档到:「 "javacore" 」 🔁 本文中的示例代码已归档到:「 "javacore" 」 Java 控制语句大致可分为三大类: 选择语句 if, else if, else switch 循环语句 while do...while for foreach 终
阅读全文
摘要:方法(有的人喜欢叫函数)是一段可重用的代码段。 📓 本文已归档到:「 "javacore" 」 🔁 本文中的示例代码已归档到:「 "javacore" 」 1. 方法的使用 1.1. 方法定义 方法定义语法格式: 示例: 方法包含一个方法头和一个方法体。下面是一个方法的所有部分: 修饰符 修饰符
阅读全文
摘要:📓 本文已归档到:「 "javacore" 」 1. 数据类型分类 Java 中的数据类型有两类: 值类型(又叫内置数据类型,基本数据类型) 引用类型(除值类型以外,都是引用类型,包括 、数组) 1.1. 值类型 Java 语言提供了 8 种基本类型,大致分为 4 类 整数型 8 位。 16 位。
阅读全文
摘要:📓 本文已归档到:「 "javacore" 」 🔁 本文中的示例代码已归档到:「 "javacore" 」 1. 为什么需要泛型 JDK5 引入了泛型机制 。 为什么需要泛型呢?回答这个问题前,先让我们来看一个示例。 示例说明: 在上面的示例中, 容器没有指定存储数据类型,这种情况下,可以向 添
阅读全文
摘要:📓 本文已归档到:「 "javacore" 」 🔁 本文中的示例代码已归档到:「 "javacore" 」 1. 简介 1.1. 什么是反射 反射(Reflection)是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性。 通过反射
阅读全文
摘要:深入理解 Java 基本数据类型 :notebook: 本文已归档到:「 "blog" 」 <! TOC depthFrom:2 depthTo:3 "数据类型分类" "值类型" "值类型和引用类型的区别" "数据转换" "自动转换" "强制转换" "装箱和拆箱" "包装类、装箱、拆箱" "自动装箱
阅读全文
摘要:前言 很多人喜欢争论什么什么编程语言好,我认为这个话题如果不限定应用范围,就毫无意义。 每种编程语言必然有其优点和缺点,这也决定了它有适合的应用场景和不适合的应用场景。现代软件行业,想一门编程语言包打天下是不现实的。这中现状也造成了一种现象,一个程序员往往要掌握多种编程语言。 学习任何一门编程语言,
阅读全文
摘要:翻译自 "java8 tutorial" 新特性 Default Methods for Interfaces(接口的默认方法) Java 8 使我们能够通过使用 关键字将非抽象方法实现添加到接口。这个功能也被称为虚拟扩展方法。 这是我们的第一个例子: 除了抽象方法 ,接口 还定义了默认方法 。具体
阅读全文
摘要:JDK8 发布很久了,它提供了许多吸引人的新特性,能够提高编程效率。 如果是新的项目,使用 JDK8 当然是最好的选择。但是,对于一些老的项目,升级到 JDK8 则存在一些兼容性问题,是否升级需要酌情考虑。 近期,我在工作中遇到一个任务,将部门所有项目的 JDK 版本升级到 1.8 (老版本大多是
阅读全文
摘要:Java 枚举 知识点 概念 的全称为 enumeration, 是 JDK 1.5 中引入的新特性。 在Java中,被 关键字修饰的类型就是枚举类型。形式如下: 如果枚举不添加任何方法, 枚举值默认为从0开始的有序数值 。以 Color 枚举类型举例,它的枚举常量依次为 。 枚举的好处 :可以将常
阅读全文