<commit_before>---
layout:     post
title:      "JVM 内存管理探讨"
subtitle:   "JAVA - JVM - Memory Management"
date:       2017-08-01 16:21:00
author:     "Yuanbo"
header-img: "img/home-bg-o.jpg"
tags:
    - JVM
    - Memory
---

> java内存管理分析

# java中的引用
相对于C++，Java语言非常好的一点就是不需要我们手动管理内存，因为有一个像妈妈一样的虚垃圾回收器，每天默默地替我们清扫着房间的垃圾，无怨无悔。基本上所有的java程序员都知道有这么个默默无闻的妈妈，可是你真的了解她吗？
上面提到垃圾回收器替我们清扫垃圾，那么重要的一点来了，什么是垃圾？在现实生活中，没有用的东西就是垃圾，会被丢进垃圾桶，运到处理厂，掩埋或是焚烧。其实在java的世界里也是一样，无用即为垃圾，不过这里的垃圾全都是：对象。
什么叫无用，即没有人要用，在java里，无用即代表没有被引用，java里面操控对象全都是通过引用来进行的，For Example：Object o=new Object()，这里我们就创建了一个Object对象，并用一个引用o来引用这个对象，这样我们就可以通过o来操作这个Obejct了。<commit_msg>post java memory management<commit_after>---
layout:     post
title:      "JVM 内存管理探讨"
subtitle:   "JAVA - JVM - Memory Management"
date:       2017-08-01 16:21:00
author:     "Yuanbo"
header-img: "img/home-bg-o.jpg"
tags:
    - JVM
    - Memory
---

> java内存管理分析


![Java Memory Management](/img/post/java-memory-mgnt.png)

# java中的引用
相对于C++，Java语言非常好的一点就是不需要我们手动管理内存，因为有一个像妈妈一样的虚垃圾回收器，每天默默地替我们清扫着房间的垃圾，无怨无悔。基本上所有的java程序员都知道有这么个默默无闻的妈妈，可是你真的了解她吗？
上面提到垃圾回收器替我们清扫垃圾，那么重要的一点来了，什么是垃圾？在现实生活中，没有用的东西就是垃圾，会被丢进垃圾桶，运到处理厂，掩埋或是焚烧。其实在java的世界里也是一样，无用即为垃圾，不过这里的垃圾全都是：对象。
什么叫无用，即没有人要用，在java里，无用即代表没有被引用，java里面操控对象全都是通过引用来进行的，For Example：Object o=new Object()，这里我们就创建了一个Object对象，并用一个引用o来引用这个对象，这样我们就可以通过o来操作这个Obejct了。
{'fraction_non_alphanumeric': 0.11804511278195488, 'fraction_numerical': 0.021052631578947368, 'mean_word_length': 6.3535911602209945, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7384083', 'n_tokens_mistral': 1030, 'n_tokens_neox': 1014, 'n_words': 63}