自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 资源 (1)
  • 收藏
  • 关注

原创 HasMap是如何进行put的?

先判断map是否是空,空要扩容,再判断数组下标是否存在(key的hash值i),不存在就直接插入,不是空就判断key是否存在相同(equals),存在就直接覆盖,不存在判断是不是红黑树是就加,不是红黑树,遍历插入并看是不是到了链表长度8,到了就变为红黑树,最后再调整容量大小。ps: resize()调整容量: 默认大小是16 每到容量的0.75的时候进行扩容,是先扩容2倍,如果不够再扩容。源码...

2022-07-06 15:57:30 246 1

原创 JavaIO的基本架构、对象进行序列化、网络编程中的Socker、JavaIO中体现的设计模式有/是什么?

1 JavaIO的基本架构是什么?基于字节操作方式 的IO接口:InputStream和OutputStream基于字符操作方式 的IO接口:Reader和Writer基于磁盘操作方式的IO接口:File基于网络操作方式的IO接口:Socket字节到字符的转化桥梁:InputStreamReader基于磁盘操作方式中的访问文件方式有哪5种?标准访问文件方式直接IO访问方式同步访问文件方式异步访问文件方式内存映射方式Java中的类对象进行序列化有什么用?Java中的序列化是把一个对象

2020-06-09 01:07:09 239

原创 DNS解析的过程?

1浏览器先检查缓存中没有这个域名对应解析的IP地址(缓存时间通过TTL属性设置)2 浏览器缓存中没有,则到操作系统缓存中是否有对应的DNS解析结果(通过一个配置文件中进行配置)3 以上两步骤都没有就发送域名到LNDS(本地域名服务器,如学校的NDS服务器,小区电信提供商的NDS)4 LDNS中没有就到Root Server根域名服务器请求解析5根域名服务器返回给本地服务器一个主域名服务器(gTLD Server)地址(.com .cn等)6 gTLD域名服务器查找并返回此域名对应的Name S

2020-06-07 23:35:41 257

原创 说一下Mysql 的执行流程?

其实就是说架构图,总的来说是 客户端->server层->存储引擎->取数据。server层中是连接器->分析器->优化器->执行器->存储引擎 而 连接器后先进行查询缓存。...

2020-06-07 22:59:31 150

原创 jdk的发展历史与jdk7与jdk8有什么区别?

jdk的发展历史与jdk7与jdk8有什么区别?1991年4月,由James Gosling博士开发Java语言的前身:Oak1995年 Oak语言改名为Java1996年 JDK 1.0发布,并进行版本更新。1999年 HotSpot虚拟机诞生2006年 JDK 6发布,本对Java虚拟机内部做了大量改进,包括锁与同步、垃圾收集、类加载等进行改动2011年 JDK7 本来JDK7计划支持Lambda表达式,支持函数式编程,但2009年 sum竞争中陷入泥潭以74亿美元被Oracle收购,还导致

2020-05-16 00:07:48 562

原创 前端与后端是如何进行对接开发/前端如何请求接收云服务器中的数据(可以清楚知道后端开发要做什么之一)?

前端写好前端的接口比如下面这个全局js中的方法,可以随时进行修改域名与下一级路径后端就写好api文档,比如说/shoji/list就个返回了什么数据这时候就要和前端的人进行对接接口了

2020-05-15 21:49:37 2243

原创 redis中的三个过期键的删除策略?

三种:定时过期、惰性过期、定期过期定时过期:每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。惰性过期:只有当访问一个key时,才会判断该key是否已过期,过期则清除。该策略可以最大化地节省CPU资源,却对内存非常不友好。极端情况可能出现大量的过期key没...

2020-05-06 22:25:19 173

原创 你对 Redis 的持久化机制了解吗?

Redis 为了保证效率,数据缓存在了内存中,但是会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件中,以保证数据的持久化。Redis 的持久化策略有两种:RDB:快照形式是直接把内存中的数据保存到一个 dump 的文件中,定时保存,保存策略。AOF:把所有的对 Redis 的服务器进行修改的命令都存到一个文件里,命令的集合。Redis 默认是快照RDB 的持久化方式。当 R...

