<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[沙丁鱼的博客]]></title><description><![CDATA[积少成多-目标10000小时]]></description><link>https://blog.youkuaiyun.com/asdfghj253</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; asdfghj253]]></copyright><item><title><![CDATA[session识别当前登录用户的逻辑]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/113773154</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/113773154</guid><author>asdfghj253</author><pubDate>Tue, 09 Feb 2021 17:22:47 +0800</pubDate><description><![CDATA[今天做分布式遇到的坑，模块各自独立，存储用户信息的seesion位于用户模块，其它模块调用无法直接获取当前用户信息。

原因：其它模块调用相当于还是做http请求了，也就是其它模块相当于一个新的浏览器了，这个新的浏览器没有携带Cookie信息，所以无法追踪获取相应的当前用户。

原理：之前虽然知道session是存储于服务端的，可以用来存放用户信息，获取当前登录用户的信息，但我却不知道它是如何识别是哪一个用户的。

实际上是每次登录时也就是发送请求第一次创建Session的时候，服务端会在HTTP协议中告诉]]></description><category></category></item><item><title><![CDATA[HeadFirst笔记03：装饰者模式]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/106716741</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/106716741</guid><author>asdfghj253</author><pubDate>Wed, 19 Aug 2020 14:35:47 +0800</pubDate><description><![CDATA[装饰者模式是什么？
]]></description><category></category></item><item><title><![CDATA[JAVA：Base64转File文件]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/107974106</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/107974106</guid><author>asdfghj253</author><pubDate>Thu, 13 Aug 2020 10:43:24 +0800</pubDate><description><![CDATA[这一篇是为了记录如何从数据库获取图片流的（非保存路径）


1.作为直接将图片文件存入数据库，往往会以String类型读取，因为其图片直接存入数据库保存的类型也会是text之类的类型保存。

而往往其前面会加前缀名例如：


data:application/octet-stream;base64,


所以Base64转File文件的时候需要注意去掉前缀名


                        //从数据库获取图片数据文本
                        String ba.]]></description><category></category></item><item><title><![CDATA[HeadFirst笔记02：观察者（observer）模式]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/106714019</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/106714019</guid><author>asdfghj253</author><pubDate>Fri, 12 Jun 2020 15:04:17 +0800</pubDate><description><![CDATA[观察者模式是什么？

简单来说观察者模式就是订阅思想，

举例：订牛奶

我们订了牛奶，我们就是观察者了，然后牛奶公司会推送（发送）牛奶过来。


观察者的好处在于：

1.不需要自己去获取（比如牛奶公司来送牛奶）

2.删除观察者身份时很便捷（比如通知牛奶公司取消订牛奶即可），也就是主题和观察者之间松耦合（高内聚低耦合）


所以书中的这句话就能看懂了：


观察者模式定义了对象之间的一对多依赖，这样一来，当一个对象改变状态时，它的所有依赖者都会收到通知并自动更新。






具体事例代码（订牛...]]></description><category></category></item><item><title><![CDATA[深入理解jvm学习笔记06:虚拟机执行子系统之类文件结构（上）]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/106497981</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/106497981</guid><author>asdfghj253</author><pubDate>Thu, 04 Jun 2020 14:50:17 +0800</pubDate><description><![CDATA[1.概述

1
]]></description><category></category></item><item><title><![CDATA[C# 时间比较之现在和某时间的相差天数]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/106525630</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/106525630</guid><author>asdfghj253</author><pubDate>Wed, 03 Jun 2020 15:43:48 +0800</pubDate><description><![CDATA[最近在做.net（真要变成全栈的了），偶尔记录一个小知识点，c#的时间比较



//获取DateTime对象
DateTime getDate = DateTime.Parse("2019-11-01");//随意，其实我这里是获取数据库数据的
DateTime now = DateTime.Now;
//转变成TimeSpan类型
TimeSpan getTS = new TimeSpan(getDate.Ticks);
TimeSpan NowTS = new TimeSpan(now.Ticks).]]></description><category></category></item><item><title><![CDATA[深入理解jvm学习笔记05:自动内存管理机制之虚拟机性能监控与故障处理工具]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/106426500</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/106426500</guid><author>asdfghj253</author><pubDate>Tue, 02 Jun 2020 15:48:52 +0800</pubDate><description><![CDATA[1.概述

这一章主要讲的是实践虚拟机内存
]]></description><category></category></item><item><title><![CDATA[深入理解jvm学习笔记04:自动内存管理机制之GC与内存分配策略（完结）]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/106420678</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/106420678</guid><author>asdfghj253</author><pubDate>Fri, 29 May 2020 15:28:33 +0800</pubDate><description><![CDATA[6. 内存分配及回收策略

对象的内存分配实质上就是堆上分配，对象主要分配在新生代Eden区上，少数在老年代中。



6.1对象优先在Eden分配
]]></description><category></category></item><item><title><![CDATA[HeadFirst笔记01：策略模式]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/105769775</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/105769775</guid><author>asdfghj253</author><pubDate>Wed, 29 Apr 2020 15:37:21 +0800</pubDate><description><![CDATA[策略模式是什么？

策略模式我个人认为就像打仗，诸葛亮军师在旁边。

诸葛亮有很多种锦囊妙计提供，暂时分为3类：天时、地形、人民三方面。

而由于是紧急措施，每一个方面只能采用一个方法，作为我的最终方案。

比如：天时有下雨、晴朗、阴天，地形有草原、山地、梯田，人民有威胁、怀柔。

3类方面就相当于3个接口，而3类下的具体事件都是(实现)implement 这三个接口。

诸葛亮就相当于一个父类，...]]></description><category></category></item><item><title><![CDATA[深入理解jvm学习笔记03:自动内存管理机制之GC与内存分配策略（下）]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/104984011</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/104984011</guid><author>asdfghj253</author><pubDate>Tue, 28 Apr 2020 15:01:13 +0800</pubDate><description><![CDATA[5. 垃圾收集器

这里讨论HotSpot虚拟机所拥有的收集器。

5.1 Serial收集器

Serial收集器是最基本、发展历史最悠久的收集器。该收集器是一个单线程收集器（进行GC时必须暂停其它所有的工作线程，知道GC结束）。

相比其它收集器：它简单高效，因为单线程无线程交互的开销，而属于单线程收集效率最高的。

时间在几十毫秒到一百多毫秒之间，很适合Clinet模式下的虚拟机。



...]]></description><category></category></item><item><title><![CDATA[第二章：从零配置之Tomcat的安装与配置]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/105674516</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/105674516</guid><author>asdfghj253</author><pubDate>Wed, 22 Apr 2020 10:01:18 +0800</pubDate><description><![CDATA[1.Tomcat的安装

Tomcat的下载官网：Http://tomcat.apache.org/



DownLoad处选择tomcat版本下载，里面有很多方式下载，这里选择最常用的一种



下载完成后，解压即可。到此，tomcat的安装完成



2.Tomcat的配置

这里的配置我分2部分讲，一部分是本地环境变量的配置，一部分是IDEA的tomcat配置

2.1环境变量配置

...]]></description><category></category></item><item><title><![CDATA[第一章：从零配置之jdk的安装与配置]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/105532948</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/105532948</guid><author>asdfghj253</author><pubDate>Tue, 21 Apr 2020 15:56:43 +0800</pubDate><description><![CDATA[JDK算是最基础的
]]></description><category></category></item><item><title><![CDATA[Springboot知识点的查漏补缺1：maven中的<scope>标签]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/104473511</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/104473511</guid><author>asdfghj253</author><pubDate>Tue, 21 Apr 2020 15:47:24 +0800</pubDate><description><![CDATA[转载的大佬地址：

https://blog.youkuaiyun.com/cd18333612683/article/details/66478332


Scope标签简要来说就是作用范围。


scope的分类


1.compile：默认值 表示被依赖项目需要参与当前项目的编译，还有后续的测试，运行周期也参与其中，是一个比较强的依赖。打包的时候通常需要包含进去

2.test：依赖项目仅仅参与测试相关...]]></description><category></category></item><item><title><![CDATA[深入理解jvm学习笔记02:自动内存管理机制之GC与内存分配策略（上）]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/104938839</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/104938839</guid><author>asdfghj253</author><pubDate>Fri, 20 Mar 2020 10:10:12 +0800</pubDate><description><![CDATA[1.概述

垃圾收集（Garbage Collection,GC）其实年代比java久远。
]]></description><category></category></item><item><title><![CDATA[Git之创建Github分支]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/104969402</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/104969402</guid><author>asdfghj253</author><pubDate>Thu, 19 Mar 2020 16:05:53 +0800</pubDate><description><![CDATA[这里讲讲上传文件后我创建分支的故事。

之前有写过简单的github上传，这里是继续在那个仓库上做个分支上传其它文件。

步骤也很简单：

1.在git上创建分支

首先还是继续对着文件夹右键，选择Git Bash Here

其次还是使用$ git init 命令将文件夹转化为git仓库

然后在弹出来的Git 命令窗口上继续写创建分支的命令


$ git branch first



...]]></description><category></category></item><item><title><![CDATA[深入理解jvm学习笔记01:自动内存管理机制之java内存区域与内存溢出异常]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/104891312</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/104891312</guid><author>asdfghj253</author><pubDate>Wed, 18 Mar 2020 10:22:36 +0800</pubDate><description><![CDATA[第一章主要讲java发展时，jvm发展史，这里就跳过了

1.java内存区域与内存溢出异常概述

由于java的虚拟机自动内存管理机制，所以我们大部分情况下不会出现内存泄露和内存溢出的问题，但一旦出现，还是的有排查异常解决问题的能力，这里就需要理解虚拟机是怎么使用内存的。

这一章主要讲的是jvm内存的各个区域和其作用、服务对象、和可能产生的问题。



2.运行时数据区域



上图是jvm...]]></description><category></category></item><item><title><![CDATA[EffectiveJava学习笔记33：序列化（上） 其它方法优先于java序列化+谨慎地实现Serializable接口+自定义的序列化形式]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/104842844</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/104842844</guid><author>asdfghj253</author><pubDate>Sat, 14 Mar 2020 14:36:33 +0800</pubDate><description><![CDATA[1.其它方法优先于java序列化
]]></description><category></category></item><item><title><![CDATA[EffectiveJava学习笔记32：并发（下）-慎用延迟初始化、不要依赖于线程调度器]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/104839711</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/104839711</guid><author>asdfghj253</author><pubDate>Fri, 13 Mar 2020 15:53:58 +0800</pubDate><description><![CDATA[1.慎用延迟初始化


]]></description><category></category></item><item><title><![CDATA[EffectiveJava学习笔记31：并发（中）-多种方式优先于线程、并发工具优先于wait和notify、线程安全性的文档化]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/103782574</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/103782574</guid><author>asdfghj253</author><pubDate>Fri, 13 Mar 2020 13:54:47 +0800</pubDate><description><![CDATA[1.executor、task、stream优先于线程



1.1 什么是executor?

Executor Framework是java平台一个包（java.util.concurrent）的内容.

它是一个很灵活的基于接口的任务执行工具。而使用executor框架，能有效建立线程池，由线程池集中管理线程，以实现线程的降耗提速。


...]]></description><category></category></item><item><title><![CDATA[Thinking in java学习笔记21：第二十一章（并发-完结）]]></title><link>https://blog.youkuaiyun.com/asdfghj253/article/details/104800159</link><guid>https://blog.youkuaiyun.com/asdfghj253/article/details/104800159</guid><author>asdfghj253</author><pubDate>Fri, 13 Mar 2020 10:35:31 +0800</pubDate><description><![CDATA[并发下面的一章是仿真，也就是模拟真实场景的一些案例，这里我就不说了

继续再另外一章

9.性能调优


]]></description><category></category></item></channel></rss>