- 博客(30)
- 收藏
- 关注
原创 关于::在Mysql和Postgre中的不同含义
"::"是用来查询数据,并给表、列或变量起别名,等同于Alias。"::" 符号是一个强制类型转换符,作用等同于CAST。
2023-10-07 21:38:29
191
原创 实习笔记13-EhCache缓存
最近有把数据从一个函数传递到另一个函数的需求,如果这些数据使用频率很高的话,就可以写进缓存里。所以浅浅了解常用的缓存以及使用场景,使用方法还是很有帮助的。
2023-09-21 21:50:32
170
原创 Spring和SpringBoot
Spring Boot是为构建微服务应用程序而设计的。而虽然Spring本身不是一个微服务框架,但它也提供了许多跨微服务应用程序常见的核心功能,例如AOP、IOC/依赖注入等。(如spring-boot-starter-web或spring-boot-starter-security)中捆绑了大量的功能和插件,使得在需要时添加依赖项非常容易。Spring Boot支持将前端服务和后端服务组合起来配置在一起,可以更好地管理客户端的资源。相比于传统的 Spring 框架,Spring Boot 提供了许多。
2023-09-21 21:24:06
165
原创 计网中常用路由协议
EGP 协议的路由表包括:附近设备的网络地址,路线,确定路由器。EGP协议的功能是维护相邻网络的数据库和可能到达它们的路由路径。OSPF支持分层设计,可以实现更好的路由控制和灵活性。OSPF通常用于大型企业网络和互联网服务提供商(ISP)的网络中。,其基本思想是将网络中所有路由器之间的路由信息互相传递,每个路由器通过比较到达目的地的跳数来选择最佳路径。,具有链路状态路由协议的一些特性。,用于在不同的自治系统之间进行路由选择。BGP支持多路径路由、策略控制和路由聚合等功能,通常用于大型ISP网络和互联网中。
2023-09-18 15:57:06
249
原创 JAVA常用数据类型及API
一、ArrayList和LinkedList比较ArrayList底层基于动态数组实现,LinkedList底层基于链表实现。 对于随机访问(get/set方法),ArrayList通过index直接定位到数组对应位置的节点,而LinkedList需要从头结点或尾节点开始遍历,直到寻找到目标节点,因此在效率上ArrayList优于LinkedList 对于插入和删除(add/remove方法),ArrayList需要移动目标节点后面的节点(使用System.arraycopy方法移动节点),而Lin
2023-09-18 09:32:50
63
原创 美团9.16题目复盘总结
请注意,p= 1的计划是必选的,如果你的方案不包含某个p= 1的计划,则会直接返回答案错误。模糊的点在于到底怎么判断打败怪物的条件,是小美的攻击力大于怪物的血值还是如题所说小美的攻击力大于怪物的攻击力,小美的血值大于怪物的血值。小美在玩游戏,游戏中有n个怪物,怪物的血量为hi,攻击力为ai.小美的血量为H,攻击力为A,小美可以击败血量和攻击力都小于自己的怪物,并且打败后血量降为怪物的血量,攻击力降为怪物的攻击力。输入描述:第一 行三个整数n, H, A,分别表示怪物的数量,小美的血量,小美的攻击力。
2023-09-16 22:00:41
579
原创 在Redis中使用Lua脚本
如果我们的lua脚本比较长,程序在执行的时候将lua脚本发送到redis服务器则可能耗费的带宽多,如果发送的是hash值的话,则耗费的带宽少。的数据类型存在一对一的转换关系,如果将Redis类型转换成Lua类型,然后在转换成Redis类型,那么结果和初试值是一致的。虽然也可以一次执行一组命令,但是如果在这一组命令的执行过程中,需要根据上一步执行的结果做一些判断,则无法实现。的脚本规范,同时我们编写的脚本的时候,不需要定义 Lua 函数。,而redis的lua脚本正好可以实现这一功能。一、Lua脚本的作用。
2023-09-16 16:05:16
1081
原创 Controller和RestController的区别
则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是。如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver。1.@Controller标识一个Spring类是Spring。到页面,则需要在对应的方法上加上@ResponseBody注解。controller处理器。标识类可以接收HTTP请求。
2023-09-06 15:28:55
89
原创 Redis
因为传统的关系型数据库如Mysql已经不能适用所有的场景了,比如秒杀的库存扣减,APP首页的访问流量高峰等等,都很容易把数据库打崩,所以引入了缓存中间件,目前市面上比较常用的缓存中间件有Redis 和 Memcached 不过中和考虑了他们的优缺点,最后选择了Redis。2.Redis 和 Memcached 的优缺点对比和各自的场景。1.为什么选择Redis?
2023-09-03 22:54:57
42
原创 秒杀项目-理论认识
会带来的问题:1.高并发单机的但是抢同一个商品的用户可能有几十万。都是可能发生的。2.超卖秒杀的东西价格优惠,甚至赔本赚吆喝,超卖一定会出问题。3.恶意请求黄牛!搞个几十台机器搞点脚本,模拟出来十几万个人左右的请求。4.链接暴露网页的写VUE的时候是事件触发然后去调用文件里面的接口看源码看不到,但是可以点击一下啊,不过可以对按钮在秒杀前置灰。5.数据库每秒上万甚至十几万的(每秒请求数)直接打到,基本上都要把库打挂掉,而且服务不单单是做秒杀的还涉及其他的业务,没做啥的,别的一起挂,可能。
2023-09-03 22:40:59
57
原创 9月待学清单
开学啦,要好好准备秋招啦。总结一个待学清单,整理亟需学习的内容成体系。2.面向对象基本知识,封装继承多态、SOLID原则。1.24种代码的坏味道,重构方法(抽替组改移)4.缓存:本地缓存和分布式缓存的区别。6.打印堆栈解决:内存溢出和泄露。9.排序、栈、队列、回文的手撕题。7.索引失效的几种情况。8.SQL优化的方法。
2023-08-31 11:23:15
67
原创 实习笔记15-bash常用命令
之前不太常用命令行操作,所以刚开始上手Moba的过程有点子难受。尤其是打印满屏日志出来,根本抓不住重点不知道该看些什么。只能说,有黑客那味儿了!在此总结一下查库查表查日志还有编辑文件等的常规操作。注意不要 rm -rf /* 哦~还可以录制命令,简直不要太省事。把常用命令录下来,一键输入。应该还有健康检查什么的,不记得嘞~
2023-08-25 11:23:22
193
1
原创 实习笔记14-面向对象中的多态
之前一直不太理解多态,为什么要用,怎么用。最近在抽象类中加方法时,用了if …else if …else。然后师父说,这块可以用多态把抽象代码里实现不同子类的逻辑下放,只保留公共功能。好的,来学习一下多态咋用。多态是同一个行为具有多个不同表现形式或形态的能力。
2023-08-25 11:18:10
83
1
原创 实习笔记12-数据库时间函数的使用
从数据库中取时间并转换为其他格式可以在数据库中实现,也可以在代码中实现。在代码中可以调用总结的时间函数工具库中的方法,所以在此总结一下数据库中自带的时间函数的使用。
2023-08-25 11:10:44
182
1
原创 实习笔记11-创建每日实时更新表名
探索了第二种方式,但是H2数据库不支持DATE_FORMAT函数,得自定义。并且H2数据库有可能不支持存储过程,所以挖坑以后探索第一种实现吧。用timertask定时器去创建now的日期。在数据库中用存储过程创建动态变量表名。
2023-08-25 11:07:52
134
1
原创 实习笔记9-TimerTask的使用和测试
TimerThread为Thread的扩展类,会一直从TaskQueue中获取下标为1的TimerTask进行执行。三者关系为:TaskQueue中存放一些列将要执行的TimerTask,以数组的形式存放,下标约小(注:下标为0不处理,即使用的最小下标为1),则表明优先级越高。TimerTask就是一个实现了run方法的类,TimerTask是一个抽象类,实现了Runnable,提供了抽象方法run()。Timer.java中含有3个类:Timer、TimerThread、TaskQueue。
2023-08-16 11:43:06
454
1
原创 实习笔记10-Dao在开发和测试中的注解
可以标注在属性上、方法上和构造器上,如果标注在属性上,则在构造器中就不能使用这个属性(对象)的属性和方法。当标注的属性是接口时,其实注入的是这个接口的实现类, 如果这个接口有多个实现类,只使用@Autowired就会报错,因为它默认是根据类型找,然后就会找到多个实现类bean,所有就不知道要注入哪个。最近在写测试的时候,想把Dao中的query方法mock掉。指定需要mock的类型类(接口或者实现类),生成 Mock 类,其中所有的方法都不是真实的方法,而且返回值都是NULL或者Empty。
2023-08-16 11:41:17
142
1
原创 实习笔记7-模板类中泛型的实现
这是看到的其他人的思路,记录一下:使用泛型的方式可节省很多代码,并且可以合并很多冗余代码,为了最大化的精简代码想到了通过泛型的type用反射的方式实例化对象,这样对象的实例化代码就不用每次都去复写函数来创建了。需求是用泛型把之前的数据指标类和现在的数据指标类传入共同的处理函数,并且数据指标类是同一接口下的同一抽象类的不同实现类。的泛型是伪泛型,这是因为Java在编译期间,所有的泛型信息都会被擦掉,正确理解泛型概念的首要前提是理解类型擦除。二、在接口、模板类与实现类中应用泛型。
2023-08-16 11:35:29
64
1
原创 实习笔记6-K8s弹性伸缩增加服务请求量指标
2.从trace库里调出某一起始时间之后的服务请求数据,根据分钟统计总数,与策略阈值判断。这块学习了泛型方法的标注,从接口到抽象类再到具体类,参数再接口和 抽象类里都是T,在具体类里用标注。原始数据量很大,生产环境都是亿级,如果弹性判断时,再按分钟汇聚,效率非常低。每个弹性伸缩测率的每次弹性伸缩时,再处理数据,性能也比较差,多次执行统计数据的代码很浪费。还学习了用Git提交代码,通过流水线之后,打包并部署在开发环境里,嘿嘿,激动的小手手。
2023-08-16 11:34:40
74
1
原创 实习笔记5-Kubernetes弹性伸缩
Kubernetes支持Pod和集群节点的自动弹性伸缩,通过设置弹性伸缩规则,当外部条件(如CPU使用率)达到一定条件时,根据规则自动伸缩Pod和集群节点。1.监控ConfigMap中的配置信息,并写入数据库。想要做到自动弹性伸缩,先决条件就是能感知到各种运行数据,例如集群节点、Pod、容器的CPU、内存使用率等等。3.与配置策略对比,并执行伸缩动作。2.查Pod的资源利用率。HPA是针对Pod级别的,但是如果集群的资源不够了,那就只能对节点进行扩容了。具体学习了一下弹性伸缩的原理,实现细节。
2023-08-16 11:33:58
72
1
原创 实习笔记4-Kubernetes基础知识
Kubernetes是一个很容易地容器化的应用软件系统,使用Kubernetes能够方便对容器进行调度和编排。Kubernetes提供服务发现、伸缩、负载均衡、自愈甚至选举等功能,让开发者从基础设施相关配置等解脱出来。1.如何创建一个K8S对象:必须提供对象的 spec,用来描述该对象的期望状态, 以及关于对象的一些基本信息(例如名称)。一般用yaml文件表示,如下:使用kubectl命令行接口(CLI)的命令, 将.yaml文件作为参数。
2023-08-16 11:32:02
39
1
原创 实习笔记2-Unit Test
我理解的BDD不仅是test命名上是should_return_XXX_when_XXX_given_XXX,还是代码分层上的三段式,第一段写为测试准备的条件,第二段是什么情况什么行为触发这个测试,第三段是对测试结果的验证。验证的时候不仅是状态码和返回信息success就可以了,update要验证数据库里和response返回的是不是一致,到底有没有更新到库里。创建新表之后先delete表数据一下,insert之前要把同id的旧数据删除,update按需更新字段,判断不为空后更新。
2023-08-16 11:27:26
342
1
原创 实习笔记1-微服务架构
整理一下最近学习的内容框架,我的带教师父超级nice捏,入职以来的确是根据我的水平和欠缺的地方来一点点引导我学习的!学习微服务框架的层次和功能以及包结构,就是简单了解各个模块功能和分包策略啦,把对应功能的文件放在相应的包结构下。但其实对于依赖和依赖倒置不是很理解,挖坑以后填。Adapter层负责对前端展示的路由和适配,相当于MVC的controller。Application层父子获取输入,组装上下文,校验参数,调用领域层做业务。Domain层是核心,不依赖其他层次,对App层提供业务实体和业务逻辑计算。
2023-08-16 11:25:24
176
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人