- 博客(24)
- 收藏
- 关注
原创 纵横职场八大秘诀
,通过幽默的语言、反问的句式,起到缓解尴尬的作用。”,你就直接回复 “管你屁事”,表示 Leader 分工明确,称赞公司制度完善。Leader 安排给你一个 Jira 任务,你就回复 “就这?Leader 给你发了一堆任务,先回个 “哦”。Leader 让你去趟办公室,你就回他“你自己没腿过来吗?Leader 说 “辛苦了”,你就回“你也别闲着,帮我倒杯水”,表示对领导关怀的认可。Leader 问你进度怎么这么慢,你就回“有本事你来”,表示对他工作能力的肯定。Leader 微信找你,你就回 “
2024-06-19 09:05:47
123
原创 JVM调优实战
这个因为之前已经大概知道Young GC的频率,假设是每5分钟一次,那么可以执行命令 jstat -gc pid 300000 10 ,观察每次结果eden,survivor和老年代使用的变化情况,在每次gc后eden区使用一般会大幅减少,survivor和老年代都有可能增长,这些增长的对象就是每次Young GC后存活的对象,同时还可以看出每次Young GC后进去老年代大概多少对象,从而可以推算出老年代对象增长速率。
2024-06-18 10:40:31
411
原创 java 命名规范超全
处理特定功能的 Handler,Predicate, Validator 表示处理器,校验器,断言,这些类工厂还有配套的方法名如handle,predicate,validate。私有项目,指个人发起,独自完成,非公开的私人使用的项目,copyright属于个人。接口名除了用名词和名词短语以外,还可以使用形容词或形容词短语,如 Cloneable,Callable 等,表示实现该接口的类有某种功能或能力。个人项目,指个人发起,独自完成,可分享的项目,copyright主要属于个人。
2024-06-13 14:44:21
906
原创 释放不了的16800条线程
其实这个算比较低级的错误,很简单的并发问题,但是一不注意就容易写出来。但是排查难度挺高的,因为大量的线程都是没有我们一点业务代码堆栈,根本不知道线程是从哪里创建出来的,和以往的排查方法算是完全不同。这次是属于运气爆棚然后找到的代码,排查完问题我也想过,有没有其他的方法来定位这么多相同的线程是从哪里创建出来的呢?我试着用内存快照去定位,确实有一点线索,但是这属于是马后炮了,是我先读过源码才知道内存快照可以定位到问题,有点从结果来推过程的意思,没啥好说的。
2024-06-13 09:43:19
1931
原创 SpringBoot 结合Java19虚拟线程
虚拟线程是Java19开始增加的一个特性,和Golang的携程类似,一个其它语言早就提供的、且如此实用且好用的功能,作为一个Java开发者,早就已经望眼欲穿了。从上面的性能对比来看,虚拟线程在性能方面有明显的优势,但是要注意的是,我们上面的测试都是让线程等待了50ms,这是模拟什么场景?没错,是IO密集型场景,即线程大部分时间是在等待IO,这样虚拟线程才可以发挥出它的优势,如果是CPU密集型场景,那么可能效果并不大。
2024-06-13 09:19:10
531
原创 一次穿透MYSQL MVCC
MVCC机制的全称为,即多版本并发控制。MVCC主要是为了提升数据库并发性能而设计的,其中采用更好的方式处理了读-写并发冲突,做到即使有读写冲突时,可以实现并发执行,从而提升并发能力,确保了任何时刻的读操作都是非阻塞的。在众多的MySQL开源存储引擎中,几乎只有InnoDB实现了MVCC机制,其他的存储引擎如:MyISAM、memory等存储引擎中并未实现MVCC。
2024-06-12 14:48:18
1494
原创 Java项目CPU100%如何处理
计算密集型的任务需要大量的计算能力。命令jstack是java堆栈的跟踪工具,可以打印出程序中所有线程的堆栈信息,包括线程状态,调用栈信息,锁信息等。这会导致所有线程获得的 CPU 时间减少,当每个线程都试图完成自己的任务时,CPU 时间可能会被耗尽。的14行左右,这里给出的是14行,但是实际情况是14行的附近,结合代码来看一下就很容易问题。命令来查看程序的所有堆栈信息,但是,这里需要有一个注意的点,26976这个是一个十进制。的,使用jstack看到的nid是十六进制,所以我们需要转换,可以使用。
2024-06-12 14:15:37
2445
原创 UML建模概览
UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。一、基本概念如下图所示,UML的图的概念分为两层:最底层称为图Diagram,把图按照某种方式组织与分类,称为高层视图View。UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态图和动态图。
2024-05-31 10:37:38
647
原创 springboot结合Java解决跨域请求问题
跨域请求问题通常由浏览器的同源策略(Same-Origin Policy)引起,其限制了从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。以上就是使用Java服务端结合Spring Boot框架解决跨域请求问题的简单步骤。完成以上配置后,重启应用程序并进行测试,看看是否仍然存在跨域请求问题。),并且在一小时内不再发出预检请求(这个配置允许所有来源的请求(),允许携带 Cookie(
2023-05-05 15:23:55
157
原创 CLASS文件的前生今世
class文件全名称为Java class文件,主要在平台无关性和网络移动性方面使Java更适合网络。它在平台无关性方面的任务是:为Java程序提供独立于底层主机平台的二进制形式的服务。该文件打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件。
2023-03-08 10:34:29
130
原创 JVM对象的前生今世
虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
2023-03-07 11:47:38
70
原创 JVM内存的前生今世
class文件全名称为Java class文件,主要在平台无关性和网络移动性方面使Java更适合网络。它在平台无关性方面的任务是:为Java程序提供独立于底层主机平台的二进制形式的服务。该文件打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件。
2023-03-07 11:11:30
122
原创 计算机课程设计流程
1.选择一个你感兴趣的主题: 选择一个你感兴趣的主题将便你更有动力去完成这个课程设计,并且你会更有可能对这个项目投入更多的时间和精力。2.确定项目的重要性和意义: 说明你的项目对于社会、行业、学术界等方面的重要性和意义,以及你希望通过这个项目达到什么样的目标和效果。5.确定项目的技术方案:你需要确定你将使用哪些技术和工具来完成你的项目,并且需要确保你具备这些技能。4.确定项目预算: 估计你的项目成本,并确定你需要的预算。1,确定项目目标和范围: 你需要明确你的项目目标和范围,包括你想要完成的功能和特性。
2023-02-21 10:34:43
267
原创 IntelliJ IDEA 初始化springboot项目
其中,src/main/java目录下是Java代码,src/main/resources目录下是资源文件,pom.xml是Maven配置文件。Group是指你的组织或公司名称,Artifact是指项目名称,Version是指项目的版本号。在“Dependencies”页面中,选择你需要的依赖。在“New Project”页面中,输入项目名称,选择项目保存路径,并选择使用的Spring Boot版本。在弹出的对话框中,选择“Spring Initializr”,然后点击“Next”按钮。
2023-02-17 11:14:00
633
原创 MAC上搭建Redis
如果启动成功,会显示一条类似于“[46347] 14 Oct 16:44:37.474 * Ready to accept connections”的消息。配置Redis 在终端中打开Redis的配置文件 redis.conf。下载并安装Redis 你可以在Redis官网上下载最新版本的Redis,然后运行安装程序进行安装。这样Redis就只能通过本地访问,可以提高安全性。如果成功连接Redis,会显示“PONG”消息。现在,你已经成功在MAC上搭建了Redis。
2023-02-17 11:06:28
251
原创 MAC上搭建MySQL
下载并安装MySQL 你可以在MySQL官网上下载最新版本的MySQL Community Server,然后运行安装程序进行安装。配置MySQL 在终端中打开MySQL的配置文件 my.cnf。如果启动成功,会显示一条类似于“Starting MySQL. SUCCESS!然后输入之前设置的密码。如果成功连接MySQL,会显示MySQL命令行提示符。其中,'newpassword'是你要设置的新密码。这样MySQL就只能通过本地访问,可以提高安全性。现在,你已经成功在MAC上搭建了MySQL。
2023-02-17 11:01:56
301
原创 JVM类加载学习笔记
比如我们的Math类,最先会找应用程序类加载器加载,应用程序类加载器会先委托扩展类加载器加载,扩展类加载器再委托引导类加载器,顶层引导类加载器在自己的类加载路径里找了半天没找到Math类,则向下退回加载Math类的请求,扩展类加载器收到回复就自己加载,在自己的类加载路径里找了半天也没找到Math类,又向下退回Math类的加载请求给应用程序类加载器,应用程序类加载器于是在自己的类加载路径里找Math类,结果找到了就自己加载了。重新创建类加载器,重新加载jsp文件。
2023-02-16 09:08:33
78
原创 maven学习笔记
如果项目非常庞大,就不适合使用package来划分模块,最好是每一个模块对应一个工程,利于分工协作。借助于maven就可以将一个项目拆分成多个工程② 项目中使用jar包,需要“复制”、“粘贴”项目的lib中同样的jar包重复的出现在不同的项目工程中,你需要做不停的复制粘贴的重复工作。借助于maven,可以将jar包保存在“仓库”中,不管在哪个项目只要使用引用即可就行。③ jar包需要的时候每次都要自己准备好或到官网下载借助于maven我们可以使用统一的规范方式下载jar包,规范。
2023-02-09 14:42:13
158
1
原创 redis学习笔记
一 什么是NoSQL?Nosql = not only sql(不仅仅是SQL)关系型数据库:列+行,同一个表下数据的结构是一样的。非关系型数据库:数据存储没有固定的格式,并且可以进行横向扩展。传统RDBMS和NoSQLRDBMS组织化结构固定SQL数据和关系都存在单独的表中(行列)DML(数据操作语言)、DDL(数据定义语言)等严格的一致性(ACID): 原子性、一致性、隔离性、持久性基础的事务NoSQL不仅仅是数据没有固定查询语言。
2023-02-09 14:31:06
136
原创 mongoDB 学习笔记
官网:MongoDB: The Developer Data Platform | MongoDBMongoDB 是一个基于分布式文件存储的数据库,由 C++ 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。07/05/2017 Current Stable Release (3.4.6)Try MongoDB Atlas Products | MongoDBMongoDB 将数据
2023-02-09 14:23:19
176
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人