<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Resee_Z的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Resee_Z</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Resee_Z]]></copyright><item><title><![CDATA[OOP-Klass 模型学习笔记]]></title><link>https://blog.youkuaiyun.com/Resee_Z/article/details/107773639</link><guid>https://blog.youkuaiyun.com/Resee_Z/article/details/107773639</guid><author>Resee_Z</author><pubDate>Sat, 15 Aug 2020 22:28:54 +0800</pubDate><description><![CDATA[oop-klass
类加载器将.class文件加载进系统，将.class文件解析，生成的是什么？类的元信息在JVM中是如何存储的
InstanceClass
对象的内存结构
klass pointer
ArrayClass 数组类的元信息
Java中的数组
​		1、静态数据类型： JVM内置的八种数据类型
​		2、动态数据类型： 运行时动态生成的
class
​	java 类 （java代码）
klass
​	java类在JVM的存在形式（c++代码）
类的加载过程
加载
1、通过类的全限定名获取存储该]]></description><category></category></item><item><title><![CDATA[spring bean的生命周期回调和容器的生命周期]]></title><link>https://blog.youkuaiyun.com/Resee_Z/article/details/107828127</link><guid>https://blog.youkuaiyun.com/Resee_Z/article/details/107828127</guid><author>Resee_Z</author><pubDate>Wed, 05 Aug 2020 23:42:21 +0800</pubDate><description><![CDATA[有关Spring的生命周期回调在官网https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-factory-lifecycle有详细讲解。spring的生命周期回调分为Bean的生命周期回调和容器的生命周期回调。
1 Bean的生命周期回调
1.1 Bean的生命周期初始化回调
1.1.1 @PostConstruct注解
@Component
@Scope(Configu]]></description><category></category></item><item><title><![CDATA[Spring 单例模式bean 中引用原型模式bean的一些考虑]]></title><link>https://blog.youkuaiyun.com/Resee_Z/article/details/107746249</link><guid>https://blog.youkuaiyun.com/Resee_Z/article/details/107746249</guid><author>Resee_Z</author><pubDate>Sun, 02 Aug 2020 16:09:03 +0800</pubDate><description><![CDATA[一、bean的作用域
众所周知Spring bean的作用范围取值有五种（scope属性控制）：
singleton：单例，也是默认值
prototype:  多例，比如让Spring接管struts2的action的时候就必须配置此属性
request:  一次请求以及此次请求的转发
session： 作用范围是一次会话
globalsession:  作用范围是一次全局绘画，比如多台服务器之间需要共用同一个bean的时候就需要此属性。
二、单例的bean引用原型模式的bean
SingletonA 的代]]></description><category></category></item><item><title><![CDATA[Spring IOC、DI的概念和@Autowired注入]]></title><link>https://blog.youkuaiyun.com/Resee_Z/article/details/107735375</link><guid>https://blog.youkuaiyun.com/Resee_Z/article/details/107735375</guid><author>Resee_Z</author><pubDate>Sat, 01 Aug 2020 19:16:05 +0800</pubDate><description><![CDATA[最近看到一位大神的视频讲解Spring的IOC、Bean的注入方式。打算整理一下，分享出来。
一、 Spring的IOC、DI概念
IOC 全称 Inversion of Control 控制反转，DI 全称 dependency injection 依赖注入。
很多博客文章都在表达一个意思
IOC：把创建实例的控制权交给框架，由框架创建实例（控制反转）并把实例分发给调用的程序（依赖注入）。
DI：把代码向对象属性或实例对象注入属性值或域属性的控制权限转给Spring容器进行控制。
从上面的文字描述结合实际]]></description><category></category></item><item><title><![CDATA[第五节 netty源码分析-ChannelPipeline的addLast方法解析]]></title><link>https://blog.youkuaiyun.com/Resee_Z/article/details/106570938</link><guid>https://blog.youkuaiyun.com/Resee_Z/article/details/106570938</guid><author>Resee_Z</author><pubDate>Fri, 05 Jun 2020 15:05:05 +0800</pubDate><description><![CDATA[一、概述
在第四节中，分析了ServerBootstrap的bind()方法，主要分析了initAndRegister方法，这个方法调用的层次很深，还有几个主要的地方没有讲到，其中在initAndRegister()调用的ServerBootstrap.init()方法里面会用pipeline.addlast()方法。前面分析过new NioServerSocketChannel是默认创建DefaultChannelPipeline。所以就看io.netty.channel.DefaultChannelPi]]></description><category></category></item><item><title><![CDATA[第四节 netty源码分析-ServerBootstrap的bind方法解析]]></title><link>https://blog.youkuaiyun.com/Resee_Z/article/details/106535745</link><guid>https://blog.youkuaiyun.com/Resee_Z/article/details/106535745</guid><author>Resee_Z</author><pubDate>Thu, 04 Jun 2020 11:45:51 +0800</pubDate><description><![CDATA[一、概述
在第二、三节中，分析了NioEventLoopGroup 的构造方法，里面会生成JDK的selector，和NioEventLoop数组。ServerBootstrap 是服务端启动辅助类，里面会涉及到ServerSocketChannel的事件监听，Handler的初始化等等，这一切的入口都是有bind()方法完成的。
二、ServerBootstrap的使用
 //服务端启动类，通过这个可以设置一系列的参数
        ServerBootstrap serverBootstrap = n]]></description><category></category></item><item><title><![CDATA[JdbcDataSourceStat、MybatisSQL拼接引起老年代内存不断增加]]></title><link>https://blog.youkuaiyun.com/Resee_Z/article/details/106491348</link><guid>https://blog.youkuaiyun.com/Resee_Z/article/details/106491348</guid><author>Resee_Z</author><pubDate>Tue, 02 Jun 2020 10:48:32 +0800</pubDate><description><![CDATA[原文地址:惨遭DruidDataSource和Mybatis暗算,导致OOM
