自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 Spring框架的bean细节(创建方式,作用范围和生命周期)

在使用spring框架的时候,对bean有许多重要信息:三种创建bean的方式:使用类的默认构造函数使用工厂类里面的方法来创建对象使用工厂类的静态方法创建对象//这种最常用的就是使用默认构造函数来创建的<bean id="service" class="service.impl.userServiceImpl"></bean>//这种就是第二种方法,要先获取到工厂类的实例,在使用两个属性来定向指向对应的工厂和方法<bean id="factory" cla

2020-10-24 08:25:06 226

原创 面经--恒生测开一面

恒生效率挺高的,前两天才闪面,就直接安排面试了但是是排队面试,跟预期面试时间差别有点大,感觉有点像综合面,面了25分钟。自我介绍为啥离职了​前东家咋样职业规划优点缺点最困难的事情最成功的事情sleep()和wait()的区别如何删除数据库表delete和truncate区别测试流程反问...

2020-09-23 13:14:23 657 2

原创 comparator和comparable的区别

comparator和comparable都是用来自定义比较方式的;下面详细说一下:comparable接口是属于java.lang包下的,要重写一个compareTo(Object obj)方法来进行比较;compareTo方法里面只有一个参数,很明显是用自己本身this和obj来进行比较。comparator接口是属于java.util包下的,要重写compare(Object obj1,Object obj2)方法进行比较,compare里面有两个参数,是对传入的两个参数进行比较。...

2020-09-09 09:59:41 290

原创 String对象详解(附带源码)

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

2020-09-04 10:47:54 190

原创 二叉树后序遍历(递归和非递归)

//后序遍历二叉树public class AfterFind { public void Digui(Node root) { //后序遍历 递归 if (root.getLeftNode() != null) { Digui(root.getLeftNode()); } if(root.getRightNode() != null) { Digui(root.getRightNode());

2020-08-18 22:17:16 320

原创 面经--网易互娱游戏测开二面

全程还是50分钟,疯狂问题目,我已经懵逼了。自我介绍实习介绍为什么选择游戏测试开发岗位。压测登录页面:压测报告有张图:横坐标时间,纵坐标成功登录人数,从0,0在第一象限下斜上方一条斜线,可以得到哪些结论。算法:二叉树后序遍历非递归一个盐罐,一个糖罐,同样体积,盐罐取出1/13放入糖罐,糖罐摇晃均匀,再在糖罐取1/13放入盐罐(取完后剩余1),问盐罐的糖多还是糖罐的盐多?交换机和路由器路由器和家里面买的路由器区别最喜欢的课程最不喜欢的课程如何在linux下面建立一个进程有什么要一直坚持

2020-08-18 17:33:20 922

原创 面经--网易互娱游戏测开一面

全程总共50分钟,回答的不太行,不知道过没过。网易面试都是两个面试官,主面试官和副面试官两个。自我介绍实习的工作了解网络那一层http和https的不同tcp三次握手了解哪些排序算法算法:快速排序其他排序呢了解其他数据库吗sql语句游戏测试开发和初级测试的区别有什么想问我的吗?积攒点欧气,希望通过一面...

2020-08-14 11:12:40 482 1

原创 面经--好未来测开

我面的是好未来的测试开发岗位一面:自我介绍讲一下实习的工作测试的流程垃圾回收如何理解测试开发的算法:数组找出等于目标的两个/多对数字升级:数组中找出等于目标的三个数字二面:自我介绍实习中的工作压测,如何压测tcp首部垃圾回收算法:反转一定数量的链表(传入一个头节点和一个k,k就是反转的数量)...

2020-07-30 17:11:54 520

原创 Set集合详解(参照源码)

打开jdk1.8官方文档:public interface Set<E> extends Collection<E> {}public interface Collection<E> extends Iterable<E> {}Set接口继承了Collection接口,和List一样是Collection接口的子类。Set集合的特点:无序;存放的顺序和取出的顺序不同不能存放重复元素不能存放null值主要实现类:HashSet

2020-06-08 21:09:17 245

原创 List集合详解(参考源码)

打开jdk1.8的官方文档发现:List接口实现了Collection和Iterable接口List集合的特点:有序的;存放顺序和取的顺序相同。可以存放重复元素。有索引;方便查询。主要实现类:ArrayListAbstractSequentialListLinkedListVectorStackArrayList详解源码均来自于JDK1.8//@since 1.2public class ArrayList<E> extends Abst

