- 博客(39)
- 收藏
- 关注
原创 CSharp和Java
最近在做一些c#重构成Java的项目,经过一段时间的痛苦期(作为一个Java的拥趸,刚开始看其他语言确实很痛苦),算是终结出了一点经验,记录一下:C# 和 Java 都是广泛使用的面向对象编程语言,它们在语法、特性和应用场景上有许多相似之处。
2025-03-05 17:28:48
482
原创 本地代码(如 HTML、CSS、JS 文件)通过 Nginx 服务进行访问(配置 Nginx 来让前端访问本地代码)
通过 Nginx 作为 Web 服务器,指向你本地的静态文件或前端代码目录,使得前端应用可以通过浏览器访问这些文件。
2025-02-28 17:33:09
360
原创 阿里云sls日志服务如何查某个具体字段的平均数
查询线上某个接口(如:list_new)的成功率和时延查接口时延的写法在网上找了一堆,都是语法错误,最后在阿里云官方api找到了正确的。
2023-12-11 10:44:50
1855
原创 定时补偿方案
补偿机制;xxl-job;分布式任务调度平台;定时任务循环查询某张表一天内的全量数据,一次查询出n条数据;xxl-job循环扫描;总结:遇到问题能抛出去就抛出去!能麻烦别人就别麻烦自己
2023-12-06 10:54:21
1742
原创 Zookeeper
Zookeeper是一个分布式协调服务,最初由雅虎公司开发。它提供了一个简单的文件系统界面,可以在分布式环境中保存和管理数据。Zookeeper的设计目标是提供高性能、高可用、严格顺序的服务。
2023-12-05 16:19:56
1395
原创 Elasticsearch
Elaticsearch,简称为 ES,是整个 ElasticStack 技术栈的核心, ES 是一个开源的高扩展的分布式全文搜索引擎 。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据。
2023-11-28 10:06:37
1847
原创 Linux系统下脚本操作、host文件修改
是一个文件,它存储了计算机上主机名和 IP 地址之间的映射关系。在 Linux 和 Unix-like 操作系统中,当你需要访问一个远程服务器时,你通常需要知道该服务器的 IP 地址。但是,如果你有一个易于记忆的主机名,那么你就可以使用该主机名来代替 IP 地址进行访问。文件,你需要使用管理员权限(例如通过 sudo 命令),然后使用文本编辑器打开该文件。请注意,修改该文件可能会对系统产生影响,因此请谨慎操作。文件中的相应条目,并将该主机名映射到其对应的 IP 地址。保存并退出(注意要输入:)
2023-11-24 16:34:32
817
原创 Dubbo框架
Dubbo 是阿里巴巴开源的一个Java高性能优秀的服务框架, 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,本文是我对这dubbo的理解:主要内容有介绍什么是RPC;dubbo高性能的原因;dubbo的框架结构梳理
2023-11-23 12:04:35
1650
原创 断言语句 assertion
断言(assert)语句一般用于程序不准备通过捕获异常来处理的错误当发生某个错误时,要求程序必须立即停止执行。在调试代码阶段让断言语句发挥作用, 这样就可以发现一些致命的错误,当程序正式运行时就可以关闭断言语句,但仍把断言语句保留在源代码中,如果以后应用程序又需要调试,可以重新启用断言语句。
2023-11-21 10:13:13
290
原创 类加载器与反射
java类加载机制;JVM加载Class文件的原理机制;类装载方式;类装载的执行过程;类加载器;反射机制;静态编译与动态编译;双亲委派机制;如何破坏双亲委派机制;反射的使用场景;Java中获取反射的三种方法;反射可以获取“私有”方法或构造函数或私有成员变量;静态方法和实例方法的区别
2023-11-20 19:09:13
464
原创 Linux解压rar文件
rar x abc.rar #将aa.rar压缩文件解压到aa目录下,并保持原来压缩之前aa文件的目录组织结构。rar e abc.rar #将aa.rar压缩文件解压到当前目录,aa文件中原包含的目录全没有。-vf` 表示指定要监视的文件。下载安装rar压缩软件。
2023-11-17 14:34:08
215
原创 Pair用法示例:
这里用到了 org.apache.commons.lang3.tuple.Pair 来封装数据(就是不想自己再写一个 DO 或者 VO 或者 MO)在Java中,Pair是一种简单的数据结构,用于存储两个相关联的值。它没有特定的内置类,但可以通过自定义实现或使用Apache Commons库中的Pair类来实现。
2023-11-15 09:59:46
693
原创 MyBatis一二级缓存
一级缓存的应用场景:对数据的实时性要求不高的情况下,可以使用(虽然此时缓存与数据库数据不同,但只要有对account里的数据做增删改的操作,数据就会清空,就又同步了),它会直接从缓存里拿数据(效率提高很多);执行了增删改的任意操作,都会清空一级缓存。缓存 ,原理与一级缓存一样,但是它可以作用于不同的sqlSession。里的缓存,就会出现缓存与数据库数据不一致的情况。里的缓存(只会清空主表的缓存),此时。做一个连表查询,它的二级缓存是存在。默认用的是一级缓存,不用二级缓存。写在哪,它的缓存就存在哪个。
2023-10-24 17:11:04
97
原创 万万没有想到,打个日志还能打出一个BUG来
grep,只能查出关键字所在行,没有上下文信息less,可以看上下文以后排查日志都用less命令,grep虽然也能找到问题,但是无法准确定位到,有些很低级的错误,写出来后本人很难靠看代码发现。
2023-10-16 09:35:32
289
6
原创 Merge之后,还没有Push,如何回滚
查看git执行历史记录GIT所有的执行记录会以倒叙呈现;最上面的就是需要回滚的merge序列号,下一个就是需要回退的版本序列号;
2023-07-21 15:49:17
1881
原创 XXL-JOB设计之分片广播 & 动态分片
xxl-job通过分片广播实现海量数据的处理;xxl-job实现缓存预热;XXL-JOB设计之分片广播 & 动态分片
2023-06-25 17:33:11
4861
原创 查看当前分支是从那个分支拉来的
git reflog --date=local | grep 分支名。可以查出所有操作记录按倒叙排列。查出是从预发布分支拉来的。
2023-04-25 16:12:42
2939
原创 GIT代码暂存
撤销 git commit:git reset --soft HEAD^ ;git stash:暂存代码;idea上操作git stash;git stash clear了,找回误删的stash;新增的文件,直接执行stash是不会被存储的:
2023-04-23 17:47:47
5492
原创 《面试笔记》
线程池的最大核心线程数到底如何设置(cpu密集型,IO密集型)*CPU密集型:根据cpu的核数(是几核的就定义为几)可以保持CPU的效率最高!如何获取cpu核数:方式1、查看我们任务管理器,查看性能,cpu(12核)IO密集型:判断我们程序中十分耗IO的线程。(只要大于这个数就ok了****CPU密集型:核心线程数=CPU核心数(或 核心线程数=CPU核心数+1)。I/O密集型:核心线程数=2*CPU核心数(或 核心线程数=CPU核心数/(1-阻塞系数))。CPU密集型应用,最大线程设置为 N+1。
2023-02-24 17:27:24
236
原创 Redis常见问题
惰性删除了。这就是说,在你获取某个 key 的时候,redis 会检查一下 ,这个 key 如果设置了过期时间那么就判断是否过期了?如果过期了此时就会删除,不会给你返回任何东西。1. 定时删除 原理:给每一个过期key都生成一个定时器,一旦过期了就马上删除。优缺点:内存空间利用率高,但CPU占用高。2. 惰性删除 原理:当key查询时才检查它是否过期,如果过期则直接删除。优缺点:CPU占用低,但内存空间利用率低,容易出现OOM.3. 定期删除 原理:以某种频率定期去扫描过期key,如果过期则删除。
2023-02-01 10:37:51
114
原创 RabbitMQ(消息队列,消息中间件)
MQ:进行消息传输的中间者(服务之间可以进行消息的传递),它能让服务异步,或者说服务之间解耦的实现 小tips:spring是解类与类之间的耦合;开发追求的就是低耦合,高内聚。
2022-12-26 15:10:42
256
原创 mac启动idea后显示“idea”意外退出
每个人遇到的异常可能不同,我遇到了两种,一开始一打开idea就显示“idea”意外退出,重试一直无效,将破解fineagent.jar包的位置添加入idea.vmoptions后,就不跳出这个提示,但还是无法打开;查看运行日志后发现是之前删开发文件的时候把idea的VM options配置文件给删了。恢复配置文件后,问题解决。一定要一行行看日志,网上的解决文章都是适用于自己出现的问题!首先推荐一篇靠谱的idea破解文章。下载好idea后,安装后打开显示。一直点击重新打开一直无效;
2022-12-01 21:53:10
9954
18
原创 JVM调优
JVM有五大区,方法区,堆,java栈,native栈(本地方法栈),程序计数器;这五大区可以分为两大块线程共享区;线程私有区;线程私有区中比较重要的就是Java栈,栈中存储的是栈帧,栈帧可以理解为方法,它里面有四块,返回地址记录程序的执行行数,如果抛异常是它来记录错误行数的;动态连接写代码的时候有时候一个对象会执向多个引用,由它来记录指向的引用对象;局部变量表和操作数栈来记录JVm执行指令的;程序计数器。...
2022-07-31 17:01:55
155
原创 Redis
项目中没有遇到过,可以通过持久化来解决)把数据永久性存储在硬盘,防止redis数据丢失就是持久化,两种方式默认开启RDB(快照,每隔一段时间进行一次全量备份,恢复速度快,但是会丢失数据(因为是一段时间备份一次,还没有备份的时候服务器宕机,内存清空了,中间这段时间的数据就会丢失)),AOF(日志,每次操作,都会记录对应的日志,恢复速度慢,硬盘占用空间,备份数据全,不会出现丢失)。...
2022-07-28 12:27:12
312
原创 MySQl锁
每次操作只锁一行(开锁大,加锁慢;发生锁冲突的概率最低,并发度最高;每次操作锁整个表(加锁和释放锁很快;锁定粒度大,发生锁冲突的概率最高,并发度最低)排它锁,当事务在操作数据的时候把这部分的数据锁定,直到操作完毕再解锁,其他事务才可以操作这个数据。数据库中有version字段代表这个表是有乐观锁的实现,可以保障一些敏感数据的变化(账号等)写比较多的情况用悲观锁(经常发生冲突),想要绝对安全就表锁,想要相对安全就行锁。两种锁各有优点,乐观锁适用于写比较少的情况(冲突发生的较少的时候)...
2022-07-25 21:28:07
354
原创 MySQL性能优化
硬件,系统配置,数据库表结构,SQL及索引硬件可能是CPU不行,好的服务器和差的服务器性能肯定不一样系统配置服务器系统、数据库服务参数、给内存的大小数据库表结构分库,分表,表设计(表的字段不能太多,字段多的表尽可能的拆分成多个表可以提高性能)sql的优化索引;引擎;语句复合索引的时候,是从最左边开始匹配的创建一张影子表,隐藏一些比较敏感的字段,修改影子表,主表也会一起修改。...
2022-07-25 17:29:21
754
原创 浅聊多线程
两个服务同时执行一个任务时,需要保证线程的安全,会用到分布式锁,当其中的一个服务拿到执行权会通过一个命令setNX在redis里设置一个唯一的值(相当于是获得了锁),在它执行完后再执行一个命令delKey(相当于释放锁),另外一个服务就有机会去拿执行权了,这就可以保证线程的安全。但是这里存在一个问题,就是A服务得到锁后,异常了,这个时候就无法释放锁了,其他服务就无法拿到锁,就相当于死锁了。......
2022-07-15 23:31:40
537
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人