先遭DruidDataSource袭击
事发
一个平凡的工作日，我像往常一样完成产品提出的需求的业务代码，突然收到了监控平台发出的告警信息。本以为又是一些业务上的bug导致的报错，一看报错发现日志写着java.lang.OutOfMemoryError: Java heap space。
接着我远程到那台服务器上，但是卡的不行。于是我就用top命令查了一下cpu信息，占用都快要到99%了。再看看GC的日志发现程序一直在Full G]]></description><category></category></item><item><title><![CDATA[第三节 netty源码分析之NioEventLoopGroup的 newChild()方法分析]]></title><link>https://blog.youkuaiyun.com/Resee_Z/article/details/106303616</link><guid>https://blog.youkuaiyun.com/Resee_Z/article/details/106303616</guid><author>Resee_Z</author><pubDate>Tue, 26 May 2020 09:52:36 +0800</pubDate><description><![CDATA[一、概述
在第二节中，分析了NioEventLoopGroup 的构造方法，会调用到父类MultithreadEventExecutorGroup的构造方法，里面有一个很重要的方法children[i] = newChild(executor, args)，这个方法被NioEventLoopGroup重写了。这一节就分析一下newChild做了什么。
二、NioEventLoopGroup的newChild方法
   protected EventLoop newChild(Executor executo]]></description><category></category></item><item><title><![CDATA[第二节 netty源码分析之NioEventLoopGroup的构造函数分析]]></title><link>https://blog.youkuaiyun.com/Resee_Z/article/details/106228317</link><guid>https://blog.youkuaiyun.com/Resee_Z/article/details/106228317</guid><author>Resee_Z</author><pubDate>Wed, 20 May 2020 09:20:27 +0800</pubDate><description><![CDATA[一、概述
上一节中，讲了netty的基本应用。这一节主要是根据上一节的应用代码一行行的进行netty的源码分析。上一节的应用代码的main函数里面的第一行是new NioEventLoopGroup(1)，下面就分析一下NioEventLoopGroup 的构造方法。
二、NioEventLoopGroup
从类的名字翻译出来 Nio事件轮训组。讲道理的话，它跟线程组是一个意思，都是有一组线程在做同样的申请，就是轮训Channel的IO事件。
先看NioEventLoopGroup 的构造方法。
publi]]></description><category></category></item><item><title><![CDATA[第一节 netty源码分析之简单应用]]></title><link>https://blog.youkuaiyun.com/Resee_Z/article/details/106168068</link><guid>https://blog.youkuaiyun.com/Resee_Z/article/details/106168068</guid><author>Resee_Z</author><pubDate>Sun, 17 May 2020 00:23:50 +0800</pubDate><description><![CDATA[一、背景
最近在看netty相关的源码，就想整理一下，加深一下印象。
Netty 是一个 网络编程框架，对Java socket通信编码做了很多的抽象封装，开发人员使用起来非常简单。
二、netty的简单应用
服务端源码
public class DemoServer {

    public static void main(String[] args) throws InterruptedException {
        //创建 boss线程，用来监听客户端的链接，一般线程数为1,
     ]]></description><category></category></item><item><title><![CDATA[HTML_CSS学习小结]]></title><link>https://blog.youkuaiyun.com/Resee_Z/article/details/49486779</link><guid>https://blog.youkuaiyun.com/Resee_Z/article/details/49486779</guid><author>Resee_Z</author><pubDate>Thu, 29 Oct 2015 09:12:23 +0800</pubDate><description><![CDATA[CSS样式：
1、背景
background-attachment：fixed   //滚动页面时，图片固定不动
background-position  背景图定位



2、border(边框) 
border-width 边框宽度
border-style 边框样式   solid实线   dashed 虚线    dotted点线
border-color  边框颜色]]></description><category></category></item><item><title><![CDATA[微信公众平台开发之用户绑定]]></title><link>https://blog.youkuaiyun.com/Resee_Z/article/details/49420819</link><guid>https://blog.youkuaiyun.com/Resee_Z/article/details/49420819</guid><author>Resee_Z</author><pubDate>Mon, 26 Oct 2015 10:37:48 +0800</pubDate><description><![CDATA[作为一个刚毕业的大学生，一进公司就被安排到新的项目组进行微信公众平台开发。作为一个菜鸟，顿时觉得压力山大，最重要的是，公司里还没有人做个这方面，一直都只能靠自己摸索。
这篇文章只能说是我个人在做微信开发过程中的一些记录。
在微信公众平台里，每个用户对每个公众号的OpenID是唯一的，对于不同公众号，同一用户的openID不同。所以用户绑定，可以用OpenID绑定，也可以用OpenID来获取用户]]></description><category></category></item></channel></rss>