<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Anjihua的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Anjihua</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Anjihua]]></copyright><item><title><![CDATA[Spring框架的bean细节(创建方式，作用范围和生命周期)]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/109253394</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/109253394</guid><author>Anjihua</author><pubDate>Sat, 24 Oct 2020 08:25:06 +0800</pubDate><description><![CDATA[在使用spring框架的时候，对bean有许多重要信息：
三种创建bean的方式：

使用类的默认构造函数
使用工厂类里面的方法来创建对象
使用工厂类的静态方法创建对象

//这种最常用的就是使用默认构造函数来创建的
&lt;bean id="service" class="service.impl.userServiceImpl"&gt;&lt;/bean&gt;

//这种就是第二种方法，要先获取到工厂类的实例，在使用两个属性来定向指向对应的工厂和方法
&lt;bean id="factory" cla]]></description><category></category></item><item><title><![CDATA[面经--恒生测开一面]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/108750739</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/108750739</guid><author>Anjihua</author><pubDate>Wed, 23 Sep 2020 13:14:23 +0800</pubDate><description><![CDATA[恒生效率挺高的，前两天才闪面，就直接安排面试了
但是是排队面试，跟预期面试时间差别有点大，感觉有点像综合面，面了25分钟。
自我介绍
为啥离职了​
前东家咋样
职业规划
优点
缺点
最困难的事情
最成功的事情
sleep()和wait()的区别
如何删除数据库表
delete和truncate区别
测试流程
反问

...]]></description><category></category></item><item><title><![CDATA[comparator和comparable的区别]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/108483280</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/108483280</guid><author>Anjihua</author><pubDate>Wed, 09 Sep 2020 09:59:41 +0800</pubDate><description><![CDATA[comparator和comparable都是用来自定义比较方式的；
下面详细说一下：
comparable接口是属于java.lang包下的，要重写一个compareTo(Object obj)方法来进行比较；compareTo方法里面只有一个参数，很明显是用自己本身this和obj来进行比较。
comparator接口是属于java.util包下的，要重写compare(Object obj1,Object obj2)方法进行比较，compare里面有两个参数，是对传入的两个参数进行比较。

...]]></description><category></category></item><item><title><![CDATA[String对象详解(附带源码)]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/108399102</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/108399102</guid><author>Anjihua</author><pubDate>Fri, 04 Sep 2020 10:47:54 +0800</pubDate><description><![CDATA[String为什么不可变？
因为String对象内部维护了一个final的char数组，当new 一个String对象的时候，会将字符串分割维护为char数组，所以要是更改的话就需要改变char数组，但是char数组是final的，不可改变的，所以不能改变String值。
String的equals方法：
equals方法源码：
	private final char value[];			//value是String维护的char数组
	public boolean equals(Object anObj]]></description><category></category></item><item><title><![CDATA[二叉树后序遍历(递归和非递归)]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/108089137</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/108089137</guid><author>Anjihua</author><pubDate>Tue, 18 Aug 2020 22:17:16 +0800</pubDate><description><![CDATA[//后序遍历二叉树
public class AfterFind {
	public void Digui(Node root) {  //后序遍历  递归
        if (root.getLeftNode() != null) {  
        	Digui(root.getLeftNode());  
        }  
        if(root.getRightNode() != null) {  
        	Digui(root.getRightNode());  
]]></description><category></category></item><item><title><![CDATA[面经--网易互娱游戏测开二面]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/108083093</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/108083093</guid><author>Anjihua</author><pubDate>Tue, 18 Aug 2020 17:33:20 +0800</pubDate><description><![CDATA[全程还是50分钟，疯狂问题目，我已经懵逼了。
自我介绍
实习介绍
为什么选择游戏测试开发岗位。
压测登录页面：压测报告有张图：横坐标时间，纵坐标成功登录人数，从0,0在第一象限下斜上方一条斜线，可以得到哪些结论。
算法：二叉树后序遍历非递归
一个盐罐，一个糖罐，同样体积，盐罐取出1/13放入糖罐，糖罐摇晃均匀，再在糖罐取1/13放入盐罐(取完后剩余1)，问盐罐的糖多还是糖罐的盐多？
交换机和路由器
路由器和家里面买的路由器区别
最喜欢的课程
最不喜欢的课程
如何在linux下面建立一个进程
有什么要一直坚持]]></description><category></category></item><item><title><![CDATA[面经--网易互娱游戏测开一面]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/108000563</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/108000563</guid><author>Anjihua</author><pubDate>Fri, 14 Aug 2020 11:12:40 +0800</pubDate><description><![CDATA[全程总共50分钟，回答的不太行，不知道过没过。
网易面试都是两个面试官，主面试官和副面试官两个。
自我介绍
实习的工作
了解网络那一层
http和https的不同
tcp三次握手
了解哪些排序算法
算法：快速排序
其他排序呢
了解其他数据库吗
sql语句
游戏测试开发和初级测试的区别
有什么想问我的吗？
积攒点欧气，希望通过一面

...]]></description><category></category></item><item><title><![CDATA[面经--好未来测开]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/107694649</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/107694649</guid><author>Anjihua</author><pubDate>Thu, 30 Jul 2020 17:11:54 +0800</pubDate><description><![CDATA[我面的是好未来的测试开发岗位
一面：
自我介绍
讲一下实习的工作
测试的流程
垃圾回收
如何理解测试开发的
算法：

数组找出等于目标的两个/多对数字
升级：数组中找出等于目标的三个数字

二面：
自我介绍
实习中的工作
压测，如何压测
tcp首部
垃圾回收
算法：

反转一定数量的链表(传入一个头节点和一个k，k就是反转的数量)


...]]></description><category></category></item><item><title><![CDATA[Set集合详解(参照源码)]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/106592140</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/106592140</guid><author>Anjihua</author><pubDate>Mon, 08 Jun 2020 21:09:17 +0800</pubDate><description><![CDATA[打开jdk1.8官方文档：

public interface Set&lt;E&gt; extends Collection&lt;E&gt; {
}
public interface Collection&lt;E&gt; extends Iterable&lt;E&gt; {
}

Set接口继承了Collection接口，和List一样是Collection接口的子类。
Set集合的特点：

无序；存放的顺序和取出的顺序不同
不能存放重复元素
不能存放null值

主要实现类：


HashSet
]]></description><category></category></item><item><title><![CDATA[List集合详解(参考源码)]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/106584594</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/106584594</guid><author>Anjihua</author><pubDate>Sat, 06 Jun 2020 12:25:03 +0800</pubDate><description><![CDATA[打开jdk1.8的官方文档发现：

List接口实现了Collection和Iterable接口
List集合的特点：

有序的；存放顺序和取的顺序相同。
可以存放重复元素。
有索引；方便查询。

主要实现类：


ArrayList
AbstractSequentialList

LinkedList


Vector

Stack



ArrayList详解
源码均来自于JDK1.8
//@since   1.2
public class ArrayList&lt;E&gt; extends Abst]]></description><category></category></item><item><title><![CDATA[ThreadLocal详解]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/106414214</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/106414214</guid><author>Anjihua</author><pubDate>Thu, 28 May 2020 22:09:53 +0800</pubDate><description><![CDATA[作用：提供线程内的局部变量，不同线程之间不会相互干扰，这种变量在线程的生命周期内起作用，减少同一个线程内多个函数或组件之间一些公共变量传递的复杂度。

主要方法：

ThreadLocal.set()		用于绑定变量到当前线程
ThreadLocal.get()		用于取出绑定的变量
ThreadLocal.remove() 用于移除绑定的变量

	public T get() {
        Thread t = Thread.currentThread();
        ThreadLocalM]]></description><category></category></item><item><title><![CDATA[ConcurrentHashMap解析]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/106267996</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/106267996</guid><author>Anjihua</author><pubDate>Thu, 21 May 2020 21:41:37 +0800</pubDate><description><![CDATA[HashMap的缺点：

当多线程环境下，使用HashMap进行put操作的时候可能会出现死循环；导致CPU利用率接近100%
如果使用synchronized关键字加锁，但是如果线程竞争很激烈的话，一个线程访问同步方法，其他线程就要进行自旋或者阻塞，效率很低。

这个时候就需要线程安全并且效率较高的HashMap：ConcurrentHashMap
ConcurrentHashMap是由Segment数组结构和HashEntry数组结构组成。

Segment是一种可重入锁ReentrantLock
Ha]]></description><category></category></item><item><title><![CDATA[spring整合mybatis启动tomcat报错：Exception encountered during context initialization - cancelling refresh a]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/105992694</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/105992694</guid><author>Anjihua</author><pubDate>Fri, 08 May 2020 12:18:50 +0800</pubDate><description><![CDATA[下面是完整异常：
org.springframework.context.support.AbstractApplicationContext 2020-05-08 11:51:48  Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans...]]></description><category></category></item><item><title><![CDATA[volatile关键字底层解析]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/105635478</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/105635478</guid><author>Anjihua</author><pubDate>Mon, 20 Apr 2020 15:28:15 +0800</pubDate><description><![CDATA[并发编程的三大特性：可见性，原子性，有序性。
volatile关键字主要是禁止指令重拍和保持可见性的作用，保证了可见性和有序性。
这里聊一下volatile底层方面。
八大原子操作：读取，载入，使用，赋值，存储，写入，加锁，解锁。
线程之间不能直接通信，要通过共享主内存进行通信，所以多个线程抢占同一个资源的时候，需要进行共享主内存，将需要的变量写入到线程的缓存当中。
Volatile缓存可见性实现...]]></description><category></category></item><item><title><![CDATA[hashmap底层源码详解]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/105622749</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/105622749</guid><author>Anjihua</author><pubDate>Sun, 19 Apr 2020 21:53:09 +0800</pubDate><description><![CDATA[这里聊一下hashmap：
hashmap底层数据结构：
Hashmap1.7之前数据结构是数组+链表
Hashmap1.8之后数据结构加了红黑树(是用来处理hash冲突的)
初始化数组：默认初始化容量是16。
也可以在定义hashmap的时候有参数，在里面自定义容量；当自定义容量的时候，如果不是2的指数次幂，将会强转至大于自定义的最接近的2的幂值。
定位：不是通过取模数来定位索引的，而是位运算 ...]]></description><category></category></item><item><title><![CDATA[linux中mysql改名出错：ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/104779646</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/104779646</guid><author>Anjihua</author><pubDate>Tue, 10 Mar 2020 18:03:20 +0800</pubDate><description><![CDATA[这个错误是我在linux服务器中对mysql进行修改密码，重置后进入mysql出错。这是修改密码导致的错误，所以就重新修改密码。
修改mysql密码步骤：
使用的是root用户：
第一步：进入/etc/my.cnf在最下面添加skip-grant-tables，启动安全模式
第二步：重启mysql：service mysql restart
第三步：登录数据库：mysql -u root -p
第...]]></description><category></category></item><item><title><![CDATA[SpringMVC运行流程]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/104564199</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/104564199</guid><author>Anjihua</author><pubDate>Mon, 02 Mar 2020 11:54:03 +0800</pubDate><description><![CDATA[下面是整个运行流程：

发送请求
springDispatcherServlet的url-pattern
SpringMVC中是否存在对应映射(@RequestMapping注解映射)
(3.1)如果没有映射，就看是否配置&lt;mvc:default-servlet-handler/&gt;
(3.1.1)如果没有配置控制台返回错误没有映射，并返回404页面
(3.1.2) 如果有配置，就查找目...]]></description><category></category></item><item><title><![CDATA[MongoDB数据库简单使用]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/104495933</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/104495933</guid><author>Anjihua</author><pubDate>Sun, 01 Mar 2020 11:07:55 +0800</pubDate><description><![CDATA[MongoDB 是一个基于分布式文件存储的数据库。
show dbs		展示里面的数据库
use 数据库名	进入数据库
db.quota_report.find({key,value})	查询
db.quota_report.find({key,value}).pretty()	查询,显示格式是json的。

...]]></description><category></category></item><item><title><![CDATA[常用linux命令]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/104468176</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/104468176</guid><author>Anjihua</author><pubDate>Sun, 23 Feb 2020 21:50:15 +0800</pubDate><description><![CDATA[cd …退出当前目录,返回上级目录
cd 路径	进入当前路径		
tar -zxvf 	解压tar.gz结尾的压缩包
mkdir 文件夹名		新建文件夹
rm 文件名		删除文件
rm -rf 文件夹	递归删除文件夹
pwd			显示当前路径(绝对路径)
ls 文件名		查看文件
vi	文件名		编辑文件
cp 文件 -&gt; 路径	复制文件到路径中
kill 进程号	杀死进程号
chmod		...]]></description><category></category></item><item><title><![CDATA[spring的IOC和DI]]></title><link>https://blog.youkuaiyun.com/Anjihua/article/details/104159396</link><guid>https://blog.youkuaiyun.com/Anjihua/article/details/104159396</guid><author>Anjihua</author><pubDate>Mon, 03 Feb 2020 18:22:55 +0800</pubDate><description><![CDATA[IOC：思想是反转资源获取的方向。
DI：IOC的另一种表述方式，组件以一些预先定义好的方式接受来自于容器的资源注入。
容器主动的将资源送给它管理的组件，组件所要做的仅是选择一种合适的方式来接受资源。这种行为叫做查找的被动形式。
spring的使用：
applicationContext.xml中配置文件
&lt;bean id="" class="类绝对路径"&gt;
	&lt;property...]]></description><category></category></item></channel></rss>