自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

运算符重载之String

完成下列的 String 类,并在主函数 main( )中测试它。

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

原创 分布式系统设计和常用中间件总结和集群

分布式系统设计和集群1. 分布式概述2. 实现方法3. 集群4. 微服务5 高并发和多线程6 分布式系统设计理念6.1 目标6.2 设计思路6.2.1 中心化:6.2.2 去中心化:7 分布式和集群的区别是什么?8 CAP定理8 BASE理论9 中间件9.1 Redis9.1.1 应用场景9.1.2 数据类型9.1.3 模式9.1.4 持久化机制9.2 Zookeeper9.2.1 定义9.2.2 使用场景9.3 RabbitMQ 消息队列:有Erlang开发的AMQP的开源实现9.3.1 应用场景1.

2020-10-12 22:21:43 1000

原创 IDEA中使用Mybatis逆向工程(Maven插件)

IDEA中使用Mybatis逆向工程(Maven插件)1.在数据库中创建表2.创建Maven项目2.1 在pom.xml中添加插件2.2 编写resources目录下编写generatorConfig.xml文件3.配置Maven启动4.运行1.在数据库中创建表2.创建Maven项目2.1 在pom.xml中添加插件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM

2021-03-11 13:26:20 458

原创 Redis

Redis1. 什么是Redis及其重要性?2. 简述Redis常用的数据结构及其如何实现的?3. Redis的SDS和C中字符串相比有什么优势?4. Redis的字典是如何实现的?简述渐进式rehash过程5. 讲讲4.0之前版本的Redis的单线程运行模式5.1 单线程模式的考量5.2 Redis的文件事件和时间事件5.3 单线程模式中事件调度和执行6. 谈谈对Redis的反应堆模式的认识6.1 Reactor模式6.2 Reactor模式在Redis中的实现7. Redis是如何做持久化的及其基本原理

2020-11-23 18:25:29 1297 1

原创 Java虚拟机(JVM)

Java虚拟机(JVM)1 Java内存区域1.1 说一下 JVM 的主要组成部分及其作用?2. Java程序运行机制详细说明2.1Java程序运行机制步骤2.2 JVM 运行时数据区3深拷贝和浅拷贝4 说一下堆栈的区别?5 队列和栈是什么?有什么区别?6. 对象是怎么创建的?6.1 Java 中提供的几种对象创建方式:6.2下面是对象创建的主要流程:7 内存溢出异常7.1 Java会存在内存泄漏吗?请简单描述8. 垃圾收集器8.1简述Java垃圾回收机制8.2 GC是什么?为什么要GC8.3 垃圾回收的优

2020-11-23 17:31:34 215

原创 TCP/UDP

TCP/UDP1、UDP 和 TCP 的特点与区别2、UDP 、TCP 首部格式3、什么是 TCP 的三次握手和四次挥手?4、TCP 的三次握手(为什么三次?)5、TCP 的四次挥手(为什么四次?)6、TCP 短连接和长连接的区别7、TCP粘包、拆包及解决办法8、TCP 可靠传输9、TCP 滑动窗口10、TCP 流量控制11、TCP 拥塞控制12、提供网络利用率1、UDP 和 TCP 的特点与区别用户数据报协议 UDP(User Datagram Protocol)是无连接的,尽最大可能交付,没有拥塞

2020-11-20 10:47:16 427

原创 操作系统

操作系统1、为什么有了进程,还要有线程呢?2、简单说下你对并发和并行的理解?3、同步、异步、阻塞、非阻塞的概念4、进程和线程的相关题5、进程的状态转换6、进程间的通信方式有哪些?7、进程的调度算法有哪些?8、什么是死锁?9、产生死锁的原因?10、死锁产生的必要条件?11、解决死锁的基本方法?12、怎么预防死锁?13、怎么避免死锁?14、怎么解除死锁?15、什么是缓冲区溢出?有什么危害?16、物理地址、逻辑地址、线性地址17、分页与分段的区别?18 为什么使用多级页表19、页面置换算法有哪些?1、为什么有了

