维C果糖的博客

好学若饥,谦卑若愚。

那些年,关于 Java 的那些事儿

温馨提示:本系列博文(含示例代码)已经同步到 GitHub,地址为「java-skills」,欢迎感兴趣的童鞋Star、Fork,纠错。   在编程这条路上走的越久,我们遇到的事情就越多,磕磕绊绊在所难免,很多坑只有在踩过之后,我们才会越能体会到那种「啊,原来是这么回事儿」的恍然大悟之感...

2017-12-02 15:06:56

阅读数 2676

评论数 5

并发实战 之「 基础构建模块」

委托是创建线程安全类的一个最有效的策略:只需让现有的线程安全类管理所有的状态即可。在本篇博文中,主要介绍一些比较有用的并发构建模块,特别是在 Java 5.0 和 Java 6.0 中引入的一些新模块,以及在使用这些模块来构造应用程序时的一些常用模式。 同步容器类 最早出现的同步容器类是Vecto...

2018-11-17 10:22:52

阅读数 190

评论数 0

并发实战 之「 对象的共享及组合」

温馨提示:本系列博文(含示例代码)已经同步到 GitHub,地址为「java-skills」,欢迎感兴趣的童鞋Star、Fork,纠错。 对象的共享 我们曾说过,要编写正确的并发程序,关键问题在于:在访问共享的可变状态时需要进行正常的管理。 public class NoVisibility ...

2018-10-27 10:23:27

阅读数 262

评论数 1

并发实战 之「 线程安全性」

温馨提示:本系列博文(含示例代码)已经同步到 GitHub,地址为「java-skills」,欢迎感兴趣的童鞋Star、Fork,纠错。 在早期的计算机中不包含操作系统,它们从头到尾只能执行一个程序,并且这个程序能访问计算机中的所有资源。在这种环境中,不仅程序难以编写和运行,而且对于昂贵且稀有...

2018-10-21 10:50:54

阅读数 212

评论数 0

虚拟机篇 之「垃圾收集与内存分配策略」

温馨提示:本系列博文(含示例代码)已经同步到 GitHub,地址为「java-skills」,欢迎感兴趣的童鞋Star、Fork,纠错。 垃圾收集器 在 Java 对象被回收之前,首先需要判断该对象是否已经过期或者死亡?常见的判断一个对象是否过期的算法主要有两种,分别为: 引用...

2018-08-26 11:30:25

阅读数 445

评论数 1

虚拟机篇 之「运行时数据区域及虚拟机对象」

运行时数据区域 Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。这些区域被称为运行时数据区域,其具体划分大致如下图所示: ...

2018-08-05 15:21:48

阅读数 397

评论数 0

效率编程 之「序列化」

对象序列化提供了一个框架,用来将对象编码成字节流,并从字节流编码中重新构建对象。“将一个对象编码成一个字节流”,称作将该对象序列化;相反的处理过程称为反序列化。一旦对象被序列化后,它的编码就可以从一台正在运行的虚拟机被传递到另一台虚拟机上,或者被存储到磁盘上,供以后反序列化时使用。序列化技术为远程...

2018-06-23 10:09:21

阅读数 518

评论数 0

效率编程 之「并发」

第 1 条:同步访问共享的可变数据 关键字synchronized可以保证在同一时刻,只有一个线程可以执行某一个方法,或者某一个代码块。许多程序员把同步的概念仅仅理解为一种互斥的方式,即当一个对象被一个线程修改的时候,可以阻止另一个线程观察到对象内部不一致的状态。按照这种观点,对象被创建的时候处...

2018-06-13 09:26:26

阅读数 552

评论数 0

效率编程 之「异常」

