<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Amonmei的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Amonmei</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Amonmei]]></copyright><item><title><![CDATA[mybatis入门]]></title><link>https://blog.youkuaiyun.com/Amonmei/article/details/129629738</link><guid>https://blog.youkuaiyun.com/Amonmei/article/details/129629738</guid><author>Amonmei</author><pubDate>Sat, 18 Mar 2023 22:18:41 +0800</pubDate><description><![CDATA[体系结构工作原理：配置mybatis.xml:mybatis.xml的改进：配置mapper.xml：增加student和dao：Impl实现功能(先增加一个配置工具类)：Impl实现功能：test测试：源码分析。]]></description><category></category></item><item><title><![CDATA[Netty入门]]></title><link>https://blog.youkuaiyun.com/Amonmei/article/details/120199337</link><guid>https://blog.youkuaiyun.com/Amonmei/article/details/120199337</guid><author>Amonmei</author><pubDate>Thu, 09 Sep 2021 13:26:05 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[垃圾回收器]]></title><link>https://blog.youkuaiyun.com/Amonmei/article/details/119979185</link><guid>https://blog.youkuaiyun.com/Amonmei/article/details/119979185</guid><author>Amonmei</author><pubDate>Tue, 31 Aug 2021 18:33:35 +0800</pubDate><description><![CDATA[https://youthlql.gitee.io/post/4d401a8b.html
]]></description><category></category></item><item><title><![CDATA[垃圾回收器]]></title><link>https://blog.youkuaiyun.com/Amonmei/article/details/119392872</link><guid>https://blog.youkuaiyun.com/Amonmei/article/details/119392872</guid><author>Amonmei</author><pubDate>Thu, 05 Aug 2021 12:43:15 +0800</pubDate><description><![CDATA[垃圾回收算法：



垃圾标记阶段：主要是为了判断对象是否存活。

            一般有两种方式：引用计数算法和可达性分析算法。
]]></description><category></category></item><item><title><![CDATA[StringTable（字符串常量池）]]></title><link>https://blog.youkuaiyun.com/Amonmei/article/details/119391993</link><guid>https://blog.youkuaiyun.com/Amonmei/article/details/119391993</guid><author>Amonmei</author><pubDate>Wed, 04 Aug 2021 20:41:30 +0800</pubDate><description><![CDATA[注意点：

    ①String被final修饰，不可被继承，是不可变的字符序列

    ②String在jdk8及以前内部定义了final char value[]用于存储字符串数据。JDK9时改为byte[]

    ③字符串常量池是不会存储相同内容的字符串的

    ④jdk7前在永久代的运行时常量池中，jdk7及之后在堆中

字符串的拼接：

1、常量与常量的拼接结果在常量池，原理是编译期优化

“a” + “b” + “c” 优化成了 “a...]]></description><category></category></item><item><title><![CDATA[运行时数据区（方法区）]]></title><link>https://blog.youkuaiyun.com/Amonmei/article/details/119389149</link><guid>https://blog.youkuaiyun.com/Amonmei/article/details/119389149</guid><author>Amonmei</author><pubDate>Wed, 04 Aug 2021 17:54:19 +0800</pubDate><description><![CDATA[方法区主要存放的是 Class，而堆中主要存放的是实例化的对象

元空间与永久代最大的区别在于：元空间不在虚拟机设置的内存中，而是使用本地内存。我们可以将方法区类比为Java中的接口，将永久代或元空间类比为Java中具体的实现类
...]]></description><category></category></item><item><title><![CDATA[运行时数据区（堆）]]></title><link>https://blog.youkuaiyun.com/Amonmei/article/details/119384106</link><guid>https://blog.youkuaiyun.com/Amonmei/article/details/119384106</guid><author>Amonmei</author><pubDate>Wed, 04 Aug 2021 17:12:35 +0800</pubDate><description><![CDATA[注意点：

1.所有的对象实例以及数组都应当在运行时分配在堆上。

2.“几乎”所有的对象实例都在堆分配内存。还有一些对象是在栈上分配的（逃逸分析，标量替换）

