-
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
- 浏览: 427166 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 571布局 Android提供了大量的布局 Andro ... -
Android: ContentProvider
2022-04-04 05:02 0ContentProvider是一种内容提供者,是一种内容 ... -
Android: 视图
2022-04-04 04:58 465视图 Android app所有界面UI组件都是一个Vi ... -
Android: Activity
2022-04-04 04:55 722Activity 在 Android 平台上,Act ... -
Clojure
2022-03-26 21:30 172写道 https://lobin.iteye.com/ad ... -
Clojure
2022-03-26 21:28 0list user=> '(1 2 3 ... -
Android: 开发环境
2020-09-12 15:28 559Android开发环境搭建 基本开发环境 ... -
Java反编译
2020-04-14 23:55 915包括反编译出字节码以及汇编 字节码 参考另一 ... -
关于实时(Real-time)
2019-05-26 18:11 709下面是对实时操作系统的定义: 实时操作系统 ... -
关于原子性
2019-05-25 00:56 502关于原子性 -
JVM 指令
2019-04-27 21:57 987字节码 enum Code { ... -
留个备份, Java JDK的历史版本下载地址
2019-03-08 01:31 1395记录一下JDK的历史版本下载地址: https://www ... -
持久性和一致性:事务日志的记录以及在记录数据时和数据保持一致
2019-03-07 18:55 702持久性和一致性:事务日志的记录以及在记录数据时和数据保持一 ...
相关推荐
这是一本以面试题为入口讲解 Java 核心内容的技术书籍,书中内容极力的向你证实代码是对数学逻辑的具体实现。当你仔细阅读书籍时,会发现Java中有大量的数学知识,包括:扰动函数、负载因子、拉链寻址、开放寻址、...
Java OCR(Optical Character Recognition,光学字符识别)技术是一种计算机视觉领域的应用,它能将图像中的文字转换成可编辑的文本格式。这项技术在各种场景下都有广泛应用,比如文档扫描、车牌识别、发票处理等。...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java电商源代码java...
JAVA开发人员最新版本7.0 api文档!本文档是 Java Platform Standard Edition 7 的 API !Java 1.7 API的中文帮助文档。 深圳电信培训中心 徐海蛟博士教学用api 7.0中文文档。支持全文检索,在线即时查询。 里面列...
### Java基础知识概述 #### 1. 前言 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是为解决应用系统对于...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
Java2Pas是一个实用工具,主要用于将Java编程语言编写的源代码转换为Pascal语言的等效代码。这个工具对于那些需要在两种语言之间迁移代码或者理解不同编程语言语法的开发者来说非常有价值。Java和Pascal虽然都是面向...
### Java 错误处理:java.lang.OutOfMemoryError: Java heap space 在Java应用程序开发过程中,经常遇到的一个问题就是内存溢出错误,特别是在处理大量数据或长时间运行的应用时。其中,“java.lang....
Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 Java文件管理系统源码 ...
标题"smali2java——直接将smali转换成java"揭示了本文的核心主题,即一个名为"smali2java"的工具,它的主要功能是将编程语言Smali转换为Java。Smali是一种低级的、汇编式的语言,通常用于Android应用的逆向工程,而...
Java到Python的转换工具,如标题“java2python”所示,是编程领域中的一种实用技术,旨在帮助开发者将已有的Java代码转换为Python语言。这种转换对于那些熟悉Java但希望进入Python生态系统,或者想要利用Python特定...
JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...
jdk11官方版是一款专为java编程人员推出的软件开发工具。JAVA JDK 11最新版可以帮助用户轻松的获取到JAVA的运行环境,让你在电脑上进行程序开发操作。JAVA JDK 11软件新增Epsilon 垃圾收集器和lambda 参数的局部变量...