自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

WangYongJi

15144042132

  • 博客(131)
  • 资源 (52)
  • 收藏
  • 关注

原创 【Git】报错处理:fatal: detected dubious ownership in repository at .....Set the environment variable GIT_T

fatal: detected dubious ownership in repository atSet the environment variable GIT_TEST_DEBUG_UNSAFE_DIRECTORIES=true and runagain for more information.

2022-11-14 10:03:19 594 1

原创 面试-Java【之】(revers)递归实现字符串倒序排列(详解)

面试-Java【之】(revers)递归实现字符串倒序排列(详解))# revers实现源码详解

2022-07-14 17:51:42 1305

原创 面试-Java【之】HashMap原理,源码逐行分析,理论总结(变量、常量、数据结构、Node、TreeNode、初始化、添加、查询、更新、删除)

面试-Java【之】HashMap原理,源码逐行分析,理论总结(变量、常量、数据结构、Node、TreeNode、初始化、添加、查询、更新、删除)1.源码分析1.HashMap属性与变量(扩容因子、扩容阈值、结构转换阈值...)2.Node(链表节点)3.TreeNode(红黑树节点)4.初始化(new)5.插入(put、putVal)6.删除(remove、removeNode)7.读取(get、getNode)2.理论总结1.核心:数组+ 链表或者红黑树2.put 操作:首次插入:

2022-06-29 21:12:57 541

原创 Java工具类【之】包扫描工具类(通过BasePackage,获取包下全部类信息)

Java工具类【之】包扫描工具类(传入BasePackage路径,获取包下全部类信息)1.源码截图2.测试情况3.源码下载

2022-05-12 18:41:09 974

原创 Spring5-完全注解开发【之】第一步,先实现功能(增删改查),再讲解陌生代码