2020-11-20 10:38:56 693

原创 Spring SpringMVC

Spring SpringMVC1、基础概念1.1. 不同版本的 Spring Framework 有哪些主要功能?1.2. 什么是 Spring Framework?1.3. 列举 Spring Framework 的优点。1.4. Spring Framework 有哪些不同的功能?1.5. Spring Framework 中有多少个模块,它们分别是什么?1.6. 什么是 Spring 配置文件?1.7. Spring 应用程序有哪些不同组件?1.8. 使用 Spring 有哪些方式?2、依赖注入(I

2020-11-20 10:31:25 1177 1

原创 SpringBoot

Spring Boot1.什么是 Spring Boot?2.Spring Boot 有哪些优点?2. 配 置2.1什么是 JavaConfig?2.2Spring Boot 自动配置原理是什么?3.什么是 YAML?3.1 YAML 配置的优势在哪里 ?4.如何实现 Spring Boot 应用程序的安全性?4. 什么是 CSRF 攻击?5 Spring Boot 中的监视器是什么?5.1如何在 Spring Boot 中禁用 Actuator 端点安全性?5.2 我们如何监视所有 Spring Boot

2020-11-20 10:18:02 221

原创 下一排列

下一个序列1 题目描述2 解题思路3 代码实现1 题目描述实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,12 解题思路1》从后往前扫描,找出一个升序对2》若没有升序对,将其反转后输出3》若存在,则记录当前位置,

2020-11-10 15:06:46 144

原创 秒杀系统设计思路

秒杀系统设计1 秒杀系统的定义2 业务特点3 解决方案4 秒杀系统小结1 秒杀系统的定义网络是商家为促销等目的组织的网上限时抢购活动2 业务特点1>高并发:时间短,用户量大2>库存少3>业务简单,一般都是 下单,扣库存,支付订单4>恶意请求,数据库压力大。3 解决方案前端:页面资源静态化,使用按钮控制,使用答题校验码防止秒杀器的干扰。niginx: 校验恶意请求,转发请求,负载均衡,动静分离,不用Tomcat获取静态资源,gzip压缩,减少文件传输体积,节

2020-10-12 17:49:05 450 1

原创 Java中常用的设计模式(观察者,单例,工厂,装饰器)和代理模式

设计模式和JDK代理模式1.JDK中几个常用的设计模式?2 设计模式的定义,分类3 代理模式有哪些?1.JDK中几个常用的设计模式?1>单例模式:饿汉式,懒汉式,synchronized和volatile双重锁2>观察者模式 (时间监听)3>工厂模式:简单工厂模式,工厂模式,抽象工厂模式5>装修设计模式(用于多个Java I/O中)2 设计模式的定义,分类设计模式:是代码可用性的延伸。分类:创建型模式,行为型模式,结构型模式3 代理模式有哪些?静态代理

2020-10-12 17:07:06 384

原创 常用方法,面试考察点 :String StringBuilder和StringBuffer

1.常用方法1,字符串反转public String reverse(String s){ return new String(new StringBuffer(s).reverse());}2,将字符数组变为字符串new String(arr);3,String类型的数组strs不确定长度String...strs4,String遍历 String.charAt(i),返回为char类型String.valueOf(letter)返回字符等等5,String 的tr

2020-10-11 16:42:54 137

原创 Java中的应用正则表达式及正则表达式详解

1 .正则表达式Regular有规律的 Expression表达式正则表达式regex一个带有一定规律的表达式匹配字符串格式的正则表达式通常的作用如下:1.字符串的格式校验 String类中提供的一个方法 boolean = str.matches(“regex”);2.字符串的拆分及替换 String类中提供的方法replace split3.字符串的查找 Pattern模式 Matcher匹配器 [abc] abc其中的一个

2020-10-11 16:21:38 231 2

原创 JAVA运算符和原码,反码和补码互相转化

Java运算符1.Java运算符2.进制转化问题?3.位(bit)运算4原码 反码 补码 相互转化1.Java运算符 操作数的数目分类 单目 双目 三目 按照运算符的功能 算术运算 + - * / % ++ -- 赋值运算 = += -= *= /= %= 关系运算(比较) > >= < <= != ==

2020-10-11 16:14:10 345

原创 Java变量命名规范和计算机组成

java变量命名规范1 创建变量是 需要注意命名的问题2 计算机的硬件组成1 创建变量是 需要注意命名的问题命名的规则字母(大小写敏感) 数字(0-9不允许开头) 符号(英文符号 _ $) 中文(不推荐)命名的规约类名字 首字母大写 如果两个以上的单词 所有首字母都大写 SuperPerson变量名 首字母小写 如果两个以上的单词 之后的首字母大写 superPerson遵循驼峰式命名规约所有名字都需要见名知义,为了增强程序的可读性。2 计算机的硬件组

2020-10-11 15:55:59 169

原创 Java虚拟机——JVM知识点

JVM1.类的加载顺序2 JVM内存模型2.1 程序计数器2.2 Java虚拟机栈2.3 本地方法栈2.4 堆2.5 方法区2.6 运行时常量池2.7 直接内存3 Java8的内存分代改进4 Java垃圾回收机制,何时出发MinorGC操作?4.1 分代垃圾回收机制:不同对象的生命周期不同。把不同生命周期的对象放在不同代上,然后采用最合适的方法回收。4.2 JVM中共划分了:**年轻代,年老代和永久代**4.3 判断对象是否需要回收4.4 触发GC的条件5 JVM中一次完整的GC流程6 垃圾收集器的种类及缺

2020-10-07 23:04:10 134

原创 Java实现统计字符串中回文串的个数

代码实现:import java.util.Scanner;public class Test{ //计数(不包括一个字符的情况) static int count = 0; public static void main(String[] args){ Scanner sc = new Scanner(System.in); String s = sc.nextLine(); int[] a = new int[s.lengt

2020-10-05 21:16:51 764

原创 排序算法——归并算法实现和原理(java实现)

java之——归并排序1.两路归并的排序算法思想2 算法实现归并排序: 采用分治的思想。归并的含义是将两个或两个以上的有序表合并成一个新的有序表。内排序的两路。1.两路归并的排序算法思想分而治之;每个递归过程分为以下三个过程1> 分解:将代排序的n个元素分为两个子序列,每个子序列包含元素个数为n/22> 治理:对着两个子序列调用归并排序MergeSort,进行递归操作3> 合并:合并两个排序好的子序列过程如下:2 算法实现import java.util.Scanne

2020-10-05 20:59:23 304

原创 排序算法时间复杂度及稳定性

2020-10-05 19:51:44 166

原创 快速排序原理及实现(注意事项)

快速排序原理及实现1.基本原理:1.1 思考:为什么要从右边开始找呢?2.代码实现1.基本原理:确立一个基准数,一般都是选第一个。2.从右边开始找,找出比基准数小的3.从左边开始找,找出比基准数大的4.交换顺序,调整新的基准数5.对基准数左边进行排序,右边进行排序1.1 思考:为什么要从右边开始找呢?i在大于基准数的地方停下,j在小于基准数的地方停下,如果i先走,最后停下跟基准数交换时,总是大于基准数的如下所示:6 1 2 3 7 9 while(i<j&&a[

2020-10-05 19:45:10 262

原创 Java基础知识

Java基础面试题1.JDK,JRE和JDK的区别2.采用字节码的最大好处3.Java和C++的区别4,基础语法4.1数据类型4.2 Switch作用在啥数据上4.3float f = 3.4是否正确4.4 short s1 = 1;s1=s1+1有错吗?,short s1 = 1;s1+=1有错吗4.5 java的修饰符4.6 final,finally,finalize区别4.7this,super的用法4.8 static5 面向对象5.1 面向对象和面向过程的区别5.2 面向对象的三大特性1.JD

2020-10-05 00:43:19 280 2

原创 Docker学习

Docker1.Docker初始1.1Docker概念1.2 安装docker1.3 了解docker架构2 Docker命令2.1 进程相关命令2.2 镜像相关命令2.3 容器相关命令3 Docker容器数据卷3.1 数据卷定义3.2 数据卷的作用3.3 数据卷的配置3.4 容器数据卷4 Docker 应用部署4.1、部署MySQL4.2、部署Tomcat4.3、部署Nginx4.4、部署Redis5 Dockerfile6 Docker 服务编排7 Docker 搭建私有仓库8 Docker容器和虚拟机

2020-09-20 02:01:35 173

原创 GIT相关命令和使用

Git分布式版本控制工具1. Git概述1.1 Git特点1.2 Git与SVN对比1.3 Git工作流程1.4 Git下载与安装2. Git代码托管服务2.1 常用的Git代码托管服务2.2 在码云注册账号2.3 登录码云并创建Git远程仓库2.4 邀请其他用户成为仓库成员3. Git常用命令3.1 环境配置3.2 获取Git仓库3.2.1在本地初始化一个Git仓库3.2.2从远程仓库克隆3.3工作目录、暂存区以及版本库概念3.4 Git工作目录下文件的两种状态3.5 本地仓库操作3.6 远程仓库操作3.

2020-09-12 21:00:40 485

原创 SpringBoot集成框架(简化Spring 配置操作)

1. Spring Boot概述目标:了解Spring Boot是什么,有什么作用小结:Spring Boot是一个便捷搭建 基于spring工程的脚手架;作用是帮助开发人员快速搭建大型的spring 项目。简化工程的配置,依赖管理;实现开发人员把时间都集中在业务开发上。2. Spring Boot入门目标:能够使用Spring Boot搭建项目分析:需求:可以在浏览器中访问http://localhost:8080/hello输出一串字符实现步骤:创建工程;添加依赖(启动器依赖,sp

2020-09-10 20:11:29 1126

原创 Spring与Web环境集成开发

SpringMVC环境集成1. Spring与Web环境集成1.1 ApplicationContext应用上下文获取方式1.2 Spring提供获取应用上下文的工具1.3 导入Spring集成web的坐标1.4 在Web.xml中配置ContextLoaderListener监听器1.5 通过工具获得应用上下文对象2. SpringMVC的简介2.1 SpringMVC概述2.3 SpringMVC快速入门2.3 SpringMVC流程图示2.4 知识要点3. SpringMVC的组件解析3.1 Spri

2020-09-07 21:36:44 90

原创 Spring之JdbcTemplate 的事务控制 (编程式)基于XML和注解

声明式事务控制1. 编程式事务控制相关对象1.1 PlatformTransactionManager1.2 TransactionDefinition2 编程式事务控制2.1 事务隔离级别2.2 事务传播行为2.3 TransactionStatus2.4 知识要点3 基于 XML 的声明式事务控制3.1 什么是声明式事务控制3.2 声明式事务控制的实现3.3 切点方法的事务参数的配置3.4 知识要点4 基于注解的声明式事务控制4.1 使用注解配置声明式事务控制4.2 注解配置声明式事务控制解析4.3 知

2020-08-09 18:14:54 482

原创 Spring之JdbcTemplate基本使用(Curd )

Spring之jdbcTemplate配置环境1JdbcTemplate基本使用-开发步骤(理解)2.代码实现2.1 导入spring-jdbc和spring-tx坐标2.2 配置Spring容器创建JdbcTemplate对象(spring产生模板对象代码实现(抽取jdbc.properties))2.3 创建数据库表和实体2.4 编写测试代码2.5 测试结果2.6-JdbcTemplate基本使用-常用操作(应用)3 JdbcTemplate基本使用-知识要点(理解,记忆)1JdbcTemplate基

2020-08-09 15:10:25 333

原创 Spring之Aop(面向切面编程)实现Xml方式和注解方式 详解

Spring面向切面编程1.Spring 的 AOP 简介1.1 什么是 AOP1.2 AOP 的作用及其优势1.3 AOP 的底层实现1.4 AOP 的动态代理技术1.5 JDK 的动态代理1.6 cglib 的动态代理1.7 AOP 相关概念1.8 AOP 开发明确的事项1)需要编写的内容2)AOP 技术实现的内容3)AOP 底层使用哪种代理方式1.9 知识要点2. 基于 XML 的 AOP 开发2.1 快速入门2.2 XML 配置 AOP 详解1) 切点表达式的写法2) 通知的类型3) 切点表达式的抽

