ThreadLocal全面解析(一) 编程技术

ThreadLocal全面解析(一)

今天无意中看到了一篇关于ThreadLocal的文章,然后就去学习了一下,但是那篇文章看完之后,小六六又觉得有点不完善的地方,所以就继续找资料学习,终于把ThreadLocal大部分的知识有了点基本的认知吧,故写文章记录一下。 ThreadLocal基础之Java的引用 在 JDK1.2 之前,Java中的定义很传统:如果 reference 类型的数据中存储的数值代表的是另外一块内存的起始地...
阅读全文
得心应手应对 OOM 的疑难杂症 编程技术

得心应手应对 OOM 的疑难杂症

堆(heap)是一个巨大的对象池。在这个对象池中管理着数量巨大的对象实例。 而池中对象的引用层次,有的是很深的。一个被频繁调用的接口,每秒生成对象的速度,也是非常可观的。对象之间的关系,形成了一张巨大的网。虽然 Java 一直在营造一种无限内存的氛围,但对象不能只增不减,所以需要垃圾回收。 那 JVM 是如何判断哪些对象应该被回收?哪些应该被保持呢? 在古代,刑罚中有诛九族一说。指的是...
阅读全文
详解 Java 中 4 种 IO 模型 编程技术

详解 Java 中 4 种 IO 模型

来源:ncoding ncoding.com/2018/04/02/java/io.html 同步、异步、阻塞、非阻塞都是和I/O(输入输出)有关的概念,最简单的文件读取就是I/O操作。而在文件读取这件事儿上,可以有多种方式。 本篇会先介绍一下I/O的基本概念,通过一个生活例子来分别解释下这几种I/O模型,以及Java支持的I/O模型。 基本概念 在解释I/O模型之前,我先说明...
阅读全文
Java构建高效结果缓存方法示例 编程技术

Java构建高效结果缓存方法示例

缓存是现代应用服务器中非常常用的组件。除了第三方缓存以外,我们通常也需要在java中构建内部使用的缓存。那么怎么才能构建一个高效的缓存呢? 本文将会一步步的进行揭秘。 使用HashMap 缓存通常的用法就是构建一个内存中使用的Map,在做一个长时间的操作比如计算之前,先在Map中查询一下计算的结果是否存在,如果不存在的话再执行计算操作。 我们定义了一个代表计算的接口: pu...
阅读全文
互联网 Java 工程师面试题系列(Redis 面试题) Java

互联网 Java 工程师面试题系列(Redis 面试题)

1、什么是 Redis? Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库。 Redis 与其他 key - value 缓存产品有以下三个特点: Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再 次加载进行使用。 Redis 不仅仅支持简单的 key-value 类型的数据,同时还提供 list,set,z...
阅读全文
JVM&GC(一)java引用 编程技术

JVM&GC(一)java引用

前言 Java中的引用有点像C++中的指针,通过引用可以对堆中的对象进行操作。在Java程序中最常见的引用类型是 强引用 ,也是默认的引用类型。当在Java语言中使用New操作符创建一个新的对象,并将其赋值给一个变量的时候,这个变量就成为指向该对象的一个强引用。 Jva中的引用 Java中提供了四个级别的引用,强引用(Strong Reference)、软引用(Soft Ref...
阅读全文
深入探索Android内存优化(炼狱级别) Java

深入探索Android内存优化(炼狱级别)

本文由 jsonchao投稿微信:bcce5360 前言 成为一名优秀的Android开发,需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~。 本篇是 Android 内存优化的进阶篇,难度可以说达到了炼狱级别,建议对内存优化不是非常熟悉的仔细看看前篇文章:Android性能优化之内存优化,其中详细分析了以下几大模块: 1)Android的内存管理机制 2...
阅读全文
深入探索Android内存优化 Java

深入探索Android内存优化

本篇是Android内存优化的进阶篇,难度会比较大,建议对内存优化不是非常熟悉的前仔细看看在前几篇文章中,笔者曾经写过的一篇 Android性能优化之内存优化 ,其中详细分析了以下几大模块: Android的内存管理机制 优化内存的意义 避免内存泄漏 优化内存空间 图片管理模块的设计与实现 如果你对以上基础内容都比较了解了,那么我们便开始接下来的An...
阅读全文
Loading...