2020-06-06 12:25:03 334

原创 ThreadLocal详解

作用:提供线程内的局部变量,不同线程之间不会相互干扰,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或组件之间一些公共变量传递的复杂度。主要方法:ThreadLocal.set() 用于绑定变量到当前线程ThreadLocal.get() 用于取出绑定的变量ThreadLocal.remove() 用于移除绑定的变量 public T get() { Thread t = Thread.currentThread(); ThreadLocalM

2020-05-28 22:09:53 212

原创 ConcurrentHashMap解析

HashMap的缺点:当多线程环境下,使用HashMap进行put操作的时候可能会出现死循环;导致CPU利用率接近100%如果使用synchronized关键字加锁,但是如果线程竞争很激烈的话,一个线程访问同步方法,其他线程就要进行自旋或者阻塞,效率很低。这个时候就需要线程安全并且效率较高的HashMap:ConcurrentHashMapConcurrentHashMap是由Segment数组结构和HashEntry数组结构组成。Segment是一种可重入锁ReentrantLockHa

2020-05-21 21:41:37 552

原创 spring整合mybatis启动tomcat报错:Exception encountered during context initialization - cancelling refresh a

下面是完整异常:org.springframework.context.support.AbstractApplicationContext 2020-05-08 11:51:48 Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans...

2020-05-08 12:18:50 1334

原创 volatile关键字底层解析

并发编程的三大特性:可见性,原子性,有序性。volatile关键字主要是禁止指令重拍和保持可见性的作用,保证了可见性和有序性。这里聊一下volatile底层方面。八大原子操作:读取,载入,使用,赋值,存储,写入,加锁,解锁。线程之间不能直接通信,要通过共享主内存进行通信,所以多个线程抢占同一个资源的时候,需要进行共享主内存,将需要的变量写入到线程的缓存当中。Volatile缓存可见性实现...

2020-04-20 15:28:15 289

原创 hashmap底层源码详解

这里聊一下hashmap:hashmap底层数据结构:Hashmap1.7之前数据结构是数组+链表Hashmap1.8之后数据结构加了红黑树(是用来处理hash冲突的)初始化数组:默认初始化容量是16。也可以在定义hashmap的时候有参数,在里面自定义容量;当自定义容量的时候,如果不是2的指数次幂,将会强转至大于自定义的最接近的2的幂值。定位:不是通过取模数来定位索引的,而是位运算 ...

2020-04-19 21:53:09 345

原创 linux中mysql改名出错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

这个错误是我在linux服务器中对mysql进行修改密码,重置后进入mysql出错。这是修改密码导致的错误,所以就重新修改密码。修改mysql密码步骤:使用的是root用户:第一步:进入/etc/my.cnf在最下面添加skip-grant-tables,启动安全模式第二步:重启mysql:service mysql restart第三步:登录数据库:mysql -u root -p第...

2020-03-10 18:03:20 296

原创 SpringMVC运行流程

下面是整个运行流程:发送请求springDispatcherServlet的url-patternSpringMVC中是否存在对应映射(@RequestMapping注解映射)(3.1)如果没有映射,就看是否配置<mvc:default-servlet-handler/>(3.1.1)如果没有配置控制台返回错误没有映射,并返回404页面(3.1.2) 如果有配置,就查找目...

2020-03-02 11:54:03 189

原创 MongoDB数据库简单使用

MongoDB 是一个基于分布式文件存储的数据库。show dbs 展示里面的数据库use 数据库名 进入数据库db.quota_report.find({key,value}) 查询db.quota_report.find({key,value}).pretty() 查询,显示格式是json的。...

2020-03-01 11:07:55 194

原创 常用linux命令

cd …退出当前目录,返回上级目录cd 路径 进入当前路径 tar -zxvf 解压tar.gz结尾的压缩包mkdir 文件夹名 新建文件夹rm 文件名 删除文件rm -rf 文件夹 递归删除文件夹pwd 显示当前路径(绝对路径)ls 文件名 查看文件vi 文件名 编辑文件cp 文件 -> 路径 复制文件到路径中kill 进程号 杀死进程号chmod ...

2020-02-23 21:50:15 165

原创 spring的IOC和DI

IOC:思想是反转资源获取的方向。DI:IOC的另一种表述方式,组件以一些预先定义好的方式接受来自于容器的资源注入。容器主动的将资源送给它管理的组件,组件所要做的仅是选择一种合适的方式来接受资源。这种行为叫做查找的被动形式。spring的使用:applicationContext.xml中配置文件<bean id="" class="类绝对路径"> <property...

2020-02-03 18:22:55 322

原创 spring的AOP

AOP:面向切面编程,主要解决代码混乱和代码分散等问题AOP是一种新的方法论,是对面向对象编程的补充AOP的主要编程对象是切面,而切面模块化横切关注点连接点:程序执行的某个特定位置eg:某个方法调用之前切点:AOP通过切点定位到特定的连接点有两种方式实现AOP,分别是基于AspectJ注解和XML配置。AspectJ注解1.把一个类声明为一个切面:需要把该类放到IOC容器中,及加@C...

2020-02-03 17:43:29 182

原创 mybatis参数处理

单个参数:mybatis不会做特殊处理#{参数名}:取出参数值eg:public Employee getEmpById(@Param("id")Integer id);//取值:id->#{id} 多个参数:mybatis会做特殊处理,将多个参数会被封装成一个map, key:param1…paramn,或者参数索引 value:传入的值#{}就是从map中取得指定key...

2020-01-17 22:18:52 186

原创 mybatis配置文件

mybatis里面要用到这几个标签properties:用来在外部引入properties文件,这样就不需要在环境里面书写驱动,url,name和password,直接使用${指定位置.内容}。settings:进行设置,里面还有一些标签,进行操作设置。typeAliases:别名处理器,可以设置别名。type是指设置别名的类,alias是设置的别名<typeAliases>...

2020-01-12 17:04:19 156

原创 二叉排序树添加删除节点

二叉排序树:可以很快的检索到具体的数据。什么是二叉排序树:让左子节点的值小于父节点,右子节点的值大于父节点,这样的二叉树称为二叉排序树。往二叉排序树中添加节点:首先要看添加节点的父节点是否为空,在判断添加节点的值和父节点的值的大小关系,如果小,就放在左节点,如果大就放在右节点添加节点代码:public void add(Node node) { if(node==null) { ...

2019-12-13 20:43:55 744

原创 哈夫曼树

哈夫曼树:给定n个权值作为n个叶子节点,构成一个二叉树,并且这个二叉树的带权路径最小(WPL最小),就称为最优二叉树,也称为哈夫曼树。节点的权:给这个节点赋予某种特殊含义的数值,这个数值节点的权。节点的带权路径长度:从根节点到该节点的路径长度(层数-1)和该节点的权的乘积。树的带权路径长度:所有叶子节点的带权路径之和。即为WPL。构建哈夫曼树的步骤:1.将给定数列排序,有小到大的顺序。...

2019-12-12 20:26:48 465

原创 二叉树遍历,查找,删除节点,线索化

二叉树很明显就只有两个分叉,及左子节点和右子节点,这里主要是说明二叉树的遍历,查找节点和删除节点,线索化这几种。遍历分为前序遍历,中序遍历,后序遍历这三种,前,中,后是相对中间节点来说的,及前序比那里是先中间节点,在左边节点,最后右边节点。下面是前序遍历代码:public void preOrder(){ System.out.println(this); if(this.left!...

2019-12-11 09:33:44 325

原创 二分查找(递归和非递归),插值查找数据

有三种常用的方法找到需要找到值的下标—顺序查找,二分查找,插值查找顺序查找:很明显,就是从开始到后面开始遍历,找到就退出,并返回下标。没找到就返回-1.下面是代码:public static int seqSearch(int[] arr,int value) { for (int i = 0; i < arr.length; i++) { if(arr[i]==value...

2019-12-10 09:42:19 238

原创 水花仙数

什么是水花仙数?水花仙数就是一个n位数的每一位数字的n次方之和等于这个n为数,就称之为水花仙数判断水花仙数步骤:1.要知道这个数是几位。2.得到每一位的数字的次方将其加起来。3.将得到的数和之前的数进行对比,判断是否是水花仙数。下面是java代码,有注释。 public static boolean isWFN(int number) { boolean flag = false...

2019-12-09 09:12:55 1286

原创 压缩数组转换

为什么需要稀疏数组转换?因为有的时候这个二维数组里面有值的地方占的比较少,大部分都是0,比较占用空间,所以需要稀疏数组转换,节省空间。首先,是将二维数组转换成稀疏数组:1.需要先找到有多少非0的数字count。2.设置一个二维数组,count+1行,3列。3.将一个行的3个设置成原来数组的行,列,和count。4.将非0数字放到这个新数组中,放的是这个数字的行,列,值。下面是代码。...

2019-12-08 16:11:22 314

原创 计算机网络协议详解

互联网的基本特点:连通性和共享首先,现在一般的网络体系结构都是五层协议即物理层,数据链路层,网络层,传输层和应用层。还有OSI七层协议:物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。TCP/IP四层协议:网络接口层,网际层,运输层和应用层。协议:双方进行数据交换而建立的约定,物理层物理层传输的是比特流。物理层主要是确定机械特性,电气特性,功能特性,过程特性。通信系统:...

2019-12-05 23:43:17 743

原创 八大排序算法解析

8大排序算法都有:冒泡排序,选择排序,插入排序,快速排序,希尔排序,堆排序,归并排序,基排序。首先是最简单的冒泡排序:选择最大的放在后面,需要arr.length-1次排序public static void bubbleSort(int[] arr) {int temp=0;for(int i=0;i<arr.length-1;i++) {for (int j = 0; j &l...

2019-11-23 20:06:04 257

原创 设计模式之单例模式

单例模式又分为饿汉式和懒汉式顾名思义,单例模式就是只有单个的对象实例。饿汉式就是当执行方法时直接就产生对象,懒汉式就是当你使用的时候才生成对象。要想生成一个实例,就要严格把控条件,进行判断是否有一个实例在外面,如果有就直接返回那个实例,要是没有就产生这个实例。饿汉式:public class SingletonHungry {// 2、私有静态属性 new对象//类初始化时立即加...

2019-11-14 17:00:55 125

原创 数据库连接池及查询优化

服务器可以快速创建和断开连接,但对于高并发的后台服务器而言,连接的频繁创建与断开,是非常重的负担。。在客户端与服务端之间可以事先创建若干连接并提前放置在连接池中,需要时可以从连接池直接获取,数据传输完成后,将连接归还至连接池中,从而减少频繁创建和释放连接所造成的开销。连接资源在数据库端是一种非常关键且有限的系统资源。连接过多往往会严重影响数据库性能。数据库连接池负责分配、管理和释放连接,这是种以...

2019-11-13 22:22:39 379

原创 java多线程并发全面解析

实现并发的最直接的方式是在操作系统级别使用进程。进程是运行在它自己的地址空间内的自包容的程序。线程的创建有四种方式:1、实现Runnable接口并重写run()方法public class StartRun implements Runnable{public void run() { }}使用://创建实现类对象StartRun st=new StartRun();//创建...

2019-11-12 19:33:49 639

原创 java从当前时间得到今天的固定时间

有三种方法:第一种:使用Calendar类Calendar c = Calendar.getInstance();c.set(Calendar.HOUR_OF_DAY, 6); //设置自己今天想得到的点数c.set(Calendar.MINUTE, 0);c.set(Calendar.SECOND, 0);System.out.println(c.getTime());第二种:...

2019-11-11 20:55:45 756

原创 虚拟内存和局部性原理

2019-11-11 18:02:28 2029

原创 请求调页和页面置换

2019-11-11 17:58:32 848

原创 虚拟机栈

2019-11-10 15:20:45 124

原创 内存管理(分页,分段,TLB)

内存分配:固定分区分配和连续内存分配分页和分段管理联想寄存器(TLB)

2019-11-10 15:17:27 866

原创 死锁

造成死锁的四个必要条件:资源互斥:一次只有一个进程可以使用这个资源占有并等待:线程本身持有资源,但还是要申请另外的资源不可抢占:资源只能等到这个线程执行完后自己释放才能使用这个资源循环等待:这个线程等待另一个线程的资源,而另外一个等待这个线程的资源,造成等待资源的进程之间存在了环防止死锁的几种办法:忽略,死锁预防,死锁避免,检测,解除银行家算法:...

2019-11-10 15:09:14 151

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除