- 博客(44)
- 收藏
- 关注
原创 JDK1.8 HashMap扩容
说在前边JDK1.8中的HashMap较于前代有了较大的变更,主要变化在于扩容机制的改变。在JDK1.7及之前HashMap在扩容进行数组拷贝的时候采用的是头插法,因此会造成并发情景下形成环状链表造成死循环的问题。JDK1.8中改用了尾插法进行数组拷贝,修复了这个问题。同时JDK1.8开始HashMap改用数组+链表/红黑树组合的数据结构来提高查询效率,降低哈希冲突产生的链表过长导致的查询效率减缓现象。本文的主要内容是对JDK1.8中的扩容机制与前代进行比较,分析其异同。准备数组大小的计算在JDK
2021-03-28 18:34:05
1769
原创 JDK1.6中的HashMap扩容
JDK1.6中的HashMap扩容说在前边JDK1.8之前的HashMap采用数组加链表的方式存储数据。因为手头暂时找不到JDK1.7的源码包,而在1.8之前1.6和1.7的HashMap源码并没有太大的不同,就用1.6代替吧。扩容简介HashMap是会在放入新元素后根据元素的总个数与当前数组长度之间的关系动态调整数组长度进行扩容操作的(仿佛是在放屁一样的废话)。这个元素个数与数组长度的关系在代码里被定义为threshold,它由数组的长度与负载因子loadFactor相乘得出(也可手动设置)。数组
2021-03-28 01:42:03
293
原创 Docker
Docker1. Docker概述1.1 Docker简介Docker 是一个开源的应用容器引擎,基于 Go 语言开发。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。Docker应用场...
2020-04-04 20:22:10
546
原创 Spring Cloud-day02
1. Feign应用目标:Feign的作用;使用Feign实现consumer-demo代码中调用服务分析:导入启动器依赖;开启Feign功能;编写Feign客户端;编写一个处理器ConsumerFeignController,注入Feign客户端并使用;测试小结:Feign主要作用:自动根据参数拼接http请求地址。启动器依赖; <depende...
2020-03-31 23:52:10
224
原创 Spring Cloud-day01
1. 系统架构演变概述目标:了解项目架构的演变历程小结:集中式架构垂直拆分分布式服务SOA面向服务架构微服务架构2. 微服务架构说明目标:了解SOA与微服务架构的区别以及说出微服务架构的特点分析:SOA使用了ESB组件的面向服务架构:ESB自身实现复杂;应用服务粒度较大,所有服务之间的通信都经过ESB会降低通信速度;部署、测试ESB比较麻烦。小结:微服务架构:是一套使用小服务或者...
2020-03-30 21:07:29
258
原创 RabbitMQ-day02
1.今日内容RabbitMQ 高级特性消息可靠性投递Consumer ACK消费端限流TTL死信队列延迟队列日志与监控消息可靠性分析与追踪管理RabbitMQ应用问题消息可靠性保障消息幂等性处理RabbitMQ集群搭建RabbitMQ高可用集群2.消息可靠投递-Confirm在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失...
2020-03-29 19:16:43
314
原创 RabbitMQ-day01
0. 学习目标能够说出什么是消息中间件能够安装RabbitMQ能够编写RabbitMQ的入门程序能够说出RabbitMQ的5种模式特征能够使用Spring整合RabbitMQ1. 消息中间件概述1.1. 什么是消息中间件MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。为什么使用MQ在项目中,可将一些无需即时返回且耗时的操作提取出来,进行...
2020-03-27 23:14:39
255
原创 SpringBoot-day02
01-SpringBoot高级-今日内容(01:08)SpringBoot自动配置SpringBoot事件监听SpringBoot流程分析SpringBoot监控SpringBoot部署02-SpringBoot自动配置-Condition-1(16:36)需求:导入jedis坐标后,创建User这个bean。如果没有导入,不创建思路:问题1:怎么通过条件判断的方式,选择性...
2020-03-26 13:48:23
304
原创 Springboot-day01
01-今日内容Spring概述、快速入门SpringBoot配置SpringBoot整合02-SpringBoot概述SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率SpringBoot功能1) 自动配置Spring Boot的自动...
2020-03-24 22:05:17
435
原创 Git分布式版本控制工具笔记
01-Git概述(Git历史)Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。到了 2005 年,开发 BitKeeper 的商业公司同 Linu...
2020-02-28 21:04:54
361
原创 Apache Dubbo笔记
01-课程内容介绍软件架构的演进过程Apache Dubbo概述服务注册中心ZookeeperDubbo快速入门Dubbo管理控制台Dubbo相关配置说明解决Dubbo无法发布被事务代理的Service问题dubbo优化后的代码:https://github.com/itheimaxia/dubbo-demo软件架构的发展经历了由单体架构、垂直架...
2020-02-27 19:54:38
232
原创 Maven高级笔记
01-maven基础知识回顾1.1 maven介绍maven (gradle)是一个项目管理工具,主要作用是在项目开发阶段对Java项目进行依赖管理和项目构建。依赖管理:就是对jar包的管理。通过导入maven坐标,就相当于将仓库中的jar包导入了当前项目中。项目构建:通过maven的一个命令就可以完成项目从清理、编译、测试、报告、打包,部署整个过程。1.2 maven的仓库类型...
2020-02-27 19:40:46
597
原创 Vue
1. Vue概述前端演变的过程1.随着JavaScript的诞生,我们可以操作页面的DOM元素及样式,页面有了一些动态的效果,但是依然是以静态为主。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</titl...
2020-02-27 19:24:24
260
原创 nodejs&es6
Node.js & ES61. Nodejs概述目标:Node.js用途;安装Node.js小结:1) nodejs 安装2) 验证 > node -v 3) 什么是NodeJS(理解)javaEE 可以使用Request,Respose **“接受参数处理业务逻辑,返回数据”**等操作,所以我们可以把我们写的java代码部署在tomcat 上运行,变成一个服务器...
2020-02-20 20:36:02
560
原创 mybatis-day03笔记
Mybatis-day_031.Mybatis多表查询1.1 一对一查询1.1.1 一对一查询的模型用户表和订单表的关系为,一个用户有多个订单,一个订单只从属于一个用户一对一查询的需求:查询一个订单,与此同时查询出该订单所属的用户1.1.2一对一查询的语句对应的sql语句:select * from orders o,user u where o.uid=u.id;查询的结果如...
2020-02-19 20:44:20
176
原创 mybatis-day02笔记
Mybatis-day_021.Mybatis的Dao层实现1.1 传统开发方式1.1.1编写UserDao接口public interface UserDao { List<User> findAll() throws IOException;}1.1.2.编写UserDaoImpl实现public class UserDaoImpl implements U...
2020-02-16 19:40:30
223
原创 mybatis-day01笔记
Mybatis-day_011.Mybatis简介1.1原始jdbc操作(查询数据)1.2原始jdbc操作(插入数据)1.3 原始jdbc操作的分析原始jdbc开发存在的问题如下:①数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能②sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动需要改变java代码。③查询操作时,需要手动将结...
2020-02-15 19:19:42
275
原创 springmvc_day03
springMVC_day03SpringMVC的文件上传1-SpringMVC的请求-文件上传-客户端表单实现(应用)文件上传客户端表单需要满足:表单项type=“file”表单的提交方式是post表单的enctype属性是多部分表单形式,及enctype=“multipart/form-data”<form action="${pageContext.request.con...
2020-02-13 22:21:39
164
原创 springmvc_day02
SpringMVC_day02-请求和响应SpringMVC的数据响应01-SpringMVC的数据响应-数据响应方式(理解)页面跳转直接返回字符串通过ModelAndView对象返回2) 回写数据直接返回字符串返回对象或集合02-SpringMVC的数据响应-页面跳转-返回字符串形式(应用)03-SpringMVC的数据响应-页面跳转-返回ModelAndView形式1...
2020-02-13 22:13:35
153
原创 springMVC-day_01
springMVC-day_011. Spring与Web环境集成1.1 ApplicationContext应用上下文获取方式应用上下文对象是通过new ClasspathXmlApplicationContext(spring配置文件) 方式获取的,但是每次从容器中获得Bean时都要编写new ClasspathXmlApplicationContext(spring配置文件) ,这样的...
2020-02-10 18:58:29
259
原创 spring-day04_JdbcTemplate&声明式事务
Spring-day04_声明式事务01-JdbcTemplate基本使用-概述(了解)JdbcTemplate是spring框架中提供的一个对象,是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和HibernateTemplate,操作nosql数据库的RedisTemplate,操作消息队列的JmsT...
2020-02-08 20:28:41
204
原创 spring-day03_AOP
Spring-day03_AOP1.Spring 的 AOP 简介1.1 什么是 AOPAOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP 是 OOP 的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑...
2020-02-07 18:43:44
278
原创 Spring-day02_SpringIoC和DI注解开发
Spring-day02-注解开发&Junit的整合1.Spring配置数据源1.1 数据源(连接池)的作用数据源(连接池)是提高程序性能如出现的事先实例化数据源,初始化部分连接资源使用连接资源时从数据源中获取使用完毕后将连接资源归还给数据源常见的数据源(连接池):DBCP、C3P0、BoneCP、Druid等开发步骤①导入数据源的坐标和数据库驱动坐标②创建数据源对象...
2020-02-07 18:36:19
198
原创 Spring-day01_Quick_Start
Spring-day011. spring概述1.1 Spring是什么(理解)Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核。提供了展现层 SpringMVC和持久层 Spring JDBCTempla...
2020-02-07 18:33:37
155
原创 day29-Linux基础_02
day29-Linux基础_02课前命令1) 查看操作系统版本 getconf LONG_BIT 2) alt +P 进入 sftp 窗口可以 上传文件jdk1) 查看java 版本 java -version2) 查看已安装jdk 版本 rpm -qa | grep java3) 删除opendjdk rpm -e --nodeps java-1.6.0-openj...
2020-01-30 15:22:10
160
原创 day-28-Linux基础_01
day-28-Linux基础_011.1 今日知识点认识linux 并熟悉基本命令linux 教程https://www.runoob.com/linux/linux-command-manual.html1.2 今日目标• 能够说出Linux操作系统的优势及用途• 进行成功配置CentOS• 能够成功完成CentOS初始化配置• 记住使用cd命令• 熟练使用ls命令的使用...
2020-01-14 22:21:59
226
原创 day-12-maven
day-12-maven一、Maven概念1.什么是Maven1.1 举例案例一:问题:假如你正在使用idea开发两个Java项目,它们称为项目A、项目B,其中项目A中的一些功能依赖于项目B中的某些类,那么如何维系这种依赖关系的呢?解决办法需要用哪个项目中的哪些类,也就是用别人写好了的功能代码,导入jar包即可。所以这里也如此,可以将B项目打成jar包,然后在A项目的Librar...
2020-01-09 19:17:22
218
1
原创 day-11-Redis
day-11-Redis今日内容1. redis 1. 概念 2. 下载安装 3. 命令操作 1. 数据结构 4. 持久化操作 5. 使用Java客户端操作redis一、NOSQLredis是一款高性能的NOSQL系列的非关系型数据库缓存:缓存的目的,主要是解决低速IO和高速缓存(CPU高速缓存)之间的差异使用缓存的原则:二八原则:20%的热点数据放入缓存中,...
2020-01-08 20:16:33
154
原创 day-06-Filter&Listener
今日内容Filter:过滤器Listener:监听器一、Filter:过滤器1.什么是Filter过滤器生活中的过滤器净水器,空气净化器,土匪、香烟的过滤嘴、丈母娘web中的过滤器当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。过滤器的作用一般用于完成通用的操作。如:登录验证、统一编码处理、敏感字符过滤…2.Filter快速入...
2020-01-02 22:34:34
165
原创 day-05-EL&JSTL
day-05-EL&JSTL今日内容1. JSP: 1. 指令 2. 注释 3. 内置对象2. MVC开发模式3. EL表达式4. JSTL标签5. 三层架构一、JSP1.JSP指令用于配置JSP页面,导入资源文件格式:<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 ... %>分类:page : 配置JSP页面的* c...
2020-01-02 22:33:51
277
原创 day-04-Cookie&Session
day-04-Cookie&Session今日内容会话技术 1. Cookie 2. SessionJSP:入门学习一、会话技术1.什么是会话会话是在一次会话中包含多次请求和响应一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止2.会话的功能在一次会话的范围内的多次请求间,共享数据3.会话的方式1. 客户端会话技术:Cookie2...
2019-12-28 20:55:26
284
1
原创 day-03-Response
day-03-Response今日内容1. HTTP协议:响应消息2. Response对象3. ServletContext对象一、HTTP协议-响应消息服务器端发送给客户端的数据1. 响应行1. 组成:协议/版本 响应状态码 状态码描述2. 响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态。 1. 状态码都是3位数字 2. 分类: 1. 1xx:服务...
2019-12-25 18:27:13
213
原创 day-02-Servlet&httpRequest
day-02-Servlet&httpRequest今日内容:1. Servlet2. HTTP协议3. Request一、Servlet1.Servlet的体系结构Servlet -- 接口 | 实现GenericServlet -- 抽象类 | 继承 HttpServlet -- 抽象类* GenericServlet:将Se...
2019-12-24 20:44:07
635
原创 day-01-Tomcat&Servlet
day-01-Tomcat&Servlet今日内容1. web相关概念回顾2. web服务器软件:Tomcat3. Servlet入门学习一、 web相关概念回顾1.软件架构1. C/S:客户端/服务器端2. B/S:浏览器/服务器端2.资源分类1. 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源.静态资源可以直接被浏览器解析 * 如: html,...
2019-12-23 20:49:23
285
原创 day-06-XML
day-06-XML今日内容XML概念XML语法XML解析1. XML概念1.1 概念Extensible Markup Language 可扩展标记语言可扩展:标签都是自定义的。 1.2 功能常用于存储数据和配置文件数据的传输xml最大的功能就是用于配置文件1.2.1 xml与html的区别1. xml标签都是自定义的,html标签是预定义。2. xm...
2019-12-20 18:33:37
141
原创 day-05-Bootstrap
day-05-Bootstrap今日内容1. Bootstrap1. Bootstrap1.1 概念概念: 一个前端开发的框架,Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript 的,它简洁灵活,使得 Web 开发更加快捷。1.2 好处1. 定义了很多的css样式和js插件。我们开发人员直接可以...
2019-12-18 21:13:58
164
原创 day-04-JavaScript高级
day-05-JavaScript高级今日内容:BOMDOM事件1. DOM简单学习1.1 DOM的功能控制html文档的内容1.2 获取标签(元素):Elementdocument.getElementById("id值")// 通过元素的id获取元素对象1.3 操作Element对象修改属性值1. 明确获取的对象是哪一个?2. 查看API文档,找其中有哪些属...
2019-12-17 18:08:53
144
原创 day-03-JavaScript基础
day-03-JavaScript基础今日内容JavaScript概述JavaScript基本语法JavaScript数据类型JavaScript运行符JavaScript流程控制语句JavaScript基本对象1. JavaScript1.1 JavaScript概念1.1.1 JavaScript 简介一门客户端脚本语言 服务器端的脚本语言:python php ...
2019-12-14 17:59:39
206
原创 day05-JDBC数据库连接池&&JdbcTemplate
MySQL-day05-JDBC数据库连接池&&JdbcTemplate今日内容1. 数据库连接池2. JDBC Template1 数据库连接池1.1 数据库连接池概念其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。1.2...
2019-12-10 19:18:41
189
原创 MySQL_day04_JDBC基础应用
MySQL-day04-JDBC基础应用今日内容1. JDBC基本概念2. JDBC中各个接口和类详解3. JDBC增删改查(CRUD)语句4. JDBC工具类5. JDBC-登录案例6. PreparedStatement7. JDBC管理事务1. JDBC1.1 JDBC 概念Java DataBase Connectivity Java 数据库连接, Java语言操...
2019-12-09 21:27:45
179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人