2020-08-08 16:54:07 833

原创 Spring之注解开发&&Spring集成JUnit

Spring之注解开发1 Spring注解开发入门案例2 原始注解(示例)3 Spring新注解4 Spring整合Junit1 原始Junit测试Spring的问题2 上述问题解决思路3 Spring集成Junit步骤4 Spring集成Junit代码实现1 Spring注解开发入门案例package com.dao;import org.springframework.stereotype.Component;// <bean id="userDao" class="com.dao.

2020-08-05 14:50:44 359

原创 Spring配置数据源(xml加载properties文件)

Spring配置数据源1.数据源(连接池的作用)2 数据源的开发步骤3 C3p0链接测试和Druid从properties中获取4 Spring配置数据源和用Xml加载proterties文件1 Sprin配置数据源2 xml加载proterties方法1.数据源(连接池的作用)数据源(连接池)是提高程序性能如出现的事先实例化数据源,初始化部分连接资源使用连接资源时从数据源中获取使用完毕后将连接资源归还给数据源2 数据源的开发步骤(1) 导入数据源的坐标和数据库的驱动坐标(2)创建

2020-08-04 22:44:43 530

原创 Spring的基本配置和API

Spring配置Spring配置重点一.Spring 的基本概念以及优势1.Spring是什么?2.Spring的优势二.Spring的开发步骤三.Spring的基本配置和依赖注入1 Bean标签基本配置2 Bean的实例化方式:3.依赖注入3.1 依赖注入的方式3.2 Bean依赖注入的数据类型3 引入其他配置文件(分模块开发)四 API1 ApplicationContext的继承体系Spring配置重点<bean>标签 id属性:在容器中Bean实例的唯一标识,不允许重复

