<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hasagei_ly的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hasagei_ly</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hasagei_ly]]></copyright><item><title><![CDATA[JVM+调优（整合拉勾、图灵等课程）]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/139674306</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/139674306</guid><author>hasagei_ly</author><pubDate>Fri, 14 Jun 2024 10:13:49 +0800</pubDate><description><![CDATA[图方便对于JVM级缓存就简单使用一个hashmap，但是很少考虑这个map的容量问题，结果这个缓存map越来越大，一直占用着老年代的很多空间，时间长了就会导致full gc非常频繁。这就是一种内存泄漏，一些老旧数据没有及时清理导致一直占用着宝贵的内存资源，时间长了除了导致full gc，还有可能导致OOM。​ 这种情况完全可以考虑采用一些成熟的JVM级缓存框架来解决，比如ehcache等自带一些LRU数据淘汰算法的框架来作为JVM级的缓存。]]></description><category></category></item><item><title><![CDATA[spring中bean的装配]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/88242958</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/88242958</guid><author>hasagei_ly</author><pubDate>Wed, 06 Mar 2019 16:56:19 +0800</pubDate><description><![CDATA[依赖注入有三种：setter注入；构造器注入；接口注入(基本不用)。其中setter注入应用最广泛。

为Bean中的属性设置值（强行解释）

Bean的装配也有三种：XML中显示配置；在Java的接口和类中实现配置；隐式Bean的发现机制和自动装配原则

声明这个Bean，并把它放在容器里（强行解释）

xml中代码如下：

&amp;lt;bean id=&quot;user&quot; class=&quot;com.lili....]]></description><category></category></item><item><title><![CDATA[JDK1.7中HashMap何时扩容]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/83781311</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/83781311</guid><author>hasagei_ly</author><pubDate>Tue, 06 Nov 2018 09:49:49 +0800</pubDate><description><![CDATA[深入理解HashMap的扩容机制

——转载： http://www.cnblogs.com/yanzige/p/8392142.html

一、什么时候扩容：

网上总结的会有很多，但大多都总结的不够完整或者不够准确。大多数可能值说了满足我下面条件一的情况。

扩容必须满足两个条件：

1、 存放新值的时候当前已有元素的个数必须大于等于阈值

2、 存放新值的时候当前存放数据发生hash碰撞（当...]]></description><category></category></item><item><title><![CDATA[设计模式之六大原则]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/83269374</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/83269374</guid><author>hasagei_ly</author><pubDate>Mon, 22 Oct 2018 10:32:10 +0800</pubDate><description><![CDATA[单一职责原则

单一职责原则(Single Responsibility Principle, SRP)的定义是: 应该有且仅有一个原因引起类或接口的变更。即一个类或接口只负责一个功能领域中的相应职责。

单一职责原则提出了一个编写程序的标准, 它使类的复杂性降低、提高了代码的可读性、可维护性和可扩展性、并降低了类或接口变更而引起的风险。但在实际项目中, 我们通常对&quot;职责&quot;没有一个量化的标准, 比...]]></description><category></category></item><item><title><![CDATA[依赖注入与Bean的装配]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/82899684</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/82899684</guid><author>hasagei_ly</author><pubDate>Sat, 29 Sep 2018 16:45:41 +0800</pubDate><description><![CDATA[依赖注入有三种：setter注入；构造器注入；接口注入(基本不用)。其中setter注入应用最广泛。

即为Bean中的属性设置值（强行解释）

 

Bean的装配也有三种：XML中显示配置；在Java的接口和类中实现配置；隐式Bean的发现机制和自动装配原则

即声明这个Bean，并把它放在容器里（强行解释）

（强行解释）在xml中代码如下：


&amp;lt;bean id=&quot;user&quot; cla...]]></description><category></category></item><item><title><![CDATA[eclipse启动项目报出jvm内存溢出异常原因：java.lang.OutOfMemoryError: Java heap space]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/81454563</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/81454563</guid><author>hasagei_ly</author><pubDate>Mon, 06 Aug 2018 15:07:10 +0800</pubDate><description><![CDATA[Java.lang.OutOfMemoryError: Java heap space 
===================================================

使用Java程序从数据库中查询大量的数据时出现异常:
java.lang.OutOfMemoryError: Java heap space


在JVM中如果98％的时间是用于GC且可用的 Heap s...]]></description><category></category></item><item><title><![CDATA[MVC表现模式和三层架构模式理解]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/81221589</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/81221589</guid><author>hasagei_ly</author><pubDate>Thu, 26 Jul 2018 15:51:03 +0800</pubDate><description><![CDATA[本文转载而来，讲的不错，17年3月份刚接触MVC时还不能完全看懂。

原地址：https://www.cnblogs.com/yourshj/p/5197310.html

之前总是混淆MVC表现模式和三层架构模式，为此记录下。

三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层) 三层架构(3-tier application) 通常意义上的三层架构就是...]]></description><category></category></item><item><title><![CDATA[POI导入导出中手机号自动转换为科学记数法]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/81068176</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/81068176</guid><author>hasagei_ly</author><pubDate>Mon, 16 Jul 2018 17:47:39 +0800</pubDate><description><![CDATA[问题：使用HSSFWorkbook操作Excel2003版本Excle文件时，数字过长在读入写出都会自动转换为科学计数法，如手机号13874185296会变成1.3874185296E10。

     首次接触该问题，是导出。查询出数据，List&amp;lt;User&amp;gt; users先转换成ArrayList&amp;lt;Map&amp;lt;String,String&amp;gt;&amp;gt;，再通过工具类转换成Exc...]]></description><category></category></item><item><title><![CDATA[2018年中感悟]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/81060610</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/81060610</guid><author>hasagei_ly</author><pubDate>Mon, 16 Jul 2018 11:33:51 +0800</pubDate><description><![CDATA[      说好的两周一篇，最近的发表的一篇却也是5.8号了。再唠叨一句，坚持一件事很难。      先说工作上的事吧。工作忙，迭代需求安排紧，测试提的BUG多，其实大部分都是自己开发经验不够丰富，在开发时对业务了解模模糊糊，只能简单的实现功能，代码不够健全。路是一步一步走的，现在至少开发经验相比之前进步很多，阅读代码能力也有提高，但耐心不够。业务需求上呢在开发前也要想方设法的去了解透彻。    ...]]></description><category></category></item><item><title><![CDATA[Java中异常]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/80241053</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/80241053</guid><author>hasagei_ly</author><pubDate>Tue, 08 May 2018 15:56:52 +0800</pubDate><description><![CDATA[为什么Java在执行parseInt()方法时没有强制要求使用try-catch处理异常？因为 在Integer类中parseInt声明如下：public static int parseInt(String s) throws NumberFormatException 。意味着该方法可能会抛出NumberFormatException异常。而NumberFormatException 是Run...]]></description><category></category></item><item><title><![CDATA[关于回调函数的理解]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/80163155</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/80163155</guid><author>hasagei_ly</author><pubDate>Wed, 02 May 2018 11:03:50 +0800</pubDate><description><![CDATA[由于编程方便基本功很不扎实，对于回调的理解一直都是马马虎虎，遂将各方面关于回掉的整理一下，以供学习。JS回调理解一. 回调函数的作用js代码会至上而下一条线执行下去，但是有时候我们需要等到一个操作结束之后再进行下一个操作，这时候就需要用到回调函数。二. 回调函数的解释因为函数实际上是一种对象，它可以存储在变量中，通过参数传递给另一个函数，在函数内部创建，从函数中返回结果值”，因为函数是内置对象，我...]]></description><category></category></item><item><title><![CDATA[jsonp]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/80135447</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/80135447</guid><author>hasagei_ly</author><pubDate>Sat, 28 Apr 2018 15:22:35 +0800</pubDate><description><![CDATA[jsonp跨域原理

在项目中遇到一个jsonp跨域的问题，于是仔细的研究了一番jsonp跨域的原理。搞明白了一些以前不是很懂的地方，比如：
1）jsonp跨域只能是get请求，而不能是post请求；
2）jsonp跨域的原理到底是什么；
3）除了jsonp跨域之外还有那些方法绕过“同源策略”，实现跨域访问；
4）jsonp和ajax，或者说jsonp和XMLHttpRequest是什]]></description><category></category></item><item><title><![CDATA[JS递归实现反转数组字符串]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/80019886</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/80019886</guid><author>hasagei_ly</author><pubDate>Fri, 20 Apr 2018 16:07:28 +0800</pubDate><description><![CDATA[直接先上代码，通过标题就可以看到是个很基础的demo。
 
 
 
 
每天一个JavaScript实例-递归实现反转数组字符串 
 
var func = function(x,indx,str){ 
  return indx == 0 ? str : func(x,--indx,(str +=" " + x[indx]));; 
  } 
var arr = new Array("appl]]></description><category></category></item><item><title><![CDATA[项目打包，发布]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/79625116</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/79625116</guid><author>hasagei_ly</author><pubDate>Tue, 20 Mar 2018 14:22:01 +0800</pubDate><description><![CDATA[有三种部署方式



直接在eclipse里导出 war包,将后将这个包丢到tomcat的webapps目录下即可


直接打开源代码目录,将webRoot目录复制到磁盘任意一个地方

然后在tomcat中的conf目录中，在server.xml中的，节点中添加：   即可


创建一个xml文件内容为:

 将这个文件丢到Tomcat的conf\catalina\lo]]></description><category></category></item><item><title><![CDATA[x++ 和 ++x]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/78854179</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/78854179</guid><author>hasagei_ly</author><pubDate>Wed, 20 Dec 2017 15:56:09 +0800</pubDate><description><![CDATA[int x=0
int y=++x + x++ + x++
先计算++x，则变为int y=1 + x++ + x++，此时x=1；再计算x++，因为是先使用x再进行自增运算，所以变为int y=1 + 1 + x++，此时x为2；继续计算x++，同理，先使用x再进行自增运算，所以变为int y=1 + 1 + 2，此时进行x自增运算，x为3。

即x++是先赋值后加1，++x是先加1然后]]></description><category></category></item><item><title><![CDATA[springmvc的接参与传参]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/78609695</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/78609695</guid><author>hasagei_ly</author><pubDate>Thu, 23 Nov 2017 00:19:51 +0800</pubDate><description><![CDATA[向传参：这里指从服务端传向jsp
服务端将参数设置在model或session里，然后跳转页面。页面接受参数时，直接使用EL表达式。
如：服务端 
string lili = "haha"
model.setAttribute("lili",lili); jsp页面

向服务端传参：指jsp页面向controller传参
springmvc自定义的参数解析器，可以将页面传来的参数赋值到]]></description><category></category></item><item><title><![CDATA[Javaweb中的cookie与session]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/78609296</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/78609296</guid><author>hasagei_ly</author><pubDate>Wed, 22 Nov 2017 23:07:21 +0800</pubDate><description><![CDATA[一、cookie

1.cookie机制采用的是在客户端保持 HTTP 状态信息的方案 
Cookie是在浏览器访问WEB服务器的某个资源时，由WEB服务器在HTTP响应消息头中附带传送给浏览器的一个小文本文件。 
一旦WEB浏览器保存了某个Cookie，那么它在以后每次访问该WEB服务器时，都会在HTTP请求头中将这个Cookie回传给WEB服务器。
底层的实现原理： WEB服务器通过]]></description><category></category></item><item><title><![CDATA[如何将数据库中表转化到redis中]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/78605660</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/78605660</guid><author>hasagei_ly</author><pubDate>Wed, 22 Nov 2017 17:16:24 +0800</pubDate><description><![CDATA[如何将数据库中表转化到redis中
方法一：使用string
数据库中user表一条记录：  id username pwd
      3      lili
   123
set user:3:id 3;
set user:3:username lili;
set user:3:pwd 123;
方法二：使用hash，表数据同上
hset user1 id 3;
hset]]></description><category></category></item><item><title><![CDATA[Hibernate的OID，对象状态，save()，saveOrUpdate()，get()和load()]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/78582752</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/78582752</guid><author>hasagei_ly</author><pubDate>Mon, 20 Nov 2017 15:38:08 +0800</pubDate><description><![CDATA[Hibernate中java对象的三种状态：


瞬时态(Transient)、 持久态(Persistent)、脱管态(Detached)或游离态。处于持久态的对象也称为PO(Persistence Object)，瞬时对象和脱管对象也称为VO（Value Object）。         瞬时态          由new命令开辟内存空间的java对象，          eg. Per]]></description><category></category></item><item><title><![CDATA[nginx反向代理]]></title><link>https://blog.youkuaiyun.com/hasagei_ly/article/details/78512780</link><guid>https://blog.youkuaiyun.com/hasagei_ly/article/details/78512780</guid><author>hasagei_ly</author><pubDate>Sun, 12 Nov 2017 16:47:25 +0800</pubDate><description><![CDATA[我们常说的代理是正向代理。使用正向代理的过程如下：
1，客户端连接代理。
2，代理连接服务器。
3，服务器将结果发给代理。
4，代理将结果发给客户端。
反向代理的过程如下：
1，客户端连接服务器，其实连接的是反向代理服务器，但是客户端不知道。
2，反向代理将请求转发给相应的服务器。
3，服务器将结果发给反向代理。
4，方向代理将结果发给客户端。
流程基本一样，主要是反向代理是和]]></description><category></category></item></channel></rss>