2020-05-06 22:24:28 132

原创 你是怎样用redis的?

我是直接通过 RedisTemplate 来使用的1在 pom.xml 中加入依赖。2配置文件 application.yml 的配置,数据库连接地址,与端口,还有password,连接池最大连接数。3 RedisTemplate 的使用方式默认情况下的模板只能支持 RedisTemplate<String, String>,也就是只能存入字符串,所以自定义模板很有必要。添加...

2020-05-06 22:19:58 208

原创 redis 常见数据结构

1.String 字符串类型set hello worldget helloString是Redis 最基本的类型,一个 Key 对应一个 Value。Value 不仅是 String,也可以是数字。String 类型是二进制安全的,意思是 Redis 的 String 类型可以包含任何数据,比如 jpg 图片或者序列化的对象。String 类型的值最大能存储 512M。2.Hash (...

2020-05-06 11:47:00 781 1

原创 你来说一下Redis是什么吧?

Redis是C语言开发的一个高性能键值对内存数据库。为什么性能优秀呢,数据在内存中,读写速度非常快。单进程单线程,是线程安全的,有丰富的数据类型,支持字符串(string)、散列(hashe)、列表(lists)、集合(set)、有序集合(sorted sets)等。支持数据持久化。可以将内存中数据保存在磁盘中,重启时加载。主从复制,哨兵,高可用。可以用作分布式锁。可以作为消息中间件使用,支持发...

2020-05-02 00:07:26 288

原创 java连接数据库的详细步骤?

java访问数据库主要用的方法是JDBC,它是java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法,1.加载(注册)数据库Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);2.建立链接//Sql Server7.0/2000/2005/2008数据库String u...

2020-05-02 00:06:14 2109

原创 项目中使用了外键了吗?外键有什么作用?

外键作用:实现表与关联表之间的数据一致性用还是不用?互联网行业:不推荐使用外键用户量大,并发度高,为此数据库服务器很容易成为性能瓶颈,尤其受IO能力限制,且不能轻易地水平扩展;若是把数据一致性的控制放到事务中,即让应用服务器承担此部分的压力;应用服务器一般都是可以做到轻松地水平的伸缩;传统行业:可以使用软件应用的人数有限,换句话说是可控的;数据库服务器的数据量也一般不会超大,...

2020-05-02 00:05:41 404

原创 B树与B+树有什么区别?

B树每个节点都存储key和data,所有节点组成这棵树,并且叶子节点指针为null。B+树只有叶子节点存储data,叶子节点包含了这棵树的所有键值,叶子节点不存储指针。b+树的中间节点不保存数据,所以磁盘页能容纳更多节点元素,更“矮胖”;b+树查询必须查找到叶子节点,b树只要匹配到即可不用管元素位置,因此b+树查找更稳定(并不慢);对于范围查找来说,B+树只要遍历叶子节点就可以实现整棵...

2020-05-02 00:04:30 877

原创 创建索引时候会考虑哪些因素?

哪些情况或字段适合加索引?在经常需要搜索的列上主键列上可以确保列的唯一性在表与表的而连接条件上加上索引,可以加快连接查询的速度在经常需要排序(order by),分组(group by)和的 distinct 列上加索引可以加快排序查询哪些情况不适合创建索引?查询中很少使用到的列很少数据的列定义为 text 和 image 和 bit 数据类型的列表的修改大大多于查询哪些情况会...

2020-05-02 00:03:49 2749

原创 数据库中的索引是指什么?

预读机制:当访问一个地址数据的时候,与其相邻的数据很快也会被访问到。基于磁盘IO预读机制,索引可以快速查询数据索引的本质是一张特殊的表 相当于目录索引表中关键字就是要查找的知识点,索引中的地址就是这个知识点对应的位置。...