3.是GC（Garbage Collection，垃圾收集器）执行垃圾回收的重点区域。

    4.几乎所有的Java对象都是在Eden区被new出来的，绝大部分的Java对象的销毁都在新生代进行了

    5.JVM为每个线程分配了一个私有缓存区域，它包含在Eden空间内。


...]]></description><category></category></item><item><title><![CDATA[运行时数据区（虚拟机栈）]]></title><link>https://blog.youkuaiyun.com/Amonmei/article/details/119348610</link><guid>https://blog.youkuaiyun.com/Amonmei/article/details/119348610</guid><author>Amonmei</author><pubDate>Tue, 03 Aug 2021 15:41:44 +0800</pubDate><description><![CDATA[虚拟机栈：

它保存方法的局部变量（8 种基本数据类型、对象的引用地址）、部分结果，并参与方法的调用和返回。

栈是运行时的单位，而堆是存储的单位。

每个线程对应着一个虚拟机栈，对应着一个个的栈帧，对应着一次次的Java方法调用

   栈只有进栈和出栈两种操作，不需要GC，但是可能存在OOM（不存在垃圾回收问题）


...]]></description><category></category></item><item><title><![CDATA[运行时数据区（PC寄存器、本地方法栈）]]></title><link>https://blog.youkuaiyun.com/Amonmei/article/details/119347833</link><guid>https://blog.youkuaiyun.com/Amonmei/article/details/119347833</guid><author>Amonmei</author><pubDate>Tue, 03 Aug 2021 13:28:42 +0800</pubDate><description><![CDATA[PC寄存器：

存储指向下一条指令的地址。唯一一个在Java虚拟机规范中没有规定任何OutofMemoryError情况的区域。

使用PC寄存器的作用：

    1.恢复该线程上次中断执行的位置

    2.明确下一条执行哪条指令

PC寄存器被设定为私有的原因：

    CPU在不停地做任务切换，为了记录各个线程正在执行的字节码指令且之间不发生相互干扰。

本地方法栈：

Java虚拟机栈于管理Java方法的调用，而本地方法栈用于管理本地方法的调用。
...]]></description><category></category></item><item><title><![CDATA[类加载子系统]]></title><link>https://blog.youkuaiyun.com/Amonmei/article/details/119345653</link><guid>https://blog.youkuaiyun.com/Amonmei/article/details/119345653</guid><author>Amonmei</author><pubDate>Tue, 03 Aug 2021 11:37:35 +0800</pubDate><description><![CDATA[一、概述

加载阶段：在内存中生成一个代表这个类的java.lang.Class对象

链接阶段：①验证：字节流信息符合虚拟机要求

         ②准备：为（类变量）static变量分配内存并设零值。

注意：这里不会为实例变量分配初始化，类变量会分配在方法区中，而实例变量是会随着对象一起分配到Java堆中

         ③解析：将常量池内的符号引用转换为直接引用的过程

初始化阶段：执行类构造器方法&lt;clini...]]></description><category></category></item><item><title><![CDATA[JVM和Java体系架构]]></title><link>https://blog.youkuaiyun.com/Amonmei/article/details/119345184</link><guid>https://blog.youkuaiyun.com/Amonmei/article/details/119345184</guid><author>Amonmei</author><pubDate>Tue, 03 Aug 2021 10:57:41 +0800</pubDate><description><![CDATA[Java虚拟机：

一次编译，到处运行
	自动内存管理
	自动垃圾回收功能
JVM的架构模型：

一种基于栈的指令集架构，栈的优点：跨平台，指令集小，编译器容易实现，缺点是性能比寄存器差一些

一种是基于寄存器的指令集架构。

JVM的生命周期：

虚拟机的启动：通过引导类加载器（bootstrap class loader）创建一个初始类（initial class）来完成的。

