- 博客(24)
- 收藏
- 关注
原创 反射&动态代理
是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能够调用它的任意属性和方法; 这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。利用创建的对象调用类里面的内容可以跟,把要创建的对象信息和方法写在配置文件中。读取到什么类,就创建什么类的对象读取到什么方法,就调用什么方法此时当需求变更的时候不需要修改代码,只要修改配置文件即可。
2024-07-04 20:08:27
1010
原创 黑马头条学习笔记
文章创建后会审核,审核成功后会创建article,创建article时会创建html然后保存到minio,可以在把html文件上传到minio中时发送消息、创建索引,因为此时已经有了静态url信息。搜索无非就是从es中获取数据。kafka:1. 自媒体端上下架后放入kafka,app端拿数据进行上下架2. 文章创建后会审核,审核成功加入消息队列,等待同步到es中。4.将计算后的数据放入kafka,然后供article 服务进行计算分数redis:1.使用zset和list实现定时任务。
2024-06-04 18:36:14
1380
原创 商城业务面试
cookie保存user-key,每次访问时会验证当前用户登录信息(是否有session),如果有session,表示用户登陆了,则根据用户的登录信息去查询数据库。如果未登录,则根据session中的user-key来添加购物车。如果用户登陆了,且本地有购物车session,则合并购物车。解决方案:查看订单信息时传递uuid给前端,提交订单时携带uuid,在从redis查到uuid,使用redis+lua脚本将 对比和删除 为原子操作。3. 用户提交订单的时候,要防止重复提交。(1)集群情况下的定时任务。
2024-04-09 02:01:48
156
原创 LeetCode笔记
例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。对后面的每一位进行继续遍历,能够保留的前提是与当前位置的前面 k 个元素不同(答案中的第一个 1),因此我们会跳过剩余的 1,将第一个 2 追加,得到 1,1,2。这时候和答案中的第 1 个 2 比较,只有与其不同的元素能追加到答案,因此剩余的 2 被跳过,3 被追加到答案:1,1,2,2,3。如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。
2024-03-29 02:24:20
799
1
原创 java面试题
总的来说,Session和Cookie是用于在服务器和客户端之间进行状态管理的机制,而Token则是一种无状态的身份认证机制,它们各自有着不同的特点和适用场景。Java提供了两种动态代理的实现方式:基于接口的动态代理和基于类的动态代理。Session、Cookie和Token是用于用户身份认证和状态管理的常见机制,它们在用户登录时的交互过程中扮演着不同的角色。在实际开发中,反射和动态代理通常结合使用,例如通过反射机制获取类的信息,然后使用动态代理来创建代理对象并实现一些额外的功能。
2024-03-29 00:56:29
695
1
原创 JUC并发编程学习笔记
JUC就是java.util.concurrent下面的类包,专门用于多线程的开发。juc.locks下面三个接口 lock condition readwritelockJMM:JAVA内存模型,不存在的东西,是一个概念,也是一个约定!关于JMM的一些同步的约定:1、线程解锁前,必须把共享变量立刻刷回主存;2、线程加锁前,必须读取主存中的最新值到工作内存中;3、加锁和解锁是同一把锁;
2024-03-25 21:28:20
1041
原创 学成在线笔记
spring:cloud:nacos:server-addr: 192.168.101.65:8848 #nacos地址discovery:namespace: dev #服务管理命名空间config:namespace: dev #独有的配置管理命名空间extension-configs: #引入别人的配置文件shared-configs: #引入共用的配置文件profiles:active: dev # 决定了进入nacos中的content-api-dev配置文件。
2023-06-27 14:41:07
734
原创 一些重要的排序
1.快速排序#include <iostream>using namespace std;int partition(int a[], int l, int r) { int pivot = a[l]; while (l < r) { while (l < r && a[r] >= pivot) r--; a[l] = a[r]; while (l < r && a[l] <= pivot) l++; .
2022-03-11 12:55:54
142
原创 十进制转R进制模板
class Solution {public: string convertToBase7(int num) { return tenToR(num, 7); }private: const string words = "0123456789abcdef"; string tenToR(int num, const char R) { // 特判0 if (num == 0) { return ".
2022-03-07 08:32:59
178
原创 DFS深度优先搜索基础笔记
深度优先索索和递归有所联系,我们所知道的递归求阶乘和斐波那契都可以称作深度优先搜索。int fib(int n){ if(n==1 || n==2){ return 1; } return fib(n-1) + fib(n-2);}若为迷宫搜索,则向上下左右四个方向搜索,则代码为:bool dfs(int x,int y){ if ((x,y)是终点 ){ //找到了路径 return true; } 标记(x,y)已经访问 向上走到位置(tx, ty) if
2022-03-02 23:35:07
448
原创 06.hdu 2648“Shopping”——map的应用
问题描述每个女孩都喜欢购物,蒲公英也喜欢。现在她发现这家店因为春节快到了每天都在涨价。她喜欢上了一家叫做“memory”的店。现在她想知道这家店每天变化后的价格排名。输入一行包含一个数字n(n<=10000),代表商店的数量。然后n行,每行包含一个字符串(长度小于31,只包含小写字母和大写字母。)代表店铺名称。然后一行包含一个数字 m (1<=m<=50),代表天数。然后m个零件,每个零件包含n行,每行包含一个数字s和一个字符串p,代表这一天,店铺p的价格上涨了s。输.
2022-02-25 22:48:56
411
原创 05.hdu 1276“士兵队列训练问题” —— set的应用
有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛。球赛的规则如下:如果A打败了B,B又打败了C,而A与C之间没有进行过比赛,那么就认定,A一定能打败C。如果A打败了B,B又打败了C,而且,C又打败了A,那么A、B、C三者都不可能成为冠军。根据这个规则,无需循环较量,或许就能确定冠军。你的任务就是面对一群比赛选手,在经过了若干场撕杀之后,确定是否已经实际上产生了冠军。
2022-02-25 22:06:21
92
原创 04.hdu 1276“士兵队列训练问题” —— list和链表的应用
Problem Description某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数。以后从头开始轮流进行一至二报数、一至三报数直到剩下的人数不超过三人为止。Input本题有多个测试数据组,第一行为组数N,接着为N行新兵人数,新兵人数不超过5000。Output共有N行,分别对应输入的新兵人数,.
2022-02-25 22:01:56
105
原创 03.hdu 1702 解救ACboy —— 栈和队列的应用
题目描述:ACboy被绑架了!!他非常想念他的母亲,现在非常害怕。你无法想象他被安置在多么黑暗的房间里,好可怜:作为一个聪明的 ACMer,你想把 ACboy 从怪物的迷宫中救出来。但是当你到了迷宫门口,怪物说:“我听说你很聪明,但如果不能解决我的问题,你会和 ACboy 一起死。”怪物的问题显示在墙上:每个问题的第一行是一个整数N(命令的数量),和一个单词“FIFO”或“FILO”。(你很高兴,因为你知道“FIFO”代表“先进先出”,“FILO”表示“First In Last O...
2022-02-25 20:51:34
567
原创 02.hdu 1062”Text Reverse“ —— stack的应用
问题简述: 输入测试例子数量n,然后输入t行字符串,将每一行的每一个单词逆序后输出该行的语句(字符串)。首先先了解一下getchar()的用法:关于getchar的用法及实例解析_m0_53558236的博客-优快云博客_getchar的用法举例题解代码为:#include <iostream>using namespace std;#include <stack>int main(){ int n;cin>>n; getchar()
2022-02-25 20:19:08
481
原创 01.hdu 4841”圆桌问题“ —— vector的应用
Problem Description圆桌上围坐着2n个人。其中n个人是好人,另外n个人是坏人。如果从第一个人开始数数,数到第m个人,则立即处死该人;然后从被处死的人之后开始数数,再将数到的第m个人处死……依此方法不断处死围坐在圆桌上的人。试问预先应如何安排这些好人与坏人的座位,能使得在处死n个人之后,圆桌上围坐的剩余的n个人全是好人。Input多组数据,每组数据输入:好人和坏人的人数n(<=32767)、步长m(<=32767);Output对于每一组数据,输出2n个大写字母,...
2022-02-25 17:44:54
132
原创 做题笔记ing
1.对一组数字序和去重进行排#include <iostream>#include <bits/stdc++.h>using namespace std;int num[105],arr[105];int main(){ int n, m; cin>>n; for(int i=0;i<n;i++){ //初始化 cin>>num[i]; } sort(num,num+n); //排序 m = 0;
2022-02-15 19:47:19
374
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人