2020-05-02 00:03:13 596

原创 MySQL数据库的优化的思路方式方法?

1数据库结构优化a建表的时候优化:列选择原则1字段类型优先级:整形>date,time->char varchar->text、blob2合理地设置字段大小够用就可以3尽量不要用text类型4尽量不用NULL() 索引NULL列需要额外的空间来保存5对于非负型的数据 (如整型 IP) 来说,要优先用无符号整型来存储 无符号占多出一倍。6同财务相关的金额类数...

2020-05-02 00:02:35 178

原创 什么是脏读、不可重复读、幻读?

1、脏读:事务A读到了事务B未提交的数据。2、不可重复读:事务A第一次查询得到一行记录row1,事务B提交修改后,事务A第二次查询得到row1,但列内容发生了变化。3、幻读:事务A第一次查询得到一行记录row1,事务B提交修改后,事务A第二次查询得到两行记录row1和row2。...

2020-05-02 00:01:49 158

原创 事务的ACID特性是什么?

原子性:操作要不全部完成 要不就不全部不完成一致性:对数据可见性的约束,中间状态数据不可见,开始与结束状态的数据对外可见。隔离性:事务与事务互不影响。持久性:数据可以持久化到数据库中,不会被回滚。...

2020-05-02 00:01:17 680

原创 Mysql 常用的存储引擎有什么?