2020-08-03 14:37:44 256

原创 Mybatis常用的注解开发CRUD&&复杂关系映射(一对一,一对多)&&mybatis 基于注解的二级缓存

Mybatis 注解开发1.Mybatis常用的注解开发CRUD1.1设置实体类User1.2配置用户接口IUserDao1.3SqlMapConfig.xml文件的配置1.4测试类2.使用注解实现复杂关系映射开发2.1 复杂关系映射的注解说明2.2 使用注解实现一对一复杂关系映射及延迟加载2.2.1Account账户实体类2.2.2IAccountDao的接口2.2.3添加测试方法2.2.4测试结果2.3使用注解实现一对多复杂关系映射2.3.1将Account加入User中2.3.2在IAccountDa

2020-06-04 23:43:52 515

原创 MyBatis延迟加载机制&&一级缓存&&二级缓存

MyBatis缓存加载机制1.延迟加载1.1何为延迟加载?1.2实现需求1.3使用 assocation 实现延迟加载1.3.11.延迟加载1.1何为延迟加载?**延迟加载:**就是在需要用它到数据时才进行加载,不需要用到数据时就不加载。好处:先从单表查询,需要时在从关联表去查询,大大提高数据库性能,由于单表查询数据时要快一些。坏处:因为只有当需要用到数据时才进行数据库查询,,这样在大批量数据查询时,可能会给用户造成等待时间过长,用户体验感差。1.2实现需求需求:查询账户(Account)信

