-
Java 第1篇 https://www.iteye.com/blog/lobin-2326332
-
Java 第2篇: 哈希表 https://lobin.iteye.com/admin/blogs/2326558
-
Java 第3篇: 集合 https://www.iteye.com/blog/lobin-2326327
-
Java 第4篇: 线程 https://lobin.iteye.com/admin/blogs/2327713
-
Java: 高级编程 https://www.iteye.com/blog/lobin-2431622
-
Java: 函数式编程 https://www.iteye.com/blog/lobin-2434203
-
Java: 网络编程 https://www.iteye.com/blog/lobin-2326354
- 浏览: 425584 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (433)
- 编程语言-JAVA/Scala/Clojure/Grovvy (86)
- 编程语言-C (227)
- 编程语言-Rust/C++/Objective-C/Objective-C++ (97)
- 编程语言-PHP (4)
- 编程语言-Perl (4)
- 编程语言-Javascript (6)
- 编程语言-Scheme/Lisp (9)
- 编程语言-lua (5)
- 编程语言-erl (4)
- 编程语言-go (4)
- 编程语言-Ruby (3)
- 编程语言-python (4)
- 编程语言-smalltalk (3)
- 编程语言-guile (3)
- 算法结构 (32)
- 多线程编程 (2)
- 网络编程 (7)
- 并发编程 (21)
- 并行编程 (2)
- 事务 (4)
- 架构/编程-模型/模式/思想 (6)
- 开发框架-Spring (2)
- 开发框架-ibatis (0)
- 开发框架-Struts (0)
- 开发框架-Hibernate (0)
- 开发框架-mybatis (0)
- 分布式 (38)
- 分布式存储 (10)
- 分布式文件系统-dfs (4)
- 分布式计算 (2)
- 分布式事务 (10)
- 分布式数据中间件 (1)
- 分布式服务框架 (12)
- rpc (8)
- 通信 (23)
- 电信 (3)
- 电商 (1)
- 互联网应用 (2)
- 大前端 (5)
- 第三方支付 (2)
- CSS (1)
- android (3)
- ios (0)
- html5 (0)
- kafka (0)
- memcached (2)
- nginx (1)
- 并行计算 (1)
- 实时计算 (0)
- Storm (0)
- 数据库 (7)
- mysql (6)
- oracle (3)
- redis (4)
- mongodb (2)
- hbase (1)
- dal (0)
- handoop (1)
- 机器学习-ML (3)
- 深度学习-DL (0)
- 神经网络 (0)
- netty (4)
- mina (0)
- 大数据 (7)
- 大数据-算法 (0)
- 大数据-框架&平台 (3)
- 人工智能 (7)
- 人工智能-算法 (4)
- 人工智能-框架&平台 (0)
- 协议 (42)
- 安全 (15)
- 消息队列 (2)
- os(linux、windows) (85)
最新评论
内存模型
任何编程语言都有它的内存模型。不管什么编程语言都定义了程序在运行时对内存的访问方式。CPU处理器在执行指令时,如果需要访问内存,比如操作某个变量,也涉及到对内存的访问方式。
Java内存模型、C/C++内存模型和多处理器CPU内存模型关系
可见性
内存可见性
T:a--->b--->c--->d--->...--->
T
+----------------+
| 处理器 |
+----------------+
+----------------+
| cache |
+----------------+
+----------------+
| 内存 |
+----------------+
Java内存模型和多处理器CPU内存模型关系
Java内存模型:
参考另一篇文章:https://lobin.iteye.com/blog/2325729
C/C++内存模型:
https://en.cppreference.com/w/c/language/memory_model
https://en.cppreference.com/w/cpp/language/memory_model
内存管理
Java GC机制
分代回收的GC机制
Java Reachability
Automatically-cleared references
Soft and weak references are automatically cleared by the collector before being added to the queues with which they are registered, if any. Therefore soft and weak references need not be registered with a queue in order to be useful, while phantom references do. An object that is reachable via phantom references will remain so until all such references are cleared or themselves become unreachable.
Reachability
Going from strongest to weakest, the different levels of reachability reflect the life cycle of an object. They are operationally defined as follows:
- An object is strongly reachable if it can be reached by some thread without traversing any reference objects. A newly-created object is strongly reachable by the thread that created it.
- An object is softly reachable if it is not strongly reachable but can be reached by traversing a soft reference.
- An object is weakly reachable if it is neither strongly nor softly reachable but can be reached by traversing a weak reference. When the weak references to a weakly-reachable object are cleared, the object becomes eligible for finalization.
- An object is phantom reachable if it is neither strongly, softly, nor weakly reachable, it has been finalized, and some phantom reference refers to it.
- Finally, an object is unreachable, and therefore eligible for reclamation, when it is not reachable in any of the above ways.
GC
年轻代
年老代
持久代
GC算法
JVM
# ldd java
linux-gate.so.1 => (0x00eea000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00c89000)
libjli.so => /usr/local/jdk1.8.0_261/bin/./../lib/i386/jli/libjli.so (0x00a89000)
libdl.so.2 => /lib/libdl.so.2 (0x00621000)
libc.so.6 => /lib/libc.so.6 (0x00653000)
/lib/ld-linux.so.2 (0x800a7000)
# ldd javac
linux-gate.so.1 => (0x0094a000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00db8000)
libjli.so => /usr/local/jdk1.8.0_261/bin/./../lib/i386/jli/libjli.so (0x0054a000)
libdl.so.2 => /lib/libdl.so.2 (0x006f5000)
libc.so.6 => /lib/libc.so.6 (0x00168000)
/lib/ld-linux.so.2 (0x800d3000)
发表评论
-
Android: 动画
2023-02-23 22:23 0动画 Animation Android提供了一个动画 ... -
Android: LayoutInflater
2023-02-23 22:19 0LayoutInflater android.view.La ... -
Android: 配置清单
2023-02-21 20:12 0配置清单 Android的一个重要的配置文件Androi ... -
Android: 位置服务
2023-02-21 20:05 0位置服务 LocationManager l ... -
Android: 位置服务
2023-02-21 20:05 0位置服务 LocationManager l ... -
Android: SQLite
2023-02-21 19:59 0SQLite SQLiteOpenHelper ... -
Android: 容器视图
2023-02-02 14:35 0容器视图 容器视图和其他的视图不一样的是容器视图可以添加 ... -
Android: 布局
2022-04-05 23:28 558布局 Android提供了大量的布局 Andro ... -
Android: ContentProvider
2022-04-04 05:02 0ContentProvider是一种内容提供者,是一种内容 ... -
Android: 视图
2022-04-04 04:58 462视图 Android app所有界面UI组件都是一个Vi ... -
Android: Activity
2022-04-04 04:55 714Activity 在 Android 平台上,Act ... -
Clojure
2022-03-26 21:30 170写道 https://lobin.iteye.com/ad ... -
Clojure
2022-03-26 21:28 0list user=> '(1 2 3 ... -
Android: 开发环境
2020-09-12 15:28 556Android开发环境搭建 基本开发环境 ... -
Java反编译
2020-04-14 23:55 911包括反编译出字节码以及汇编 字节码 参考另一 ... -
关于实时(Real-time)
2019-05-26 18:11 704下面是对实时操作系统的定义: 实时操作系统 ... -
关于原子性
2019-05-25 00:56 498关于原子性 -
JVM 指令
2019-04-27 21:57 985字节码 enum Code { ... -
留个备份, Java JDK的历史版本下载地址
2019-03-08 01:31 1392记录一下JDK的历史版本下载地址: https://www ... -
持久性和一致性:事务日志的记录以及在记录数据时和数据保持一致
2019-03-07 18:55 698持久性和一致性:事务日志的记录以及在记录数据时和数据保持一 ...
相关推荐
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...
这是一本以面试题为入口讲解 Java 核心内容的技术书籍,书中内容极力的向你证实代码是对数学逻辑的具体实现。当你仔细阅读书籍时,会发现Java中有大量的数学知识,包括:扰动函数、负载因子、拉链寻址、开放寻址、...
Java OCR(Optical Character Recognition,光学字符识别)技术是一种计算机视觉领域的应用,它能将图像中的文字转换成可编辑的文本格式。这项技术在各种场景下都有广泛应用,比如文档扫描、车牌识别、发票处理等。...
java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
java源码包实例源码JAVA开发源码50个合集: Ajax框架 ZK.rar Java图书馆管理系统源程序.rar Java图片倒影效果实例源码.rar Java图片翻折,将图像压扁.rar Java坦克大战网络对战版源代码.rar Java声音播放程序源代码....
JAVA开发人员最新版本7.0 api文档!本文档是 Java Platform Standard Edition 7 的 API !Java 1.7 API的中文帮助文档。 深圳电信培训中心 徐海蛟博士教学用api 7.0中文文档。支持全文检索,在线即时查询。 里面列...
java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点导航系统java景点...
java单机小游戏java单机小游戏java单机小游戏java单机小游戏 java单机小游戏java单机小游戏java单机小游戏java单机小游戏 java单机小游戏java单机小游戏java单机小游戏java单机小游戏 java单机小游戏java单机小游戏...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
最新全套Java学习资料打包 最新全套Java学习资料打包 最新全套Java学习资料打包 最新全套Java学习资料打包 最新全套Java学习资料打包 最新全套Java学习资料打包 最新全套Java学习资料打包 最新全套Java...
日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
Java2Pas是一个实用工具,主要用于将Java编程语言编写的源代码转换为Pascal语言的等效代码。这个工具对于那些需要在两种语言之间迁移代码或者理解不同编程语言语法的开发者来说非常有价值。Java和Pascal虽然都是面向...
HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...
### Java 错误处理:java.lang.OutOfMemoryError: Java heap space 在Java应用程序开发过程中,经常遇到的一个问题就是内存溢出错误,特别是在处理大量数据或长时间运行的应用时。其中,“java.lang....
这份名为“从Java菜鸟到专家的资料”的压缩包文件包含了丰富的学习资源,旨在帮助初学者逐步成长为Java领域的专家。以下是对各个文件的详细解读: 1. **J2EE研究文集.chm**:这个文件专注于Java企业级应用开发,...
Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 ...
Java是一种广泛使用的面向对象的编程语言,其设计目标是具有高度的可移植性,灵活性和安全性。本学习笔记主要涵盖了Java的基础知识,包括面向对象、集合、IO流、多线程、反射与动态代理以及Java 8的新特性等方面,...