自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HashMap原理认识

简单理解Hashmap原理

  • 博客(44)
  • 收藏
  • 关注

原创 BIO,NIO,AIO,Netty的简单认识

1. 基本概念同步阻塞I/O:服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理。同步非阻塞IO:服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理异步非阻塞IO:异步非阻塞,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理2. BIO的认识又称同步阻塞IO。那么问题来啦,问题1:同..

2020-06-03 19:17:04 247

原创 dubbo认识

1. 为什么需要dubbo? 解决url维护的问题。 实现软负载的功能。 自动整理出服务之间的依赖关系。 提供监控平台,监控调用量,以及响应时间。2. dubbo是什么? 分布式服务框架,提供高性能以及透明化的RPC远程服务调用解决方法,以及SOA服务治理方案。3.dubbo功能有哪些? 软负载均衡策略:随机策略。轮训策略。这两...

2020-04-11 21:35:42 221

原创 房多多面试

java基础1. hashMap和hashTable区别。2. concurrenthashMap里面的扩容机制。3. List,Set,Map之间的区别。4. jvm年轻代为啥是8:1:1。5. A a = new A(),从类加载器说起。6. spring事务管理和spring里面的隔离级别。7. mybatis里面#和$区别。8. 三次握手和四次挥手,以及下载...

2020-04-05 15:19:58 258

原创 华为面试

java基础1.主要是靠算法。

2020-04-05 14:17:18 198

原创 阿里巴巴简历面试

1. java基础面试1. concurrenthashMap和hashMap区别。2. 双亲委派模式讲一下,如何破坏双亲委派。3. hashMap和hashTable区别。4. redis为啥高性能。5. nginx负载均衡策略。...

2020-04-05 14:16:10 248

原创 招银网络科技面试题

java面试题1. hashMap和hashTable区别。2. 线程和进程区别。3. synchronized和Reentrant区别。4. 如何100亿数据中找到最大数。5. zookeeper里面water机制.6. kafka里面的topic,broker,portition区别。7. 如何发现数据库的数据被篡改。...

2020-04-05 14:07:33 8814 1

原创 中信银行面试题

基础面试1. 栈和堆之间区别(从数据结构出发来讲)。2. List,Set,Map之间区别。3. Hashtable和HashMap区别。4. 工厂模式和观察者模式。5. Redis里面如何保持活跃数据。讲一下淘汰策略。6. 讲一下spring里面Ioc和Aop。7. springboot里面springbootapplication注解替代哪些注解。8. 如...

2020-04-05 11:37:12 522

原创 简单理解spring里面Aop

1. Aop是什么?为什么需要Aop?Aop怎样做到的?          1.   它那影响多个类的公共部分抽取出来做成一个可用的公共模块。          2.   java是面向对象编程,在面向对象里面就会有继承,但是我们就要打破这种继承,那它横向抽取出来,使代码变的简单          3.  动态代理2. Aop的实现原理(这里讲jdk的动态代理)        ...

2019-02-16 14:30:15 157

原创 mybatis进行曲三

1.待续。。。。。

2019-02-16 13:25:07 94

原创 mybatis进行曲二

1.  mybatis 是什么,做了什么,怎样做的?     1. 一个持久性框架(是什么)     2. 自定义sql,高级映射,消除所有的jdbc操作和参数手动设置(做了什么)    3. 简单的XML或注释进行配置,并将原语、映射接口和Java pojo(普通的旧Java对象)映射到数据库记录。(怎样做的)    分析:这是作者看mybatis官网的得出简单的解释。2. ...

2019-02-15 20:28:46 146

原创 认识HashMap从不同的思维

1.假设让我们去设计HashMap如何去做?    源码预热  ---->源码猜疑------》源码分析 -------》总结思想    1. 源码预热:首先我们应该通过简单的程序来运用一下,熟悉一下HashMap怎样取用    2. 源码猜疑:就是用我们以前的知识进行合理的猜测。    3. 源码分析:通过上述的猜测,可以让我们继续把源码看下去。    4. 总结思想:...

2019-01-29 09:00:08 174 1

原创 mybatis进行曲(一)