虚拟机的执行：执行一个所谓的Java程序的时候，真真正正在执行的是一个叫做Java虚拟机的进程...]]></description><category></category></item><item><title><![CDATA[计算机网络]]></title><link>https://blog.youkuaiyun.com/Amonmei/article/details/119332583</link><guid>https://blog.youkuaiyun.com/Amonmei/article/details/119332583</guid><author>Amonmei</author><pubDate>Mon, 02 Aug 2021 21:48:16 +0800</pubDate><description><![CDATA[请求的流程：

浏览器查询 DNS---&gt;获取域名对应的 IP 地址---&gt;浏览器请求建立链接---&gt;发送HTTP请求---&gt;服务端处理并返回请求---&gt;浏览器渲染页面---&gt;连接结束



一、五层网络协议体系结构

①应用层：通过应用进程间的交互来完成特定网络应用。

协议：HTTP(超文本传输协议)、DNS(域名解析)、SSH(安全外壳协议)、SMTP、FTP等



②传输层：向两台主机进程之间的通信...]]></description><category></category></item><item><title><![CDATA[环境变量&java常识]]></title><link>https://blog.youkuaiyun.com/Amonmei/article/details/105674632</link><guid>https://blog.youkuaiyun.com/Amonmei/article/details/105674632</guid><author>Amonmei</author><pubDate>Sun, 07 Jun 2020 18:00:01 +0800</pubDate><description><![CDATA[一.Hello World解释程序
 /* public：表公开
  class：定义了一个类
  HelloWorld：一个类名
  */
 public class HelloWorld｛表示定义了一个公开的类，叫做Hello World
  /* public：公开的
   void：空
   static：静态
   main：方法名为main
  （String[ ] args）:mai...]]></description><category></category></item><item><title><![CDATA[链表样例]]></title><link>https://blog.youkuaiyun.com/Amonmei/article/details/103447622</link><guid>https://blog.youkuaiyun.com/Amonmei/article/details/103447622</guid><author>Amonmei</author><pubDate>Mon, 09 Dec 2019 00:46:47 +0800</pubDate><description><![CDATA[一 . 链表的创建
1）链表是由结点构建而成，结点中既包含数据域，也包含指针域，指针域涵盖的是下一个结点数据域的地址。
2）用结构体的方式创建结点，再多次利用结构体创建链表函数，主函数进行调用。
例如：
#include&lt;stdio.h&gt;
#include&lt;stdlib.h&gt;
#define N sizeof(struct stud)
struct stud
{
 long...]]></description><category></category></item><item><title><![CDATA[指针及样例]]></title><link>https://blog.youkuaiyun.com/Amonmei/article/details/103300983</link><guid>https://blog.youkuaiyun.com/Amonmei/article/details/103300983</guid><author>Amonmei</author><pubDate>Sun, 01 Dec 2019 22:07:39 +0800</pubDate><description><![CDATA[一 . 指针
1.


指针含有存储位置和存储类型两个概念，有一个指针常量“NULL”称为空指针。
故定义格式：基类型名  *指针变量名【=&amp;变量名]；而且‘ * ’的结合方式为从右到左。


注意：不可以用整数或其他非地址量作为地址值给指针变量赋初值，且如果没有给下指针变量赋初值，则系统默认为“空指针”（即地址字节值为0）。


2 .例：float *p=&amp;d；
则 *p是变量...]]></description><category></category></item><item><title><![CDATA[函数，结构体与共用体]]></title><link>https://blog.youkuaiyun.com/Amonmei/article/details/103209137</link><guid>https://blog.youkuaiyun.com/Amonmei/article/details/103209137</guid><author>Amonmei</author><pubDate>Sun, 24 Nov 2019 16:46:26 +0800</pubDate><description><![CDATA[一 . 函数


函数格式：
返回类型 函数名（参数列表）
{ 
说明语句；
执行语句；
（返回值：return 表达式或者参数实现数据传递）
}


程序执行过程：
1）先执行main函数。
2）若main函数调用了其它函数，则开始执行该调用函数中的代码，执行完之后返回main函数。
3）继续执行main函数，main函数执行结束，则程序完成。
注：程序中的函数相互独立，且可以相互调用，但mai...]]></description><category></category></item></channel></rss>