MyISAM存储引擎 InnoDB存储引擎(MySQL5.5后的默认) MEMORY存储引擎1MyISAM 更适合读密集的表,不支持事务,用的是表锁而 InnoDB 更适合写密集的的表,支持事务,行级锁(并发效率高)在数据库做主从分离的情况下,经常选择MyISAM 作为主库的存储引擎。2可使用 MEMORY 来存储非永久需要的数据,或能够从基于磁盘的表中重新生成的数据。MEMORY(...

2020-05-02 00:00:52 294

原创 说一下Mysql 的执行流程?

其实就是说架构图,总的来说是 客户端->server层->存储引擎->取数据。server层中是连接器->分析器->优化器->执行器->存储引擎 而 连接器后先进行查询缓存。...

2020-05-02 00:00:07 119

原创 说一下 MySQL的三大范式?

第一范式:表中不能出现重复的记录,每个字段是原子不可分第二范式:在第一范式基础上,非主键字段要完全依赖主键。第三范式:在第二范式基础上,非主键字段不能传递依赖主键字段。学生编号(PK)<-班级编号 <-班级名称 XXX...

2020-05-01 23:58:37 191

原创 mybatis中的当实体类中的属性名和表中的字段名不一样 ,怎么办 ?

第 1 种: 通过在查询的 sql 语句中定义字段名的别名,让字段名的别名和实体类的属性名一致。第 2 种: 通过来映射字段名和实体类属性名的一一对应的关系。...

2020-05-01 23:57:39 370

原创 Mybaits 的优点与缺点?

优点:1基于SQL语句编程,灵活。2与JDBC相比,消除了 JDBC 大量冗余的代码,有统计说是50%,不需要手动开关连接。3很好的与各种数据库兼容(MyBatis 用 JDBC 连接数据库,所以只要 JDBC 支持的数据库 MyBatis都支持)4能够与 Spring 很好的集成;缺点:(1)SQL 语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写 SQL 语句的功底有...

2020-04-30 00:06:21 351

原创 MyBatis 与 与 Hibernate 有哪些不同?

Hibernate 是完全的 ORM 框架,Mybattis 是半 ORM 框架。Hibernate 对于业务简单的项目开发效率比较高,因为他对于单表的操作开发更高效。Mybatis 对于业务复杂的项目要更优先使用,因为他的 sql 编写更灵活。Hibernate 学习成本要比 Mybatis 高,Mybatis 使用更为简单。...

2020-04-30 00:05:50 105

原创 mybaits 动态sql?

sql语句拼接,使得一个方法适应多种操作Where标签:代替sql中的where关键字,自动忽略where标签中的第一个and或者是or条件连接符If标签:可以对参数进行判断,灵活拼接sql语句(if中还可以使用当前数据类型的方法)Set标签:它代替sql语句中的set关键字,而且会忽略最后成立条件的分隔符逗号Foreach标签(循环—批量操作): 可以遍历传递的参数为集合类型的方法,批量...

2020-04-30 00:05:08 89

原创 MyBatis中的$和#区别?

#{}: 占位符 PreparedStatement sql较为简洁,避免sql注入风险:字符串拼接Statement,拼接字符串sql语句较为繁琐,sql注入风险。注意:1、如果参数为简单类型时,{}: 字符串拼接 Statement,拼接字符串sql语句较为繁琐,sql注入风险。注意:1、如果参数为简单类型时,:字符串拼接Statement,拼接字符串sql语句较为繁琐,sql注入风险。...

2020-04-30 00:04:24 98

原创 MyBatis中的Mapper动态代理遵循的规则?

①.接口方法名与映射文件中Mapper.xml中id名一致。②.返回值类型与Mapper.xml文件中返回值类型一致③.方法的入参类型与Mapper.xml中的入参的类型一致④.命名空间 绑定此接口...

2020-04-30 00:03:42 364

原创 MyBatis执行流程运行原理?

1、通过流加载 配置文件2、通过创建SqlSessionFactoryBuilder工厂调用build()方法获取流返回的是一个SqlSessionFactory接口对象3、调用sqlSessionFactory的openSession();方法,返回的是一个SqlSession接口对象4、调用sqlSession的getMapper方法,通过反射获取对象,返回的是一个具体的接口对象5、调...

2020-04-30 00:03:06 171

原创 SqlSession级别是什么意思?mapper范围级别又是什么意思?

SqlSession级别是什么意思?在同一个SqlSession中,执行相同的查询SQL,第一次会去查询数据库,并写到缓存中;第二次直接从缓存中取。当执行SQL时两次查询中间发生了增删改操作,则SqlSession的缓存清空。mapper范围级别又是什么意思?在同一个namespace下的mapper文件中,执行相同的查询SQL,第一次会去查询数据库,并写到缓存中;第二次直接从缓存中取。当执...

2020-04-30 00:02:10 2168

原创 MyBatis缓存机制是什么?

mybatis 一级缓存是 SqlSession 级别的缓存,默认支持一级缓存,不需要在配置文件去配置。mybaits 的二级缓存是 mapper 范围级别,除了在 SqlMapConfig.xml 设置二级缓存的总开关<settingname=‘cacheEnabled’ value=‘true’/>还要在具体的 mapper.xml 中开启二级缓存:<mappername...

2020-04-30 00:01:24 260

原创 SpringMVC 与 与 Struts2 的区别?

springmvc 的入口是一个 servlet 即前端控制器,而 struts2 入口是一个 filter 过虑器。springmvc 是基于方法开发,传递参数是通过方法形参,可以设计为单例或多例(建议单例),struts2 是基于类开发,传递参数是通过类的属性,只能设计为多例。Struts 采用值栈存储请求和响应的数据,通过 OGNL 存取数据。 springmvc 通过参数解析器是将 r...

2020-04-30 00:00:44 101

原创 SpringMVC有那些组件?

前端控制器DispatcherServlet处理器映射器HandlerMapping处理器适配器HandlerAdapter处理器Handler(需要工程师开发)视图解析器View resolver视图View

2020-04-29 23:59:59 315

原创 SpringMVC 的实现原理?

用户发送请求至前端控制器-调用处理器映射器-生成处理器对象-返回前端控制器-处理适配器-调用具体的处理器Controller返回一个ModelAndView给前端控制器-调用视图解析器-视图渲染-响应用户.1、用户发送请求至前端控制器 DispatcherServlet。2、 DispatcherServlet 收到请求调用 HandlerMapping 处理器映射器。3、处理器映射器找到具...

2020-04-29 23:59:03 371

原创 说一下你对MVC的理解?

MVC是Model—View—Controler的简称。即模型—视图—控制器。MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。MVC中的模型、视图、控制器它们分别担负着不同的任务。Model:处理业务逻辑的模块。如service dao entityView:负责页面显示,显示Model的处理结果给用户,主要实现数据到页面的转换过程。 如 jspController:负...

2020-04-29 23:58:28 1975

原创 Spring 中体现的设计模式?

工厂设计模式 : Spring 使用工厂模式通过 BeanFactory、ApplicationContext 创建 bean 对象。代理设计模式 : Spring AOP 功能的实现。单例设计模式 : Spring 中的 Bean 默认都是单例的。模板方法模式 : Spring 中 jdbcTemplate、hibernateTemplate 等以 Template 结尾的对数据库操作的类...

2020-04-29 23:57:49 141

原创 spring中不同的隔离级别有不同的数据一致性问题?

脏读 :表示一个事务能够读取另一个事务中还未提交的数据。比如,某个事务尝试插入记录 A,此时该事务还未提交,然后另一个事务尝试读取到了还未提交的数据A。不可重复读 :是指在一个事务内,多次读同一数据。幻读 :指同一个事务内多次查询返回的结果集不一样。比如同一个事务 A 第一次查询时候有 n 条记录,但是第二次同等条件下查询却有 n+1 条记录,产生了幻觉。发生幻读的原因也是另外一个事务新增或者...

2020-04-29 23:57:25 318

原创 spirng中七个事务传播行为是什么?

① PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务就加入该事务,该设置是最常用的设置。② PROPAGATION_SUPPORTS:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就以非事务执行。③ PROPAGATION_MANDATORY:支持当前事务,如果当前存在事务,就加入该事务,如果当前不存在事务,就抛出异常。④ P...

2020-04-29 23:56:46 130

原创 spring五个事务隔离级别是什么?

这些常量均是以 ISOLATION_开头。即形如 ISOLATION_XXX。DEFAULT:采用 DB 默认的事务隔离级别。MySql 的默认为 REPEATABLE_READ(可重复读);Oracle默认为 READ_COMMITTED。(读已提交)READ_UNCOMMITTED:读未提交。未解决任何并发问题。READ_COMMITTED:读已提交。解决脏读,存在不可重复读与幻读。...

2020-04-29 23:56:06 1020

原创 Spring如何管理事务(四种方式)?

(1)编程式事务管理对基于 POJO 的应用来说是唯一选择。我们需要在代码中调用beginTransaction()、commit()、rollback()等事务管理相关的方法,这就是编程式事务管理。(2)基于 TransactionProxyFactoryBean的声明式事务管理(3)基于 @Transactional 的声明式事务管理(4)基于Aspectj AOP配置事务...

2020-04-29 23:55:28 986

背诵简历-专业技能.pdf

java背诵简历-专业技能-背完就是10k 简历上的专业技能填写: 1. 具备扎实的Java基础,深入理解OOP编程思想,具有良好的编码习惯 2. 熟悉Spring、SpringMvc、Mybatis、SpringBoot等主流框架,有基于SSM开发项目的经验 3. 熟悉MySQL的数据库操作,了解基本的MySql数据库优化 4. 熟悉redis、了解Oracle、MongoDB等数据库 5. 熟悉Junit、Debug进行项目测试 6. 熟悉 Idea 和 Eclipse 等开发工具 7. 熟悉 Git、Maven 等项目版本管理及构建工具 8. 熟悉Linux服务器常见的操作指令,了解Tomcat、Nginx服务器部署 9. 熟悉H5、CSS、JavaScript、Jquery、Ajax、AngularJS等前端应用技术 10. 了解分布式系统构建,接触过Dubbo、SpringCloud分布式管理框架 11. 了解shiro,SpingSecurity等安全框架

2020-04-22

空空如也

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

TA关注的人

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