1.为什么使用Mybatis?1. 首先是mybatis比较容易上手,比较轻巧(与hibernate它有轻巧在哪些方面)2. sql语句写在xml里面,降低了代码的耦合性。3. 提供xml标签,可以动态编写sql语句。4. 提供映射标签,支持对象与ORM数据库的映射。2. mybatis缺点? 1.sql语句的编写量比较大,特别是字段比较多和关联表查询时,要求开发人员的功底...

2019-01-12 12:13:00 110

原创 G1收集器

1. 为什么需要G1收集器?主要是为了适应大内存和多CPU环境,取消了原来的年轻代,老年代的划分,而是直接按照将堆内存划分为若干个区域。每一个子区域内存大小是1M-32M,最多可以划分2048个空间,最大的内存支持32*2048 =65535 64G内存。2. G1使用场景?   垃圾收集线程和应用线程并发执行,和CMS一样   空闲内存压缩时避免冗长的暂停时间3. G1的垃圾...

2019-01-06 14:40:02 219

原创 jvm垃圾收集策略

 垃圾回收对象主要针对是年轻代和老年代,老年代的内存空间比年轻代的内存空间大,所以我们应该避免进行老年代的内存空间的垃圾回收。1.年轻代GC回收的策略    算法思想:复制    实现过程:从根集合出发,扫描出存活的对象,并且把存活对象复制到一块新的内存空间。    算法的优化:因为Eden会产生大量的对象,为了加快内存的分配速度,实行Bump-The-Pointer技术,每一次记...

2019-01-06 11:54:32 213 1

原创 jvm内存溢出

  1.内存泄漏和内存溢出区别?内存泄漏:系统分配的内存没有被回收。内存溢出:分配的内存空间超过系统内存。2. jvm内存泄漏的原因分析?jvm由5大块组成:堆,栈,本地方法栈,程序计数器,方法区,这里说一下栈它的主要记录方法的执行和对象的引用。堆则存在真正的引用的对象。方法的执行的结束,可能伴随着java栈内存的自动清除,但是堆内存的对象不一定会随着栈内存的清空而清空,这样的话,...

2019-01-03 20:06:13 1880

原创 jvm里面年轻代,老年代,永久代,元空间

1.年轻代年轻代主要有三个区域组成,一个是Eden区域,另一个是存活区1和存活区2。Eden主要负责对象的创建,存活区1和存活2主要负责向老年代普及对象,存活区1和存活区2这两个区域里面总存在一个是空的,为什么这两个区域里面有一个空的呢?因为这两个区域需要负责回收年轻代活跃对象,需要把这些年轻代对象晋级到老年代。Eden:存活区1:存活区2=8:1:1,这是年轻代的默认值。当然我们可以调整Ed...

2019-01-01 15:12:38 973

原创 java堆内存参数调整

1.java堆内存参数  我们为什么需要进行jvm堆内存调整?         因为jvm垃圾回收机制,主要发生在堆内存区域,从堆的内存结构划分,里面存在伸缩区概念,那么频发的伸缩会影响jvm性能,所以我们需要去掉伸缩区。只需要-Xms和-Xmx大小相等,即堆内存里面-Xms和-Xmx是比较重要的参数。我们也可以将垃圾回收的日志打印出来。这时需要-XX:+PrintGCDetails参数。...

2018-12-28 20:10:32 1145

原创 java堆内存模型

 1. java堆内存划分分析:   1.  这是jdk1.8以前的堆内存划分。   2.   新生代主要有Eden区域,存活区1,存活区2.(主要是刚刚创建的对象)   3.  老年代(经过jvm垃圾回收之后,对象依然存活)   4.  永久代(jvm垃圾回收机制不可能进行回收的),jdk1.8以后改为元区域,这个区域的内存时使用电脑的直接内存   5.  在每一...

2018-12-26 18:35:44 360

原创 java对象访问模式

1.  java对象访问模式为什么我们要引入java对象访问模式,我们知道Object obj = new Object();但是里面的具体细节,我们还不是特别了解。     分析:Object obj 其实就是声明一个对象。保持在栈内存之中,也保存了堆内存的引用                new Object() 其实是实例化对象,该对象保存在堆内存之中。但是我们应该知道ob...

2018-12-25 09:10:53 139