Spring5-完全注解开发【之】第一步,先实现功能(增删改查),再讲解代码1.导入依赖2.创建配置类 AppConfig(添加配置注解、扫描注解)3.添加业务逻辑(增删改查)3.1.Controller3.2.Service3.3.数据Bean4.创建启动类,运行程序4.1.启动类4.2.执行结果(添加后查询、随机更换用户后,查询)5.陌生代码讲解标题:2(@Configuration、@ComponentScan)标题:3.1(@Controller、 @Autowired)标题:3.2(@Servic

2022-05-11 16:33:28 476

原创 Java-JDBC【之】数据库连接池技术、常规操作与Durid对比、测试(20-200)不同连接数下,10万记录,1万并发,CPU磁盘占用情况

Java-JDBC【之】数据库连接池技术、常规操作与Durid对比、测试(20-200)不同连接数下,10万记录,1万并发,CPU磁盘占用情况1.数据库连接池2.Durid介绍(官方文档)3.编码,问题,常规并发操作3.1.JDBCUtil.class3.2.多线程模拟并发3.3.测试类3.4.结果(并发 1千、2千、3千、5千),报错信息4.编码,解决,使用Durid连接池4.1.JDBCUtil.class4.2.多线程模拟并发4.3.测试类4.4.结果((20-200)不同连接

2022-05-05 13:08:40 1336

原创 Java-JBDC【之】目录(内含:JDBC、SQL注入与解决、CRUD、DAO层封装、事务操作(传播方式、隔离级别)、ORM、数据库连接池)

Java-JBDC【之】目录(内含:JDBC、SQL注入与解决、CRUD、DAO层封装、事务操作(传播方式、隔离级别)、ORM、数据库连接池)1.JDBC概述、获取连接、操作流程、SQL注入问题与解决、查询解析ResultSet2.数据类型、封装JDBCUtil、封装通用增删改、查询结果集映射Map与ListMap3.批量插入操作、优化取消自动提交(提速40+倍)4.事务介绍、事务特性、操作事务(事务提交、异常回滚)5.实现ORM,结果集映射实体类(ResultSet、注解、反射)6.数据库连接

2022-05-04 11:54:07 1060

原创 Java-JDBC【之】实现ORM,结果集映射实体类(ResultSet、注解、反射)

Java-JDBC【之】实现ORM,结果集映射实体类(ResultSet、注解、反射)1.ORM实现思路2.@Table、@Column、标识实体类2.1.创建注解 @Table、@Column2.2.标识实体类2.3.数据库表3.结果集解析,注解加反射填充实体类3.1.结果集解析3.2.注解加反射填充实体类3.3.测试4.完整源码《目录:Java-JDBC学习(编写中...)》《幕》1.ORM实现思路ORM(Object Relational Mapping)ORM 是通过标

2022-05-04 11:43:56 1797

原创 Java-JDBC【之】事务介绍、事务特性、操作事务(事务提交、异常回滚)

Java-JDBC【之】事务介绍、事务特性、操作事务(事务提交、异常回滚)1.数据库事务1.1.介绍1.2.事务特性(ACID)1.3.隔离性(Isolation),带来的问题与处理1.4.JDBC事务处理2.事务提交(代码实现)3.异常回滚(代码实现)4.完整源码《目录:Java-JDBC学习(编写中...)》《幕》

2022-05-03 13:18:18 862

原创 Java-JDBC【之】批量插入操作、优化取消自动提交(提速40+倍)

Java-JDBC【之】批量插入操作、优化取消自动提交(提速40+倍)1.JDBC批量操作2.两种实现方式3.优化,取消自动提交4.完整源码《目录:Java-JDBC学习(编写中...)》《幕》1.JDBC批量操作允许多条语句一次性提交给数据库批量处理,提升处理效率。JDBC的批量处理语句,由 PreparedStatement 处理,包括下面三个方法:addBatch(String):添加需要批量处理的SQL语句或是参数;executeBatch():执行批量处理语句;clearB

2022-05-02 11:38:35 2052

原创 Java-JDBC【之】数据类型、封装JDBCUtil、封装通用增删改、ResultSet与ResultSetMetaData、查询结果集映射Map与ListMap

Java-JDBC【之】数据类型、封装JDBCUtil、封装通用增删改、ResultSet与ResultSetMetaData、查询结果集映射Map与ListMap1.数据类型2.封装通用增删改2.1.封装JDBCUtil2.2.封装Dao通用增删改2.3.测试3.ResultSet与ResultSetMetaData4.查询对象映射Map4.1.封装queryMap()4.2.测试5.查询结果集映射ListMap5.1.封装queryListMap()5.2.测试6.完整源码《

2022-05-01 11:42:42 1169

原创 Java-JDBC【之】JDBC概述、获取连接、操作流程、SQL注入问题与解决、查询解析ResultSet

Java-JDBC【之】JDBC概述、获取连接、操作流程、SQL注入问题与解决、查询解析ResultSet1.JDBC概述2.操作流程1.初始化项目,导入`驱动jar包`2.加载驱动类3.创建数据库连接对象`Connection`4.创建`Statement` (此处存在SQL注入问题)5.执行SQL6.解析查询对象`ResultSet`7.关闭连接 `ResultSet 、Statement 、Connection`3.SQL注入问题与解决(Statement 、PreparedSta

2022-04-30 19:54:32 796

原创 Spring5-完全注解开发【之】Spring5介绍、实现IOC、单元测试

Spring5-完全注解开发【之】Spring5介绍、实初始化项目、实现IOC1.Spring5框架概述2.IOC实现(将类交由Spring管理)2.1.引入依赖(spring-context)2.2.声明注解(@Service、@Component、@Repository、@Controller)2.3.依赖注入(@Autowired、@Qualifier)2.4.声明 Bean 实例(@Bean、@Configuration)2.5.包扫描,注解生效(@ComponentScan)3.单

2022-04-22 18:38:42 1050

原创 Spring5-完全注解开发【之】目录

Spring5-完全注解开发【之】目录1.Spring5介绍、初始化项目、实现IOC、Junit5单元测试1.1.Spring5框架概述1.2.IOC注解实现1.3.Junit5单元测试1.4.源码下载2.IOC实现原理(未开始)3.Spring中Bean的生命周期(未开始).实现AOP实现(未开始).AOP原理(未开始).实现数据库增删改查(未开始).数据库事务配置(未开始).添加日志(未开始).函数式注册对象(未开始).webfluxe(未开始)《目录:从零手写Tomcat

2022-04-21 20:45:31 842

原创 JDK1.8新特性【之】接口默认方法、静态方法

JDK1.8新特性【之】接口默认方法、静态方法1.接口默认方法、静态方法2.代码示例(注意 类优先、冲突解决)《目录:Java基础》《目录:JDK1.8新特性》《幕》1.接口默认方法、静态方法接口默认方法、静态方法类比抽象类的默认实现,实现类可以不进行覆盖默认方法使用关键字 default 标识静态方法由 static关键字标识原则1:类优先如果,实现类继承了其他父类,并且父类中存在同名同参的方法,那么优先调用父类中的方法原则2:冲突指定当实现多个接口时,如果存在同名同参的方法,

2022-04-19 13:13:34 2239

原创 JDK1.8新特性【之】串行流、并行流、工作窃取模式(Fork/Join)

JDK1.8新特性【之】串行流、并行流、工作窃取模式(Fork/Join)1.串行流、并行流2.工作窃取模式( Fork/Join)3.测试4.完整源码《目录:Java基础》《目录:JDK1.8新特性》《幕》1.串行流、并行流串行流:为单线程执行并行流:工作时会将任务,拆分为多个子任务,最终汇总数据得到结果并行流 启动多线程数 默认为(CPU核数-1)2.工作窃取模式( Fork/Join)工作窃取模式 Fork/Join并行流采取的是工作窃取模式,线程自身任务执行完毕后会去其他

2022-04-19 12:28:56 875

原创 JDK1.8新特性【之】方法引用(定义、解析、使用)

JDK1.8新特性【之】方法引用(定义、解析、使用)1.方法引用2.定义接口函数与测试类3.三种引用形式与简写4.完整源码《目录:Java基础》《目录:JDK1.8新特性》《幕》1.方法引用方法引用是lambda表达式的进一步简写,存在三种形式1.类名::静态方法 ,满足 lambda表达式右侧只有一行,参数与返回值可以对应。2.实例名::方法,满足 lambda表达式右侧只有一行,参数与返回值可以对应。3.类名::实例方法,满足 lambda表达式右侧只有一行,参数与返回值可以对

2022-04-19 12:18:21 472

原创 JDK1.8新特性【之】函数式接口(内置、自定义、参数传递)

JDK1.8新特性【之】函数式接口(内置、自定义、参数传递)1.函数式接口2.形式1:只存在一个抽象方法3.形式2:只存在一个必须实现的抽象方法4.形式3:参数任意定制5.应用示例5.1.内置的四种类型应用(消费、函数、提供、断言)5.2.自定义接口函数、静态方法(参数类型为 接口函数)5.3.使用自定义接口函数(1.传递函数式接口对象、2.形参上直接写表达式)6.完整源码下载《目录:Java基础》《目录:JDK1.8新特性》《幕》

2022-04-19 12:04:58 2224

原创 从零手写Tomcat【之】服务器人员:添加服务功能接口(Servlet、Request、Response)

从零手写Tomcat【之】(服务器开发人员角度)创建Servlet接口,项目启动扫描web.xml,动态处理请求,反射创建Servlet1.web.xml内容修改,添加servlet标签2.接口与实现 Servlet、Request、Response2.1.添加Servlet2.2. 添加 ServletRequest、Request2.3.添加 ServletResponse、Response3.创建Mapper类,解析web.xml4.修改启动时逻辑,扫描全部servlet5.动态处理请

2022-04-13 13:16:55 1395

原创 从零手写Tomcat【之】继续完善,添加多线程,通过HandlerRequest处理请求

从零手写Tomcat【之】添加多线程,处理请求1.创建处理请求线程类,将客户端对象传进来,其余内容不变2.修改入口类,通过线程池执行请求任务3.本章节源码《目录:从零手写Tomcat》《目录:Java设计模式》《幕》

2022-04-11 15:00:49 692

原创 从零手写Tomcat【之】基础完善-处理动态资源请求

从零手写Tomcat【之】处理动态资源请求1.表单页面2.后台,解析URI,执行对应功能3.浏览器测试4.本章节源码《目录:从零手写Tomcat》《目录:Java设计模式》《幕》

2022-04-11 12:50:06 415

原创 从零手写Tomcat【之】处理本地静态资源请求

从零手写Tomcat【之】处理本地静态资源请求1.资源目录添加静态文件2.读取本地静态资源3.处理4044.本章节源码《目录:从零手写Tomcat》《目录:Java设计模式》《幕》

2022-04-07 12:24:03 625

原创 网络协议【之】分析一个HTTP请求的组成部分

网络协议【之】分析一个HTTP请求的组成部分1.启动一个Socket服务端(非Java人员可以跳过)源码2.浏览器访问情况浏览器F12内容服务端输出内容3.分析请求内容请求行请求头请求体4.分析响应内容响应行响应头响应体《目录:从零手写Tomcat》《目录:Java设计模式》《幕》

2022-04-07 11:04:13 1212

原创 从零手写Tomcat【之】基础完善,接收与返回信息

从零手写Tomcat【之】基础完善,接收与处理信息1.启动服务,查看浏览器请求信息2.获取客户端输出流,返回字符串信息给浏览器(失败与原因)3.问题解决(响应行、响应头)4.模拟返回 json 与 html5.本章节源码《目录:从零手写Tomcat》《目录:Java设计模式》《幕》

2022-04-05 13:10:13 372

原创 从零手写Tomcat【之】准备步骤,基础Socket通信环境搭建

从零手写Tomcat【之】准备步骤,基础Socket通信环境搭建1.整体包结构图2.配置和工具类3.编写服务端入口类4.编写客户端测试5.本章节源码《幕》

2022-04-04 17:44:27 1378

原创 从零手写Web服务器【之】目录(重新调整中...)

从零手写Tomcat【之】目录(章节内含源码)(包含:Socket、Servlet、Request、Response、Session、Filter、IOC、AOP)1.准备步骤,基础Socket通信环境搭建1.1.创建空白项目1.2.配置文件1.3.创建程序入口类1.4.启动服务器、开启循环监听1.5.编写客户端发起请求2.基础完善,接收与处理信息2.1.查看浏览器请求信息2.2.获取客户端输出流,返回字符串信息给浏览器(失败与原因)2.3.问题解决(响应行、响应头)2.4.模拟返回

2022-04-04 10:32:16 1239

原创 Java设计模式【之】抽象工厂模式【场景:生产咖啡】

Java设计模式【之】抽象工厂模式【场景:生产咖啡】1.抽象工厂模式2.场景代码实现2.1.场景2.2.咖啡抽象2.3.咖啡的两种品牌实现2.4.抽象工厂2.5.抽象工厂的不同地域实现2.6.测试3.源码下载《七大设计原则》《目录:Java设计模式》《幕》抽象工厂模式创建对象实例时,不要直接 new 类, 而是把这个new 类的动作放在一个工厂的方法中,并返回。在工厂方法的基础上,进一步抽象工厂类,将工厂抽象成两层,AbsFactory(抽象工厂) 和具体实现工厂子类。调用者

2022-04-03 13:42:30 670

原创 Java设计模式【之】原型模式-深拷贝【场景:克隆羊】

Java设计模式【之】原型模式-深拷贝【场景:克隆羊】1.原型模式(Prototype)浅拷贝深拷贝2.深拷贝(clone实现)2.1.羊.class2.2.测试类.class2.3.输出内容3.序列化实现3.1.羊.class3.2.测试类.class3.3.输出内容4.源码下载《七大设计原则》《目录:Java设计模式》《幕》

2022-03-31 16:21:37 217

原创 Java设计模式【之】目录

Java设计模式【之】目录1.看图说话(UML类图)(OK)2.有道有术(设计原则,代码示例)(OK)3.【创建型】之【单例模式】【场景:单例工具类】(OK)4.【创建型】之【工厂方法模式】【场景:制作咖啡】(OK)5.【创建型】之【抽象工厂】【场景:制作咖啡】(OK)6.【创建型】之【原型模式、深、浅拷贝】【场景:克隆羊】(OK)7.【创建型】之【建造者模式】【场景:汽车零件组装】(OK)其余正在编写中....《幕》1.看图说话(UML类图)(OK)点击跳转2.有道有术(设计原则,

2022-03-31 16:01:58 715

原创 Java设计模式【之】建造者模式【场景:汽车零件组装】

Java设计模式【之】建造者模式【场景:汽车零件组装】1.建造者模式(简述与场景)2.场景代码实现2.1.汽车(产品)2.2.构造者抽象类(建造者)2.3.构造者实现(建造者)2.4.客户端调用3.源码下载《七大设计原则》《目录:Java设计模式》《幕》

2022-03-31 16:00:36 1349

原创 Java设计模式【之】原型模式-浅拷贝【场景:克隆羊】

Java设计模式【之】原型模式-浅拷贝【场景:克隆羊】1.原型模式(Prototype)浅拷贝深拷贝2.代码实现(浅拷贝)2.1.羊.class2.2.测试类.class2.3.输出内容3.源码下载《七大设计原则》《目录:Java设计模式》《幕》

2022-03-19 20:24:58 497

原创 Java设计模式【之】工厂方法模式【场景:制作咖啡】

Java设计模式【之】 不劳而获(工厂方法模式)《源码下载》1.简单工厂1.1.简单工厂模式1.2.具体需求(生产多种咖啡)2.代码实现2.1.代码结构2.2.咖啡抽象类2.3.一种咖啡2.4.另一种咖啡2.5.简单工厂类2.6.测试《上一篇:单例模式》《七大设计原则》《目录:Java渐进式学习》《幕》

2022-03-17 11:14:32 726

原创 MySQL渐进式学习-从基础到高级-目录(安装、DCL、DDL、DML、约束、事务、函数、存储过程、调优、高可用、分库分表)

MySQL渐进式学习-从基础到高级-目录(安装、DCL、DDL、DML、约束、事务、函数、存储过程、调优、高可用、分库分表)1.安装(OK)Centos7安装MySQL5.7Windows10安装MySQL5.7Windows10-安装MySQL8.0Centos7离线安装Mysql8.xDocker 安装MySQL8.x2.DCL(库)(数据控制)(未开始)语法CREATE:建库GRANT:授权REVOKE:取消授权COMMIT:提交事务ROLLBACK:回滚事务SAVEPOI

2022-03-17 08:38:44 674

原创 Java基础【之】==和equals 的区别,经典问题。

Java基础【之】==和equals 的区别,常识问题。1.储备知识2.歧义的原因(重写)3.总结《目录:Java渐进式学习》《幕》1.储备知识所有类都继承了Object。可以重写 hashCode方法、equals方法、toString方法。== 比较基本数据类型:比较值。== 比较引用数据类型:比较对象的引用地址。equals:内部默认实现代码为 return (this == obj);

2022-03-16 17:19:22 338

原创 Java基础【之】面向对象编程(封装、继承(extends、方法重写、super)、多态(动态绑定、重载/重写)、代码实现)

Java基础-面向对象编程(封装、继承、多态、代码实现)1.封装2.继承extends方法重写super3.多态3.1.对象的多态、方法的多态3.2.动态绑定3.3.向上转型(upcasting)3.4.instanceof3.5.数据类型转换4.代码实现类实现接口实现《上一篇:??》《下一篇:??》《目录:Java渐进式学习》《幕》

2022-03-16 11:21:25 553

原创 Java基础【之】面向对象编程(类、面向过程、面向对象、对象、属性、行为)(大象进冰箱)

Java基础-面向对象编程(类、面向过程、面向对象、对象、属性、行为)(大象进冰箱)1.面向对象与面向过程(大象门事件!!!)1.1.面向过程(POP)1.2.面向对象(OOP)1.3.注意2.类的组成类、对象、构造器匿名对象方法属性访问与权限关键字(this、package、import)thispackageimport4.大象进冰箱(代码实现)《上一篇:运算、位运算、比较、循环与控制》《 UML类图》《目录:Java渐进式学习》《幕》

2022-03-15 19:37:13 1095 1

原创 Java基础【之】逻辑运算、比较、位运算(对于二进制计算,理解要到位)

Java基础-逻辑运算1.数学运算(加、减、乘、除、取模、拼接)3.比较运算(大、小、相等、实例类型)4.逻辑运算(与、或、非、异或)5. 三元表达式6. 位运算(二进制计算)(注意理解)7.源码、反码、补码《下一篇:流程控制》《目录:Java基础》《幕》

2022-03-14 14:08:34 1347

原创 Java基础【之】循环、流程控制 (if else、whitch case、while、do while、for...i、foreach、多层循环与退出)

Java基础-流程控制 (if else、whitch case、while、do while、for...i、foreach、多层循环与退出)1.默认顺序执行2.分支控制if elseswitch case3.循环whiledo whilefor iforeach4.多层循环与主动退出(return、break、contuinue)循环代码使用 continue使用 break使用 return《逻辑运算》《目录:Java基础》《幕》

2022-03-14 14:08:05 740

原创 Java设计模式【之】唯一的路就是正确的路 (单例模式)

Java设计模式【之】唯一的路就是正确的路 (单例模式)准备知识1.静态变量(new、静态代码块)2.双重检查锁3.静态内部类4.枚举实现(不推荐)《下一篇:简单工厂模式》《目录:Java渐进式学习》《幕》准备知识解决问题的方法才是好方法有三种网上流传的懒汉式(线程安全问题、锁方法、锁代码块),太傻了,没法解释就不写了。其中4.枚举实现,语义不清晰,不推荐使用JVM类加载机制保证,类的静态属性,只会在第一次加载类的时候初始化单例模式就是保证在整个的软件系统中,对某个类只能存在一

2022-03-13 16:43:01 586

原创 Java设计模式【之】 七大设计原则(有道有术,代码示例)

Java-设计模式【之】 有道有术(设计原则,代码示例,看完必会)名词解析1.单一职责2.接口隔离3.依赖倒置(面向接口编程)4.里氏替换5.开闭原则6.迪米特(好朋友原则)7.合成复用8.精华:代码示例解析《上一篇:Java-UML类图》《目录:Java基础》《幕》

2022-03-12 12:08:29 392

Java工具类【源码】包扫描工具类(通过BasePackage,获取包下全部类信息)

文章地址:https://blog.csdn.net/m0_37969197/article/details/124736114 Java工具类【源码】包扫描工具类(通过BasePackage,获取包下全部类信息)

2022-05-12

Spring5-完全注解开发【源码】第一步,先实现功能(增删改查),再讲解陌生代码

文章地址:https://blog.csdn.net/m0_37969197/article/details/124707132 Spring5-完全注解开发【源码】第一步,先实现功能(增删改查),再讲解陌生代码

2022-05-11

Java-JDBC【源码】数据库连接池技术、常规操作与Durid对比、测试(20-200)不同连接数下,10万记录,1万并发

文章地址:https://blog.csdn.net/m0_37969197/article/details/124585935 Java-JDBC【源码】数据库连接池技术、常规操作与Durid对比、测试(20-200)不同连接数下,10万记录,1万并发,CPU磁盘占用情况 1.数据库连接池 2.Durid介绍(官方文档) 3.编码,问题,常规并发操作 3.1.JDBCUtil.class 3.2.多线程模拟并发 3.3.测试类 3.4.结果(并发 1千、2千、3千、5千),报错信息 4.编码,解决,使用Durid连接池 4.1.JDBCUtil.class 4.2.多线程模拟并发 4.3.测试类 4.4.结果((20-200)不同连接数下,10万记录,1万并发,CPU磁盘占用情况)

2022-05-05

Java-JDBC【源码】实现ORM,结果集映射实体类(ResultSet、注解、反射)

文章地址:https://blog.csdn.net/m0_37969197/article/details/124568385 Java-JDBC【之】实现ORM,结果集映射实体类(ResultSet、注解、反射) 1.ORM实现思路 2.@Table、@Column、标识实体类 2.1.创建注解 @Table、@Column 2.2.标识实体类 2.3.数据库表 3.结果集解析,注解加反射填充实体类 3.1.结果集解析 3.2.注解加反射填充实体类 3.3.测试 4.完整源码

2022-05-04

Java-JDBC【源码】事务介绍、事务特性、操作事务(事务提交、异常回滚)

文章地址:https://blog.csdn.net/m0_37969197/article/details/124554045 Java-JDBC【之】事务介绍、事务特性、操作事务(事务提交、异常回滚) 1.数据库事务 1.1.介绍 1.2.事务特性(ACID) 1.3.隔离性(Isolation),带来的问题与处理 1.4.JDBC事务处理 2.事务提交(代码实现) 3.异常回滚(代码实现) 4.完整源码

2022-05-03

Java-JDBC【源码】批量插入操作、优化取消自动提交(提速40+倍)

文章地址:https://blog.csdn.net/m0_37969197/article/details/124537142 Java-JDBC【之】批量插入操作、优化取消自动提交(提速40+倍) 1.JDBC批量操作 2.两种实现方式 3.优化,取消自动提交 4.完整源码 《目录:Java-JDBC学习(编写中...)》 《幕》

2022-05-02

Java-JDBC【之】数据类型、封装JDBCUtil、封装通用增删改、ResultSet与ResultSetMetaData

文章地址:https://blog.csdn.net/m0_37969197/article/details/124522810 Java-JDBC【之】数据类型、封装JDBCUtil、封装通用增删改、ResultSet与ResultSetMetaData、查询结果集映射Map与ListMap 1.数据类型 2.封装通用增删改 2.1.封装JDBCUtil 2.2.封装Dao通用增删改 2.3.测试 3.ResultSet与ResultSetMetaData 4.查询对象映射Map 4.1.封装queryMap() 4.2.测试 5.查询结果集映射ListMap 5.1.封装queryListMap() 5.2.测试 6.完整源码

2022-05-01

Java-JDBC【源码】JDBC概述、获取连接、SQL注入问题与解决、查询解析

文章地址:https://blog.csdn.net/m0_37969197/article/details/124516593 Java-JDBC【之】JDBC概述、获取连接、SQL注入问题与解决、查询解析 1.JDBC概述 2.操作流程 1.初始化项目,导入`驱动jar包` 2.加载驱动类 3.创建数据库连接对象`Connection` 4.创建`Statement` (此处存在SQL注入问题) 5.执行SQL 6.解析查询对象`ResultSet` 7.关闭连接 `ResultSet 、Statement 、Connection` 3.SQL注入问题与解决(Statement 、PreparedStatement) 3.1.模拟SQL注入 3.2.PreparedStatement解决 3.3.Statement 与 PreparedStatement 4.完整源码

2022-04-30

Spring5-完全注解开发【之】Spring5介绍、实初始化项目、实现IOC【源码】

Spring5-完全注解开发【之】Spring5介绍、实初始化项目、实现IOC【源码】 文章地址:https://blog.csdn.net/m0_37969197/article/details/124331225

2022-04-22

JDK1.8【函数式接口】【定义与使用】【源码】

JDK1.8【函数式接口】【定义与使用】【源码】 文章地址:https://blog.csdn.net/m0_37969197/article/details/124146253 * 函数式接口(类的定义与适应形式,只是一种类的定义形式,属于新增语法) * 包:java.util.function * 条件:接口中 有,且,只有一个,必须实现的抽象方法 * 通过注解检查 @FunctionalInterface进行代码检查提示 * 函数式接口,支持Lambda表达式 也就是说:参数可以长这样 "()->{}" * <p> * JDK1.8内置,四种函数式接口 * 1.消费型 Consumer<T> return:无 * 2.提供型 Supplier<T> return:<T> * 3.函数型 Function<T,R> return:<R> * 4.断言型 Predicate<T> return:boolean * <p> * 参数使用形式 * 形式1:传递函数式接口对象 * 形式2:形参上直接写表达式

2022-04-19

从零手写Tomcat【源码】【abl-tomcat-006】【服务器人员:添加服务功能接口(Servlet、Request

文章地址:https://blog.csdn.net/m0_37969197/article/details/124142264 目录地址:https://blog.csdn.net/m0_37969197/article/details/123949644 1.web.xml内容修改,添加servlet标签 2.添加Servlet接口与实现 3.解析web.xml 4.修改启动时逻辑,扫描全部servlet 5.Request、Response 说明 6.动态处理请求,通过反射创建Servlet 7.浏览器测试

2022-04-13

从零手写Tomcat【源码】【abl-tomcat-005】【添加多线程,处理请求】

从零手写Tomcat【源码】【abl-tomcat-005】【添加多线程,处理请求】 文章地址:https://blog.csdn.net/m0_37969197/article/details/124098639 目录地址:https://blog.csdn.net/m0_37969197/article/details/123949644

2022-04-11

从零手写Tomcat【源码】【abl-tomcat-004】【基础完善-处理动态资源请求】

从零手写Tomcat【源码】【abl-tomcat-004】【基础完善-处理动态资源请求】 文章地址:https://blog.csdn.net/m0_37969197/article/details/124096403 目录地址:https://blog.csdn.net/m0_37969197/article/details/123949644

2022-04-11

从零手写Tomcat【源码】【abl-tomcat-003】【处理静态资源与404】

从零手写Tomcat【源码】【abl-tomcat-003】【处理静态资源与404】 文章地址:https://blog.csdn.net/m0_37969197/article/details/124009603 目录地址:https://blog.csdn.net/m0_37969197/article/details/123949644

2022-04-07

从零手写Tomcat【源码】【abl-tomcat-002】【基础完善,接收与处理信息】

从零手写Tomcat【源码】【abl-tomcat-002】【基础完善,接收与处理信息】 文章地址:https://blog.csdn.net/m0_37969197/article/details/123965816 目录地址:https://blog.csdn.net/m0_37969197/article/details/123949644

2022-04-05

从零手写Tomcat【源码】【abl-tomcat-001】【准备步骤,基础Socket通信环境搭建】

从零手写Tomcat【源码】【abl-tomcat-001】【准备步骤,基础Socket通信环境搭建】 文章地址:https://blog.csdn.net/m0_37969197/article/details/123956989 目录地址:https://blog.csdn.net/m0_37969197/article/details/123949644

2022-04-04

java设计模式【之】抽象工厂模式【源码】【场景:制作咖啡】

java设计模式【之】抽象工厂模式【源码】【场景:制作咖啡】 * 抽象工厂 * <p> * 创建对象实例时,不要直接 new 类, 而是把这个new 类的动作放在一个工厂的方法中,并返回。 * 在工厂方法的基础上,进一步抽象工厂类,将工厂抽象成两层,AbsFactory(抽象工厂) 和具体实现工厂子类。 * 调用者根据创建对象类型使用对应的工厂子类。 * 这样将单个的简单工厂类变成了工厂簇, 利于代码的维护和扩展 * <p> * 使用场景:工厂存在扩展的可能,且扩展后工厂的生产方式存在差异

2022-04-03

java设计模式【之】原型模式、深拷贝与浅拷贝【源码】【场景:克隆羊】

java设计模式【之】原型模式、深拷贝与浅拷贝【源码】【场景:克隆羊】 * 原型模式(Prototype) * 实现方式: * 需要被克隆的 class类, 重写Object中的clone()方法,并实现Cloneable接口(否则报错 CloneNotSupportedException) * 注意: * 1.被克隆对象.clone()出的对象,是被克隆对象的当前状态 * 2.被克隆对象 如果返回的值是 super.clone(); 此时属于浅拷贝 * <p> * 浅拷贝 * 1)成员变量是,基本数据类型,此时浅拷贝是值传递。其中一个对象的值修改后,不会影响到另一个对象的值。 * 2)成员变量是,引用数据类型,比如:数组、类的对象。此时浅拷贝是引用传递,也就是只是将该成员变量的引用值(内存地址)复制一份给新的对象。两个对象中的该成员变量执行的是同一个地址,其中一个对象的值修改后,另一个对象的值也会改变。 * 深拷贝基本介绍 * 1)复制对象的所有基本数据类型的成员变量值 * 2)为所有引用数据类型的成员变量申请存储空间,并复制每个引用数据类型成员变量所引用

2022-03-31

java设计模式【之】模板方法【源码】【场景:制作咖啡】

java设计模式【之】模板方法【源码】【场景:制作咖啡】 * 模板方法 * 为了避免重复代码 * 抽象一个父类,定义一套流程,流程中存在多个步骤,,每个步骤存在默认实现 * 子类继承后,对于可变的部分,子类可以自行重写 * <p> * 抽象一个类,执行流程已经定义完成,抽象类内部存在默认实现,方法可由子类进行覆盖 * <p> * 空实现的价值在于让子类覆盖,让子类(其他人、实现者、第三方)灵活控制 * <p> * 代码实现:制作不同咖啡 * 抽象咖啡类 * 0. final 制作咖啡(1,2(4)3) * 1.选咖啡豆() * 2.煮咖啡() * 3.加配料 * 条件:是否制作原味咖啡()

2022-03-31

java设计模式【之】JDK动态代理【源码】【场景:帮爸爸买菜】.rar

java设计模式【之】JDK动态代理【源码】【场景:帮爸爸买菜】.rar /** * 代理模式 * 在开发者的角度来看,创建一个代理对象,提供给用户使用,避免用户直接访问真正的对象 * 在用户角度来看,就是普通的类方法调用 * <p> * 作用 * 1.保护被代理对象 * 2.增强被代理对象 * 3.完全替换被代理对象 * <p> * 动态代理(JDK代理、接口代理、拦截器模式) * 动态代理中的静态方法:java.lang.reflect.Proxy.newProxyInstance (ClassLoader(类加载器),interface(接口),handler(监听处理器)) * <p> * 代码示例:《帮爸爸买菜》 * 1.Father: 被代理类,必须需要实现接口 * 2.Son: 代理类,不需要实现接口 * 3.代理类,接收父亲类对象,利用反射机制,创建一个代理对象(在内存中动态创建代理对象) * Proxy.newProxyInstance (ClassLoader(类加载器),interface(接口),handler(监听处理器))

2022-03-31

java设计模式【之】静态代理【源码】【场景:帮爸爸买菜】.rar

java设计模式【之】静态代理【源码】【场景:帮爸爸买菜】.rar * 代理模式 * 在开发者的角度来看,创建一个代理对象,提供给用户使用,避免用户直接访问真正的对象 * 在用户角度来看,就是普通的类方法调用 * <p> * 作用 * 1.保护被代理对象 * 2.增强被代理对象 * 3.完全替换被代理对象 * <p> * 静态代理: * 1.被代理对象与代理对象,需要实现相同的接口或继承相同的父类 * 2.代理对象聚合被代理对象 * 3.客户端,创建代理对象,创建被代理对象,把被代理对象传入代理对象中 * 4.客户端调用,代理对象的同名方法 * 代码示例:《帮爸爸买菜》 * 1.妈妈(客户端,测试类,调用爸爸去买菜)、工具人抽象(公共抽象,包含扫地与买菜等方法)、爸爸(被代理者)、儿子(代理者,代理爸爸去买菜) * 2.爸爸与儿子都实现工具人抽象类

2022-03-31

java设计模式【之】Cglib动态代理【源码】【场景:帮爸爸买菜】

java设计模式【之】Cglib动态代理【源码】【场景:帮爸爸买菜】 /** * 代理模式 * 在开发者的角度来看,创建一个代理对象,提供给用户使用,避免用户直接访问真正的对象 * 在用户角度来看,就是普通的类方法调用 * <p> * 作用 * 1.保护被代理对象 * 2.增强被代理对象 * 3.完全替换被代理对象 * <p> * Cglib代理(子类代理) * 可以在运行期,扩展java类与实现接口,在内存中创建一个子类对象,实现代理功能 * 底层通过字节码处理框架ASM,转换字节码并生成新的类 * 被代理类都不需要实现接口 * 代理类需要实现 MethodInterceptor(方法拦截器) * <p> * 1.创建被代理类、创建代理类、代理类内部聚合被代理类 * 2.创建返回代理类实例方法 Enhancer.create(object.getClass(), this); * (1.创建工具类,2.设置工具类的父类为被代理类 3.设计监听回调为当前this 4.return 创建代理类实例对象) * 3.实现接口方法(调用 method.

2022-03-31

java设计模式【之】组合模式【源码】【场景:遍历目录树】

java设计模式【之】组合模式【源码】【场景:遍历目录树】 * 组合模式 * 将对象组合成树结构,表示 “部分与整体” 的关系 * 要求 部分与整体,具备相同的父类 * <p> * 代码实现 * 输出当前目录下,全部目录层级和文件内容,已试树形结构展示 * 1.抽象节点类 Node( type=(目录、文件) 、path、fileName) * 2.创建方法, 添加节点()、遍历当前树结构() * 3.客户端创建多个节点,节点添加节点,遍历根节点的当前树结构

2022-03-29

java设计模式【之】桥接模式【源码】【场景:老师上课】

java设计模式【之】桥接模式【源码】【场景:老师上课】 * 桥接模式 * 将抽象与实现分离,通过组合抽象进行交互 * (由指定人员制定接口规则,由其他人员实现接口规则) * <p> * 桥接:描述的是关联关系,实现上就是内部组合一个对方的实例对象,通过两个抽象进行交互 * <p> * 代码实现 * (桥接)左侧:外聘老师 * (桥接)右侧:学校,组合外聘老师,执行老师的上课功能

2022-03-28

java设计模式【之】享元模式【源码】【场景:多缓存可选模式】

java设计模式【之】享元模式【源码】【场景:多缓存可选模式】 /** * 享元模式(预加载单例) * “元” 理解为 “同一地址对象” * 运用共享技术,减少对象的创建,降低对象的数量,降低内存消耗,提高性能 * <p> * 注意 * 线程安全问题 * 内部状态:属性值由类生成时确定,不会改变 * 外部状态:属性值由参数决定,依赖传递值 * <p> * 实现思路 * 多个位置的操作,需要相同的一些对象,此时将相同的一些对象封装进一个工厂内,创建后持久化到内存中 * 可以在任意位置,通过key进行获取同一地址的对象,减少创建 * <p> * 代码举例 * 存在多种缓存实现,缓存对象只需要一个,但是不保证什么情况下使用什么类型 * 此时可以采用享元模式,“元” 理解为 “同一地址对象” * <p> * 源码应用 * Integer 问题 * 使用场景:String 类型,连接池 * Integer.valueOf() 、Long.valueOf() * 当数字范围超出, short 1字节 (-128 、+127),生成模式为 new 新对象

2022-03-27

java设计模式【之】适配器模式【源码】【场景:水和容器】

java设计模式【之】适配器模式【源码】【场景:水和容器】 * 适配器模式,类似(亡羊补牢) * 已经存在的类(功能已经开发完成了),与新需求的功能相似,但是略有差异 * 当已经存在的方法无法满足现有需求,需要对不同调用者做出微小调整,此时可以使用适配器模式 * 适配器模式,会产生新的类和方法:比如 ,电源适配器(手机、电脑、空调),内部结构基本一致,只是转后的产出的电压不同 * 适配器模式,适配现有的类与方法,最终产出的是满足需求的新的接口方法 * 特点:复用现有的类 * <p> * 实现流程: * 被适配的类,组合进适配器内部 * 适配器实现接口内部方法,调用被适配的方法后,进行逻辑修改 * 然后用户与通过 适配器接口+不通的适配器实现, 进行交互 * <p> * 举例:容器取水 * 一盆水,通过水漏适配器,取出指定毫升的水量

2022-03-25

java设计模式【之】装饰者模式【源码】【场景:煎饼果子+肠+蛋】

java设计模式【之】装饰者模式【源码】【场景:煎饼果子+肠+蛋】 * 测试类【之】煎饼果子来一套 * <p> * 不改变原有对象的基础上,强化已经存在的功能 * 被装饰者与装饰者实现同一个抽象或接口 * 装饰后,最终还是调用同名方法,只不过运行时会被动态修饰 * <p> * 实现流程 * 1.装饰者与被装饰者实现同一个 抽象或接口 * 2.装饰者内部组合被装饰者 * 3.装饰者实现类,调用被装饰这的原方法后,进行逻辑扩展 * <p> * 举例: * * <p> * * 源码应用:InputStream

2022-03-25

java设计模式【之】建造者模式【源码】【场景:车辆组装】

java设计模式【之】建造者模式【源码】【场景:车辆组装】 将复杂的对象构建,与对象的使用进行分离 用户只需要通过简单流程即可创建出对象 方法调用顺序,步骤的不同实现 优点:封装性号,创建和使用分离,扩展性比较好 缺点:对于原有对象调用来说,产出了多余的Builder对象 * 代码结构特点 * builder()返回自身,一串链式拼装,最后 .build() 返回对象 * 框架应用 * StringBuffer(线程安全) StringBuilder * 瓜娃里的不可变对象 * MyBatis的 SqlSessionFactoryBuild 里的 双层 Builder( XMLConfigBuilder() )

2022-03-24

java设计模式【之】外观模式【源码】【场景:积分兑换图书】

java设计模式【之】外观模式【源码】【场景:积分兑换图书】 外观模式:对于复杂的类操作, 或者多个子系统互相间需要操作, 可以创建外观类对复杂的类进一步封装, 调用者只与外观类交互。 * 框架应用 * Mybatis * Configuration * Configuration 里的 new系列方法,都是对其他类的封装,以后扩展改动量较小 * Spring * JdbcUtils * JdbcUtils 的 各种close 操作, 获取结果集数据操作,都是对 java.sql 下的原生操作进行的封装 * Tomcat * Facade * Tomcat 的 Request 类,是对 RequestFacade 的包装,二者 都实现了 HttpServletRequest 接口 * 复杂的实现由 RequestFacade 完成,对外由Request类作为外观与用户交互,获取HttpServletRequest 对象 * Response 和 session 也是同样的实现形式

2022-03-24

Java设计模式【之】 工厂方法模式(源码)

* 工厂方法模式解决:满足 OCP原则,修改关闭,扩展开放 * <p> * 比如:出现了新款咖啡类 * 旧的咖啡类代码不需要变动,只需要 * <p> * 1.新增对应的咖啡类 * 2.修改工厂类,新增一行判断逻辑 * 3.main方法中的旧代码不需修改,只需要新增一行代码 工厂类.create(咖啡类型)

2022-03-17

Java-设计模式-单例模式-实现源码(简单实现、双重检查锁、静态内部类、枚举类)

Java-设计模式-单例模式-实现源码(简单实现、双重检查锁、静态内部类、枚举类)

2022-03-14

TSvnPwd-密码查看工具

TSvnPwd-密码查看工具 SVN忘记密码查看工具

2022-02-11

linux-nginx-1.20.2.zip

linux-nginx-1.20.2

2022-01-09

gpg4win-3.1.16(附带使用说明).rar

gpg4win-3.1.16(附带使用说明).rar

2021-12-19

pkg.ubuntu16.lvm.tar.gz

ubuntu16 LVM离线安装包

2021-12-02

docker_astdfs_need_config.zip

docker部署 fastdfs的配置文件 docker_astdfs_need_config

2021-11-26

frp_0.35.1-win-linux.rar

frp_0.35.1-win-linux.rar

2021-10-25

frp_0.37.1-win-linux.rar

frp_0.37.1-win-linux.rar

2021-10-25

vue-devtools-5.3.4.rar

vue-devtools-5.3.4.rar

2021-08-23

maven-阿里云-mirrors.txt.zip

maven-阿里云-mirrors.txt

2021-07-05

空空如也

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

TA关注的人

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