2020-06-04 10:35:50 194

原创 CSS3——2D转换transform

1.2D·转换之移动translate 语法 transform: translate(x,y); 也可以分开写 translateX(n) translateY(n)

2020-06-03 11:55:06 147

原创 Mybatis多表查询(一对多 &&多对多)&&在服务器中注册数据源JNDI

1. Mybatis 多表查询之一对多本次案例主要以最为简单的用户和账户的模型来分析 Mybatis 多表关系。用户为 User 表,账户为Account表。一个用户(User)可以有多个账户(Account)。具体关系如下:1 一对一查询(多对一)需求查询所有账户信息,关联查询下单用户信息。注意:因为一个账户信息只能供某个用户使用,所以从查询账户信息出发关联查询用户信息为一对一查询。如果从用户信息出发查询用户下的账户信息则为一对多查询,因为一个用户可以有多个账户。1.1 方式一1.1.

2020-06-03 11:47:24 175

原创 MyBatis连接池的深入和动态SQL

Mybatis连接池和事务和动态SQL一,Mybatis 连接池与事务深入1.1 Mybatis 的连接池技术1.1.1 Mybatis 连接池的分类1.1.2 Mybatis 中数据源的配置1.2 Mybatis 的事务控制1.2.1 JDBC 中事务的回顾1.2.2 Mybatis 中事务提交方式1.2.3 Mybatis 自动提交事务的设置二.Mybatis 的动态 SQL 语句2.1 动态 SQL 之标签2.1.1 持久层 Dao 接口2.1.3 测试2.2 动态 SQL 之标签2.2.1 持久层