原创 java内存模型

 当我第一次见到java的内存模型时,心里在想为什么需要java内存模型,它可以见解决什么问题?,java的内存模型是如何进行设计的,带着这样的疑问我们就可以能够深入的理解java的内存模型。1. 为什么需要java内存模型?我们先了简单了解一下cpu和内存的关系,指令都是有由cpu进行执行的,那么数据的有什么进行管理的呢?是放在主存里面,也就是计算机的物理内存,但是随着计算里面的cp...

2018-12-24 09:15:17 340

原创 Spring里面线程安全问题

1

2018-12-22 14:41:09 457

原创 Spring里面的AOP和事务

1. 什么是spring里面的AOP和AOP的作用?Spring里面的AOP,就是面向切面编程,及刨开封装对象的内部,把影响多个类的公共方法封装成一个可用的模块,这就是Aspect(切面),这个切面与业务无关,但是被业务模块所调用的方法,减少代码的重复利用,减低代码之间的耦合度,利于后期的维护,主要应用在权限拦截,日志的打印。2. 什么是事务?为什么需要事务事务是一系列指令的结合,事务...

2018-12-20 19:58:52 237

原创 Spring里面Bean的生命周期和循环依赖问题

1. 什么是Spring的循环依赖?     循环依赖不是我们程序里面的死循环,它是一种对象之间的依赖关系。2. Spring如何检测循环依赖?    Spring在创建Bean的时候做一个标记,采用递归进行调用如果发现Bean还在创建中,就说明有循环依赖。3. Spring循环依赖产生的时机?    我们知道Spring注入的方式有三种 ,分别是构造方法,属性注入,自动注入,...

2018-12-19 20:28:24 1829

原创 博客地址

1.https://www.cnblogs.com/fingerboy/category/809233.html2.https://www.cnblogs.com/charlesblc/p/6124224.html?utm_source=itdadao&utm_medium=referral(spring)3.https://www.ibm.com/developerworks/c...

2018-12-08 13:48:52 89

原创 简单认识spring

1. Spring的作用在spring里面最主要的功能就是Ioc(控制反转)和Aop(面向切面编程)。Ioc主要是把对象的产生的交给Spring进行管理,及把对象的依赖关系转化为用配置文件进行管理。那么问题来了spring如何实现Ioc呢?Aop又与Ioc有什么关系呢?2.Spring的组织架构分析:从这个spring架构图中可以看出。spring最核心的组件是Context和Co...

2018-12-08 13:42:12 449

原创 java里面注解的简单认识

1. 什么是注解? 注解就是元数据,对java进行标记作用、2. 注解与xml之间的区别?1.xml可以实现对代码的松耦合,但是后期不利于看清楚里面的逻辑关系2.注解可以实现对代码的紧耦合,有利于看清楚逻辑关系3. 注解的应用?jdk自带注解 @OverrideSpring的注解 @Service @Controller自定义注解 ...

2018-12-06 08:50:04 183

原创 简单理解jdk的动态代理

1. 静态代理静态代理其实就是我们的装饰者设计模式,首先定义一个接口类,然后定义这个接口类的实现类,对每一个实现类定义一个代理类,这里面代理类里面传入这个实现类的引用。1.1  接口类public interface PersonInterface {    void say();}1.2  实现类public class Students implements Person...

2018-11-30 19:56:46 217

原创 java反射机制简单认识

1.什么是反射反射是在运行期间动态的获取这个类的基本信息,一个类分为运行期和编译器,编译器主要干什么事情呢?主要是进行把一个类生成.class文件,把什么是class文件呢,就是二进制文件,能够让机器进行识别的,也就是0和1的组成的。运行期主要是把类加载到jvm内存里面,用java虚拟机进行加载。主要分为几个过程,加载,连接(验证,准备,解析),初始化。jvm里面的加载在java里面规...

2018-11-27 20:52:48 343

原创 线程池简单认识

1.线程池的作用1.  降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 2.  提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 3.  提高线程的可管理性。2.线程池原理分析:我们如何理解这幅图呢,以及我们可以简单对它们进行简单的模仿?1.  核心线程池就像相当于我们互联网公司的核心成员。2.  当任务来的时候,核心线程池进行...

2018-11-22 19:32:59 267

原创 简单认识synchronized和volatile关键字

