自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Netty学习笔记

non-blocking io,jdk1.4后新增。

2023-06-24 18:00:12 222

原创 vue学习笔记

/

2023-06-02 18:37:39 500

原创 《面试总结》

数组使用Array.sort集合使用Collection.sortsort方法底层使用归并排序,适合大型数组排序,若数组元素不多或者已经部分有序的话,执行效率不高自定义排序算法时实现一个Comparator类对象,其中定义数组元素具体排序规则,然后将Comparator对象传给sort方法。

2023-05-15 22:18:33 375

原创 java订单支付核心业务

spu:虚拟商品,针对某个商品进行搜索,页面展示的就是spu的信息,是一组具有共同属性的商品集,如品牌信息,其中包含多个skusku:具体商品,用户点击页面的spu进入的页面会详细显示对应的sku,spu商品集中的商品根据不同的特性而细分出的具体商品就是sku,如颜色、具体尺寸、价格,用户下单时使用的就是sku信息。

2023-05-09 22:07:27 3026 1

原创 java多线程、线程池、锁

当我们在main方法中调用这个多线程对象的run方法后,再调用多线程的设置a为false的方法,那么很有可能其实这个子线程中的a变量的值并未改变,因为主线程中调用的子线程对象修改a的方法其实只是修改了主线程的本地内存中a变量的值为false,但由于之后失去了cpu执行权,就导致这个本地内存中的a的值还没写入主内存中,主线程就已经挂了,所以子线程也就不能读取到主线程中修改后的a的值,要解决这种线程间不可见问题的话,在tomcat的xml配置文件中配置线程池的参数,可以设置的参数和java的线程池参数一致。

2023-05-07 19:22:03 275

原创 lambda表达式、stream流、方法引用、mybatis-plus中的方法引用

以使用Runnable接口开启多线程举例,使用lambda表达式可以简化代码写法。

2023-05-06 22:11:54 538

原创 mysql结构及mysql调优

在创建多列索引的时候,我们会根据业务的需求,where子句中使用最频繁的一列放在最左边,因为mysql索引查询会遵循最左前缀匹配原则,即最左优先,在检索数据时从联合索引的最左边开始匹配。mysql中有自带的缓存,客户端在进行查询时会先去缓存中进行查询,若缓存查询到则直接返回,不会再为本次查询生成执行计划,也不会执行,默认缓存是关闭的,可以在mysql中设置这个参数或者在配置文件中设置参数。聚簇索引: 以InnoDB作为存储引擎的表,表中的数据都会有一个主键,即使不创建主键,系统也会自动创建一个隐式的主键。

2023-05-05 20:44:33 118

原创 java内存结构及jvm参数调优

其中栈内存是每个线程私有的,存放自己的局部变量,在线程创建时被创建的,堆内存存放new关键字的对象,会被jvm的垃圾回收机制管理,是共享的,本地方法栈是用于调用c或者c++的驱动代码的,方法区用于存放常量、被加载的类的信息、静态变量等,是共享的。

2023-05-02 16:43:04 293

原创 spring原理

我们会在spring配置文件中配置mybatis的MapperScannerConfigurer对象的ioc和di,di的时候我们传入的参数就是我们项目中mapper接口所在包,这个scanner实现了spring容器的一个后置接口,这个scanner会在spring容器初始化过程中会自动调用,在scanner方法中会先获取我们所有的mapper接口,并且为其生成对应的BeanDefinition对象,然后会将每个BeanDefinition对象的类型替换为mybatis的MapperFactoryBean

2023-04-19 21:30:27 164

原创 docker

当生产者发送消息给kafka后,有时候我们需要知道消息是否发送成功,所以这里可以通过带回调的生产者来实现。在项目启动时我们可以根据项目需要为项目生成对应的主题,通过编写java配置类实现。导入kafka工具类依赖。

2023-04-18 21:15:13 96

原创 用户微服务(单点登录)

自定义sql或hql语句进行查询时,我们可以用于多表查询,只需要根据查询结果编写对应的Vo实体类来接收查询结果//自定义sql,通过用户名密码查找用户 @Query("select u from User u where u.username=?2") //面向对象的查询语法,不论用什么数据库,我们只要在这里写hql,底层就生成对应的数据库的sql //把表名换成类名、数据库字段换成属性名,其中参数为?

2023-04-15 14:28:54 405 1

原创 springboot

springboot

2023-04-12 18:39:45 124

原创 nodejs

nodejs

2023-04-01 16:32:10 265

原创 互联网冲刺一

1.项目架构2. 项目搭建2.1 搭建父工程删除父工程中的src目录,在pom中导入maven依赖2.2 搭建common父工程2.3 搭建core工程2.4 搭建interface工程2.5 搭建admin后台管理工程2.6 ssm整合2.7 admin测试2.8 maven插件admin中的pom.xml配置jetty <build> <!--jetty插件--> <plugin>

