自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 HashMap、Hashtable、ConcurrentHashMap的原理与区别

jdk1.8发生了一些改变,请参看最新版:http://yuanrengu.com/2020/ba184259.html如果你去面试,面试官不问你这个问题,你来找我_下面直接来干货,先说这三个Map的区别:HashTable底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化初始size为11,扩容:newsize = olesize*2+1计算ind

2020-10-28 10:41:10 208

原创 手把手教你—HashMap底层原理

手把手教你—HashMap底层原理前言HashMa是Java中最常用的集合类框架,也是Java语言中非常典型的数据结构,同时也是我们需要掌握的数据结构,更重要的是进大厂面试必问之一。HashMap底层数据类型:Java1.8前:数组 + 链表;Java1.8后:数组 + 链表 + 红黑树;那么我要知道数组和链表是什么?数组特点存储区间是连续,且占用内存严重,空间复杂也很大,时间复杂为O(1)。优点:是随机读取效率很高,原因数组是连续(随机访问性强,查找速度快)。缺点:插入和删除数据效率低

2020-09-22 22:33:39 876

原创 Java里try、catch、finally中有return的执行顺序

try、catch、finally的执行顺序异常处理中,try、catch、finally的执行顺序,大家都知道是按顺序执行的。即,如果try中没有异常,则顺序为try→finally,如果try中有异常,则顺序为try→catch→finally。但是当try、catch、finally中加入return之后,就会有几种不同的情况出现,下面分别来说明一下。也可以跳到最后直接看总结。一、try中带有return 1 private int testReturn1() { 2

2020-09-16 12:19:40 197

原创 大专生可以当程序员吗?

经过疫情,没事在家自己沉思了许多。

2020-04-02 10:47:56 3586 2

原创 【无标题】

static关键字

2022-02-16 23:06:53 337

原创 HashMap解决冲突的四种方法

HashMap解决冲突的四种方法开放地址法拉链法再哈希如果发生冲突,就用另一个方法计算hashcode,两次结果值不一样就不会发生hash冲突;建立公共溢出区将哈希表分为基本表和溢出表两部分,凡是和基本表发生冲突的元素,一律填入溢出表。...

2020-10-27 16:59:16 718

原创 RabbitMQ消息中间件面试题

概述大家平时也有用到一些消息中间件(MQ),但是对其理解可能仅停留在会使用API能实现生产消息、消费消息就完事了。对MQ更加深入的问题,可能很多人没怎么思考过。比如,你跳槽面试时,如果面试官看到你简历上写了,熟练掌握消息中间件,那么很可能给你发起如下 4 个面试连环炮!1、为什么要使用MQ?2、使用了MQ之后有什么优缺点?3、怎么保证MQ消息不丢失?4、怎么保证MQ的高可用性?本文将通过一些场景,配合着通俗易懂的语言和多张手绘彩图,讨论一下这些问题。为什么要使用MQ?相信大家也听过这样的

2020-10-27 16:46:58 641 2

原创 Quartz定时任务的使用

https://blog.csdn.net/weixin_42392859/article/details/85525248

2020-10-19 11:00:20 88

原创 接口和抽象的区别

接口:定义:为了解决让没有继承关系的累也共享行为。接口关注的是行为。语法public interface ame{ public static final int FIELD_A = 10; static final int FIELD_A = 10; final int FIELD_A = 10; int FIELD_A = 10;}就算不写public static final也会默认为公共静态常量1、接口的属性只能是公共 静态 常量2、接口

2020-10-15 11:36:56 286 1

原创 HashMap和HashTable的区别

相同点:1、实现原理相同,功能相同,底层都是哈希表结构,查询速度快,在很多情况下可以互用2、都是现了Serializable接口,因此支持序列化,实现了Cloneable接口,能被克隆。不同点:1、Hashtable是早期提供的接口,HashMap是新版JDK提供的接口。2、Hashtable继承Dictionary类,HashMap实现Map接口。3、Hashtable线程安全,HashMap线程非安全。4、Hashtable不允许null值,HashMap允许null值。 收起底层详细信

2020-10-15 11:05:04 65

原创 Reids集群

https://www.cnblogs.com/vieta/p/11192137.html

2020-10-14 16:14:42 56

原创 2020年面试题汇总

面试题汇总1、== 和 equals()的区别:2、垃圾回收机制:3、三层架构中的service是怎么样抽取出来的:4、IO流的分类:5、try、catch、finally:6、List、Map:7、构造方法的作用:8、笛卡尔积:9、string stringBuilder、stringBuffer:10、自动封装和自动拆箱:11内连和外连的区别;12、arraylsit和LinkList的区别:13、java为什么单继承:14、抽象和接口的区别:15、this和super的区

2020-09-29 18:03:48 170

原创 MySql的事务四大特性以及事务的四个隔离级别

什么是事务?事务的四个特性以及事务的隔离级别什么是事务事务是指是程序中一系列严密的逻辑操作,而且所有操作必须全部成功完成,否则在每个操作中所作的所有更改都会被撤消。可以通俗理解为:就是把多件事情当做一件事情来处理,好比大家同在一条船上,要活一起活,要完一起完 。事物的四个特性(ACID)一、 原子性(Atomicity):操作这些指令时,要么全部执行成功,要么全部不执行。只要其中一个指令执行失败,所有的指令都执行失败,数据进行回滚,回到执行指令前的数据状态。eg:拿转账来说,假设用户A和用户

2020-09-29 17:29:03 240

原创 Collection和Collections的区别

一、Collectionjava.util.Collection 是一个 集合框架的父接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└Set二、CollectionsCollections则是集合类的一个工具类/帮助类,其中提供了一系列静态方

2020-09-29 16:47:13 129

原创 mybatis中“#{}“和“${}“的区别

前言动态 sql 是 mybatis 的主要特性之一,在 mapper 中定义的参数传到 xml 中之后,在查询之前 mybatis 会对其进行动态解析。mybatis 为我们提供了两种支持动态 sql 的语法:#{} 以及 ${} 。#{ }1、#相当于对数据 加上 双引号,$相当于直接显示数据。2、#{} : 根据参数的类型进行处理,比如传入String类型,则会为参数加上双引号。#{} 传参在进行SQL预编译时,会把参数部分用一个占位符 ? 代替,这样可以防止 SQL注入。${ }3、${

2020-09-24 09:55:58 647

原创 @Controller和@RestController的区别

@Controller和@RestController的区别区别:@Controller:使用@Controller注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面若返回json等内容到页面,则需要加@ResponseBody注解。@RestController:相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能

2020-06-15 14:14:13 108

原创 事务

一.事务的4个特性:原子性(Atomicity): 一个事务中所有对数据库的操作是一个不可分割的操作序列,要么全做,要么全部做。(事务最基本的操作单元,要么全部成功,要么全部失败,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。 )一致性(Consistency): 数据不会因为事务的执行而遭到破坏。(事务的一致性指的是在一个事...

2019-12-08 16:20:38 121

原创 Quartz

Quartz是一个完全由java编写的开源作业调度框架,为java应用程序中进行作业调度提供了简单却强大的机制作用:1、想每月25号,信用卡自动还款2、想每隔一小时,备份一下自己的学习笔记到云盘3、淘宝定时秒杀活动核心概念:**Job:**任务:定义具体执行的任务逻辑**JobDetail:任务详情:**定义一个可执行的调度程序,Job是这个可执行程调度程序所要执行的内容(支持线程...

2019-12-03 15:07:28 339

原创 微服务

微服务微服务架构市一中架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API)。每个服务都围绕这具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。四大特点:应用按业务拆分成服务各个服务均可以独立部署服务可被多个...

2019-11-29 18:25:23 99

原创 JDBC

什么是JDBC?JDBC是Java Data Base Connectivity的缩写,Java数据库连接技术的简称。是一种用于执行SQL语句的JavaAPI,提供连接各种常用数据库的能力。JDBC API:主要功能是与数据库建立连接、执行SQL 语句、处理结果。内容:供程序员调用的接口与类,集成在java.sql和javax.sql包中,如:DriverManager类:依据数据库...

2019-11-29 15:47:07 98

原创 ElasticSearch搜索引擎

ElasticSearch搜索引擎数据的分类:结构化数据非结构化数据 ——顺序搜索、全文检索三大主流全文检索引擎产品LucenceSolrElasticSearchElasticSearch简介是一个基于Lucene构建的RESful全文搜索引擎是在Solr之后几年推出的,他提供了一个分布式、多租户能力的全文搜索引擎,具有HTTP WEB界面和无架构JSON文档...

2019-11-29 15:42:41 111

原创 ActiveMQ嘻消息队列

ActiveMQ什么是中间件(分布系统服务)中间件是一种独立的系统软件或服务程序,分分布式应用软件借助这种软件在不同的技术之间共享资源(就是一个功能较全的半成品)什么事消息队列是一种中间件,是分布式系统中重要的组件,主要解决应用耦合,异常处理,流量销风锋等问题,实现高性能,高可用,可伸缩和最终一致性架构;消息队列常见产品:KafKaActiveMQMetaMQRabbitMQR...

2019-11-29 11:20:12 62

原创 Redis

RedisNoSQL和关系数据库关系数据库的不足:不能有效处理多维数据;高并发读写性能低;支持容量有限;数据库的可扩展性和可用性低;NoSQL数据库的优势——关注存储易扩展大数据量高性能Redis是Key-Value存储系统,它支持存储的value类型相对更多,包括string、list、set、zset(有序集合)一、string类型:Redis的string...

2019-11-28 17:52:41 121

原创 MySQL数据库主从复制技术

MySQL数据库主从复制技术Mysql数据库支持的主从复制方式如下:异步复制:Myslql默认的复制是异步的。(速度快,易数据丢失)全同步复制:半同步复制:MySQL数据库分区技术将数据库中大表(如1000万行记录)和大索引分为更下的操作单元分库再分表,大表拆小表垂直分区:分字段水平分区:数据分开MySQL数据库是水平分区水平分区方法:RANGE分区:比如年龄在197...

2019-11-28 15:28:04 315

原创 Log4j

Log4j有三个主要部件组成:记录器 ——写字的笔输出源 ——写字的地方布局 ——写字的格式

2019-11-01 16:43:26 155 2

原创 单元测试

单元测试软件工程将软件测试分为: 单元测试 集成测试 功能测试 系统测试开发人员职责:单元测试、集成测试(白盒测试)测试人员职责:功能测试、系统测试(黑盒测试)单元测试:单元测试是开发人员编写的一小段代码,用于检验目标代码的一个很小的,很明确的功能是否正确。集成测试:集成测试是在功能模块开发完成后,为验证功能模块之间匹配调用的正确性而进行的测试。功能测试:系统测试:...

2019-11-01 15:14:55 120

原创 Spring框架

Spring框架Spring是分层的JavaEE应用一站式的轻量级开源框架,以控制反转(Inverse of Control,IoC)和面向切面编程(AOP)为内核,提供了表现层SpringMVC、持久层Spring JDBC以及业务层事务管理等众多的企业及应用技术。Spring 的使命:简化Java的开发Spring的特点:1、方便解耦,简化开发(核心) ------简化开发通...

2019-10-30 18:44:32 348

原创 AJAX

AJAX是异步Js和xml,他不是一门新的语言或技术,他实际上是几项技术按一定的方式组合在一起共同的协议中发挥各自的作用。简单地说:AJAX是一种Web交互的新方法。AJAX技术包含了js、XML、CSS、XSTL DOM HTML/XHTML和AJAX的五大特点不需要刷新页面就可以改变页面的内容,减少用户等待的时间;改善表单验证方式,不需要打开新页面,也不再需要将整个页面数据提交;...

2019-10-28 14:44:57 114

原创 什么是REST

什么是REST表述性状态转移,分布式超媒体软件的一种架构风格是一套简单的设计原则、一种架构风格(或模式),不是一种具体的标准和架构。资源任何事物,只要有被引用的必要,就是一个资源(resource)。它可以是一个事物,也可以是一个抽象的概念。万物皆资源`REST约束和风格URL表示资源CRUD操作状态表示转移无状态服务Http状态码Cache控制ProxyREST核心是构...

2019-10-28 13:39:52 237

原创 final关键字

final关键字**一、final修饰类1、被final修饰的类不能再被继承2、 类的所有方法会被隐式的设置为final类型,成员变量不会被隐式设置3、使用:除非真的该类需要设置为不能被继承,否则需要谨慎设置final类二、final修饰方法1、只有在防止子类继承的情况下需要将方法设置为final类型,现在的版本与性能无关(之前性能会加快)。2、被private修饰的方法,会被隐式的...

2019-10-27 20:47:50 70

原创 面试题2

1. JSP 和 Servlet 有哪些相同点和不同点,他们之间的联系是什么?JSP 是 Servlet 技术的扩展,本质上是 Servlet 的简易方式,更强调应用的外表表达。JSP 编译后是"类 servlet"。 Servlet 和 JSP 最主要的不同点在于, Servlet 的应用逻辑是在Java 文件中,并且完全从表示层中的 HTML 里分离开来。而 JSP 的情况是 Java ...

2019-10-23 21:13:25 94

原创 Spring MVC框架

Spring MVC框架WEB开发核心思想:模型与试图相分离控制逻辑与业务逻辑相分离试图选择与具体试图技术相分离非侵入式开发(尽量少使用框架特定API),易于测试。1、含义:Spring MVC 是Spring框架的WEB组件,它是一种基于Java实现Web MVC的轻量级Web框架2、Spring MVC的特点如下:天生与Spring框架集成(如Ioc容器、Aop)进行更简洁...

2019-10-23 18:16:13 216

原创 面试题

1、谈一谈你对MVC架构模式的理解?MVC是Model—View—Controler的简称。即模型—视图—控制器。MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。MVC中的模型、视图、控制器它们分别担负着不同的任务。视图: 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进行任何业务逻辑处理。模型: 模型表示业务数据和业务处理。相当于Ja...

2019-10-22 22:53:28 244

原创 代码重构理解

代码重构:(code refactor)就是在不改变软件系统外部行为的前提下,改善其内部结构为何做代码重构:延续项目声明周期,适应需求更变,加深理解代码提高自我编程能力;为何做代码重构:代码中存在大量重复代码、过多的类和过长方法、代码耦合度太高、缺少必要的注解和调试日志,导致修改和维护的成本不断提高,甚至威胁到项目的生命周期。...

2019-10-17 10:50:24 165

原创 MyBatis

myBatisORMORM映射基本原则数据源(POOLED)数据源是一种提高数据库连接性能的常规手段,数据源负责维持一个数据连接池,当程序创建数据源实例时,系统会一次性的创建多个数据库连接,并把这些数据库连接保存在连接池中。当程序需要进行数据库访问时,无须进行重新获取数据库连接,而是从连接池中取出一个空闲的数据库连接。当程序使用数据库连接访问数据库结束后,无须关闭数据库连接,而是将数据库...

2019-10-16 18:12:12 158

原创 session和cookie的区别和联系

session和cookie的区别和联系一、会话的概念   会话就好比打电话,一次通话可以理解为一次会话。我们登录一个网站,在一个网站上不同的页面浏览,最后退出这个网站,也是一个会话。一个网站对于不同的用户会展示出不同的页面信息,但是在HTTP协议中,客户端请求服务端是一种无状态的连接-每次请求都是独立的请求,服务器怎么分辨这些请求是哪个用户发出的请求呢?如果不能分辨哪个用户发出的请求,就不...

2019-10-11 13:43:26 155

原创 什么是内置对象?

什么叫内置对象?在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创建就会特别的繁琐.SUN公司因此在设计jsp时,在jsp页面加载完毕之后自动帮开发者创建好了这些对象,开发者只需要使用相应的对象调用相应的方法即可.这些系统创建好的对象就叫做内置对象.在servlet程...

2019-10-08 19:27:04 3095

原创 JSP九大内置对象及其作用+四大域对象

什么叫做内置对象?在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创建就会特别的繁琐.SUN公司因此在设计jsp时,在jsp页面加载完毕之后自动帮开发者创建好了这些对象,开发者只需要使用相应的对象调用相应的方法即可.这些系统创建好的对象就叫做内置对象.在servlet...

2019-10-08 19:25:23 661

原创 三层和MVC的区别

三层架构和MVC的区别1. 两者的详细解释:三层是: 一种软件架构界面层(UI)业务逻辑层(BLL)数据库访问层(DAL)相同的设计理念:把视图设计与数据持久化进行分离,从而降低耦合性,易于扩展,提高团队开发效率。相同的核心:分层、解耦三层架构中,DAL、BLL、WEB层各司其职,意在职责分离。MVC是:一种设计模式M Model(模型层) ———— 业务逻辑以及数...

2019-10-08 17:16:55 553

原创 重定向和请求转发

重定向和请求转发:1、请求转发和重定向的作用:在java后台servlet中,实现由一个servlet跳转到另一个servlet/jsp要使用的技术。2、前端发送请求到后台的方式:a.浏览器地址输入链接。b.a标签  <a href=“URL 地址”>跳转`</a>c.form表单  <form action=“URL地址” method=“get/pos...

2019-09-30 14:15:10 422

空空如也

空空如也

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

TA关注的人

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