1. synchronized关键字目的:synchronized关键字是java提供的锁机制,主要解决线程的同步问题,那么它可以修饰方法和同步代码块,那么问题来了,我们什么时候用同步代码块和方法呢,我认为主要看锁对象的范围,一般情况是越小越好。原理:synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的互斥锁(Mut...

2018-11-12 20:32:52 3942

原创 线程与进程简单认识

1.   什么是进程?什么是线程?官方的解释:进程是资源管理的最小单位,线程是程序执行的最小单元。也可以理解为进程是计算机运行中的一个应用程序。线程是执行该进程的逻辑单元。例如当我们打开qq时,其实就是开启一个进程,我们可以打字,或者发语音等等,都是有多个线程执行的。2.进程与线程之间的关系?举个例子:现在有一个工厂,工厂里面有一个发电厂,这个发电厂只能一次性提供给一个车间发电...

2018-11-07 18:21:52 231

原创 简单认识java里面的网络编程

1.简单的网络知识在进行java网络编程时,我们应该了解最基本的网络知识,网络协议就是定义一种规范,就是客户端和服务器端在传递数据时,都应该符合这一种要求,但是在java网络编程里面使用的是,tcp方式和udp方式。2.网络编程里面简单API介绍InetAddress说明:分析:通过api发现可以自己指定域名,从而得到IntAddress实例对象,进而可以获得所需要的网络信息,...

2018-10-30 19:57:25 88

原创 简单认识java里面的流

1.简单认识java里面的流结构在java里面通过流对来实现对文件,磁盘,内存进行读取,这里以为流的形式比较多,所以主要写一下一些常用流的用法。分析:通过源码可以看出,java的设计者定义两个抽象类,分别作为输出流和输入流。但是有个问题是,(为什么不直接用接口)然后其他流来分别继承这两个抽象类。2. FileInputStream类的使用分析:大家可以看到r...

2018-10-29 20:31:06 231

原创 对递归的简单认识

1.递归简单认识递归解决问题就是把大问题变成小问题。函数之间的循环调用。2.递归的里面问题方法自己调用自己,最重要可能是递归的结束调节,因为每一个方法的执行都会产生一个栈,然而栈是有大小的,如果无限递归就会产生stackOverofMemeory(栈溢出),并且每一个方法都有自己的私有变量。而且每一次的方法调用都会产生一个栈帧,也会随着方法的结束而销毁。栈帧的基本概念:本地变量表,...

2018-10-27 11:11:09 231

原创 数据库连接超时

1.

2018-10-27 11:09:45 284

原创 File的简单认识

File简单认识前言:平时主要自己对这一方面的认识理解还不是特别深,所以这一方面主要侧重简单的api,以及里面原理简单理解,如果大家有什么好的想法希望指出来。1. 创建文件对象通过查看源码创建文件的方式分为6种,其中有两种我们用的比较多,分别是第一个和第二个,其他我就不全列举了。分析:在这里强调的是,创建文件对象时,当你的路径不存在,File的构造方法不会替我们进行创建。...

2018-10-23 09:34:35 149

原创 java里面abstract和implement的简单认识

1. 简单认识abstract和implement概念:在java里面所有对象都是用来描述类的,但是不是所有的类都是用来描述类的,那么问题来了,java的设计者为什么需要abstract和implements,因为在java里面存在抽象的概念。什么是抽象概念呢,在我的理解没有具体的概念,没有实施的步骤。因为在我们实际开发中,我们会发现我们需要把共同的部分抽取出来,那么abstract和im...

2018-10-19 19:57:09 4018

原创 数据库不稳定(审批)

1. 发现数据库不稳定,从而导致数据没有,以至于整个应用都没有。分析:

2018-10-18 20:38:19 173

原创 java里面对implements的认识

1.

2018-10-18 20:32:59 434

原创 java对static简单认识

static简单认识:static作用:只要使用static的地方,jvm就会在编译器对这些信息进行加载,完成对内存的一次申请,那么这个内存是什么时候进行释放呢,要在程序运行完成之后释放,还有一个问题就是这个内存在什么地方进行申请,是属于永久代吗(请看jvm内存管理),是不是static用的越多越好呢,那我们应该什么时候用呢,那我们可以不可以在想一下,java的设计者是如何用static这个关...

2018-10-18 18:41:10 547

空空如也

空空如也

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

TA关注的人

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