2020-06-01 23:40:07 137

原创 Mybatis 的参数深入——parameterType 配置参数&Mybatis 的输出结果封装&&SqlMapConfig.xml配置文件

第3章 Mybatis 的参数深入3.1 parameterType 配置参数3.1.1 使用说明我们在上一章节中已经介绍了 SQL 语句传参,使用标签的 parameterType 属性来设定。该属性的取值可以是基本类型,引用类型(例如:String 类型),还可以是实体类类型(POJO 类)。同时也可以使用实体类的包装类,本章节将介绍如何使用实体类的包装类作为参数传递。传智播客——专注于 Java、.Net 和 Php、网页平面设计工程师的培训北京市昌平区建材城西路金燕龙办公楼一层 电话:

2020-05-30 22:15:36 1009

原创 Mybatis的增删改查操作

Mybatis的增删改查操作基于代理 Dao 实现 CRUD 操作()1 在持久层接口中添加CRUD 方法2 在用户的映射配置文件中配置3 在测试类添加测试4 问题扩展:新增用户 id 的返回值5 #{}与${}的区别6 Mybatis 与 JDBC 编程的比较基于代理 Dao 实现 CRUD 操作()使用要求:1、持久层接口和持久层接口的映射配置必须在相同的包下2、持久层映射配置中 mapper 标签的 namespace 属性取值必须是持久层接口的全限定类名3、SQL 语句的配置标签,,,的

2020-05-29 13:15:32 166

原创 Mybatis框架学习——搭建开发环境和查询所有的入门案例

Mybatis搭建 Mybatis 开发环境1 创建 maven 工程2 添加 Mybatis3.4.5 的坐标3 编写 User 实体类4 编写持久层接口 IUserDao5 编写持久层接口的映射文件 IUserDao.xml6 编写 SqlMapConfig.xml 配置文件基于注解的 mybatis 使用1 在持久层接口中添加注解2 修改 SqlMapConfig.xml搭建 Mybatis 开发环境1 创建 maven 工程创建 mybatis01 的工程,工程信息如下:Groupid:co

2020-05-29 09:05:24 215

原创 顺时针打印矩阵——四个边界的变换

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。解决办法算法注意事项解决办法考虑设定矩阵的“左、上、右、下”四个边界,模拟以上矩阵遍历顺序。循环打印: “从左向右、从上向下、从右向左、从下向上”算法class Solution { public int[] spiralOrder(int[][] matrix) { if(matrix.length==0) return new int[0];//矩阵长度为空时,返回空数组 int l = 0

2020-05-15 14:17:03 121

空空如也

空空如也

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

TA关注的人

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