第 1 条:对可恢复的情况使用受检异常,对编程错误使用运行时异常 顾名思义,异常应该只用于异常的情况下;它们永远不应该用于正常的控制流。同理,设计良好的 API 不应该强迫它的客户端为了正常的控制流而使用异常。 Java 程序设计语言提供了三种可抛出结构:受检的异常(checked excep...

2018-06-12 09:03:28

阅读数 476

评论数 0

效率编程 之「通用程序设计」

第 1 条:将局部变量的作用域最小化 ———— ☆☆☆ —— 返回 -> 那些年,关于 Java 的那些事儿 <- 目录 —— ☆☆☆ ————

2018-06-09 11:19:57

阅读数 454

评论数 0

效率编程 之「方法」

第 1 条:检查参数的有效性以及必要时进行保护性拷贝 绝对多数方法和构造器对于传递给它们的参数值都会有某些限制。例如,索引值必须是非空的、对象引用不能为null等。我们应该在文档中清楚地指明所有这些限制,并且在方法体的开头处检查参数,以强制施加这些限制。对于非公有的方法,我们也可以使用断言来检查...

2018-06-08 09:41:54

阅读数 411

评论数 0

效率编程 之「枚举和注解」

温馨提示:本系列博文(含示例代码)已经同步到 GitHub,地址为「java-skills」,欢迎感兴趣的童鞋Star、Fork,纠错。 第 1 条:用enum代替int常量 枚举类型是指由一组固定的常量组成合法值的类型,例如人的性别、中国的省份名称等。在 Java 1.5 发行版...

2018-06-06 08:42:51

阅读数 526

评论数 0

效率编程 之「泛型」

温馨提示:本系列博文(含示例代码)已经同步到 GitHub,地址为「java-skills」,欢迎感兴趣的童鞋Star、Fork,纠错。 第 1 条:请不要在新代码中使用原生态类型 ———— ☆☆☆ —— 返回 -> 那些年,关于 ...

2018-06-04 08:53:28

阅读数 473

评论数 0

效率编程 之「类和接口」

温馨提示:本系列博文(含示例代码)已经同步到 GitHub,地址为「java-skills」,欢迎感兴趣的童鞋Star、Fork,纠错。 第 1 条:使类和成员的可访问性最小化 要区别设计良好的模块与设计不好的模块,最重要的因素在于,这个模块对于外部的其他模块而言,是否隐藏其内部数...

2018-05-28 09:07:13

阅读数 468

评论数 0

效率编程 之「对于所有对象都通用的方法」

温馨提示:本系列博文(含示例代码)已经同步到 GitHub,地址为「java-skills」,欢迎感兴趣的童鞋Star、Fork,纠错。 第 1 条:覆盖equals时请遵守通用约定 类可以提供一个公有的静态工厂方法,它只是一个返回类的示例的静态方法。例如, public sta...

2018-05-27 12:01:04

阅读数 283

评论数 0

效率编程 之「创建和销毁对象」

温馨提示:本系列博文(含示例代码)已经同步到 GitHub,地址为「java-skills」,欢迎感兴趣的童鞋Star、Fork,纠错。 第 1 条:考虑用静态工厂方法代替构造器 类可以提供一个公有的静态工厂方法,它只是一个返回类的示例的静态方法。例如, public stati...

2018-05-23 20:44:29

阅读数 414

评论数 0

编程思想 之「Java I/O 系统」

温馨提示:本系列博文(含示例代码)已经同步到 GitHub,地址为「java-skills」,欢迎感兴趣的童鞋Star、Fork,纠错。 对程序语言的设计者来说,创建一个好的输入/输出(I/O)系统是一项艰难的任务。任务的难度大多数来自于要覆盖所有的可能性,不仅存在各种 I/O 源端和想...

2018-05-06 11:30:05

阅读数 535

评论数 0

IntelliJ IDEA 中的 Maven 项目初体验及搭建 Spring MVC 框架

温馨提示:本教程的 GitHub 地址为「intellij-idea-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。 在「详述 IntelliJ IDEA 创建 Maven 项目及设置 java 源目录的方法」一文中,我们已经将 IntelliJ IDEA 中的 Mave...

2018-04-23 20:28:29

阅读数 7618

评论数 3

编程思想 之「容器深入研究」

温馨提示:本系列博文(含示例代码)已经同步到 GitHub,地址为「java-skills」,欢迎感兴趣的童鞋Star、Fork,纠错。 容器深入研究 在「数组、容器」这篇博文中,我们已经介绍了 Java 容器类库的相关概念及基本特性,这对于使用容器来说已经够用了。在本篇博文中,我...

2018-04-22 15:33:58

阅读数 320

评论数 0

编程思想 之「数组、容器」

温馨提示:本系列博文(含示例代码)已经同步到 GitHub,地址为「java-skills」,欢迎感兴趣的童鞋Star、Fork,纠错。 我们说,“Java 是面向对象的编程语言”,Java 中的所有行为都是围绕对象进行的,那么 Java 是如何持有对象的呢?实际上,在 Java 中,持...

2018-04-21 16:53:58

阅读数 322

评论数 0

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