2023-04-01 11:07:58 939

原创 mysql查询语句

查询条件后跟上DISTINCT关键字。

2023-04-01 11:07:21 66

原创 java面试

之后放行用户访问对应的接口。在访问接口时就会调用我们所编写的权限aop通知方法,这个权限通知方法中会首先判断接口上方有没有被我们自定义的权限注解所标记,若没有则说明当前接口不需要进行权限鉴定,直接进行放行,若存在则说明需要进行鉴定。在鉴定时我们会从当前线程中取出用户所拥有的全部权限标记信息,并将其与用户访问的接口上的权限鉴定注解中的内容进行对比,若包含则说明用户拥有对应权限进行放行,否则进行拦截以自定义redis工具类的自动装配为例先创建maven项目,在maven基础上编写自动装配项目。

2023-04-01 10:24:01 637

原创 linux云服务器部署并发布tomcat项目

linux云服务器部署并发布tomcat项目

2023-03-31 19:43:52 258

原创 3.21SVN

3.21SVN

2023-03-21 20:35:24 65

原创 3.21Maven

maven

2023-03-21 19:22:29 55

原创 3.17SpringMVC

3.17SpringMVC

2023-03-18 16:32:13 255

原创 3.17模板方法设计模式

模板方法设计模式

2023-03-17 10:02:10 53

原创 3.14Spring

3.14Spring

2023-03-16 20:11:30 119

原创 3.13实现简单的Spring

3.13实现简单的Spring

2023-03-13 18:29:08 37

原创 3.10注解

3.10注解

2023-03-13 12:09:18 25

原创 3.13内省及BeanUtils的使用

3.13内省

2023-03-13 12:08:46 174

原创 3.13xml解析

3.13xml解析

2023-03-13 12:06:36 32

原创 Mybatis

Mybatis

2023-03-10 15:20:04 92

原创 实现Mybatis模糊查询的简单示例

实现Mybatis模糊查询的简单示例

2023-03-08 17:04:02 495

原创 Java中Jdk动态代理的实现过程

Java中Jdk动态代理的实现过程

2023-03-08 13:11:01 207 1

原创 类加载器与反射

类加载器与反射

2023-03-06 15:25:20 29

原创 JDBC连接池类与使用装饰设计模式只覆盖类中个别方法

JDBC连接池类与使用装饰设计模式只覆盖类中个别方法

2023-03-03 18:47:20 70

原创 Mybatis中Mapper.xml的参数接受方式

Mybatis中Mapper.xml的参数接受方式

2023-03-02 20:14:27 1231

原创 【Mybatis环境搭建与增删改查】

Mybatis环境搭建与简单增删改查

2023-03-02 15:46:10 61

原创 java反射实现动态代理模式

java反射实现动态代理模式package com.xqy.java;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.util.Set;//代理类和被代理类需要实现的接口interface Human{ String getBelief(); String eat(String food)

2021-01-31 16:22:12 191

原创 力扣算法题

hash相关:(1). 两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。例如:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]class Solution {public: vector<int> tw.

2020-08-21 21:53:33 2272

原创 用指针创建二维数组

//array中有rowNums个元素,每个元素都是一个int*int **array = new int*[rowNums];for(int i = 0;i < rowNums;i++){ //为array中每个int*元素分配columnNums个空间存放int型数据 array[i] = new int[columnNums];}

2020-08-08 16:53:20 374

原创 动态规划

例题1:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。动态规划解题思路:1. 建立一个数组dp与传入函数的数组nums长度相同2. dp[i]表示以nums[i]作为子序列最后一个元素时,这个子序列和的最大值3. dp[i]的取值只可能有两种情况:(1).当dp[i - 1] > 0 时,说明num

2020-08-08 16:53:14 63

原创 形参中指针需要作为结果传出函数

//函数形参中的a需要作为函数执行结果传出函数void test(int* a) { int* b = new int(2); //这里只能使用*a = *b而不能用a = b,否则函数对指针a的操作不能传出函数 *a = *b;}//函数返回值作为函数执行结果传出函数int* test(){ int* b = new int(2); return b;}int main(){ int* a = NULL; a = test();

2020-08-08 16:53:08 301

原创 LeetCode 33:判断链表是否有环

给定一个链表,判断链表中是否有环。返回1表示有环,0表示无环class Solution{public: bool hasCycle(ListNode* head) { ListNode* fast = head; ListNode* slow = head; int pos = 0; while (fast) { pos++; if (pos % 2 ==

2020-08-08 16:52:52 106

原创 LeetCode 32:链表原地逆序

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。class Solution {public: ListNode* reverseList(ListNode* head) { ListNode* previous= NULL; ListNode* temp = NULL; while (head) { temp = head->next; he

2020-08-08 16:52:37 343

空空如也

空空如也

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

TA关注的人

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