
代码人生
文章平均质量分 59
羱滒
励志成为攻城狮的程序猿,遇到问题冷静分析,没有解决不了的问题,只是需要时间。与君共勉
展开
-
docker安装 minio,nginx 配置 minio ssl 证书,一文搞定。
首先,你需要拉取 MinIO 和 Nginx 的 Docker 镜像。原创 2025-02-26 23:06:29 · 657 阅读 · 0 评论 -
sql调优之数据库开发规范
【推荐】 pg建议使用ip4,ip4r,ip6,ip6r,ipaddress,iprange 来存储IP,IP范围;【强制】设计时字段统一, varchar,TEXT字段以C_开头,int,numeric以N_开头,日期以D_开头,时间以DT_开头,数组以ARR_开头,JSONB字段以J_开头。【强制】 禁止在大字段上面建立索引,btree索引字段不建议超过2000字节,如果有超过2000字节的字段需要建索引,建议使用函数索引(例如哈希值索引),或者使用分词索引。在书写sql的过程中,可谓百花争鸣。原创 2025-02-13 21:59:03 · 785 阅读 · 0 评论 -
docker 安装与配置 gitlab
接下来,可以通过运行以下命令来启动 GitLab 实例。为了确保数据持久化,我们需要将宿主机的目录挂载到容器中,以便 GitLab 的配置和数据能够在容器重启后保持。首先,我们需要拉取 GitLab 的官方 Docker 镜像。安装完成后,GitLab 应该可以通过浏览器访问了。GitLab 在第一次启动时会初始化配置并生成相应的配置文件。以上步骤应该帮助在 Docker 中安装并运行 GitLab。文件中进一步配置 GitLab 的设置。默认情况下,GitLab 的管理员账户用户名是。原创 2024-12-29 23:53:46 · 562 阅读 · 0 评论 -
分数限制下,选好专业还是选好学校?
但有时候“鱼与熊掌不可兼得”,在分数受限的条件下,是选择一个心仪的专业还是选择一个知名度更高的学校?选择专业,意味着你将深入这个领域,直接影响未来的职业发展和个人兴趣的培养;而选择学校,则关系到你将置身于怎样的学术氛围和社交环境中,这对自身的综合素质提升和视野拓展同样至关重要。无论你是倾向于专业优先,还是学校优先,或是有其他独到的见解,我们都期待你的分享!不然大学毕业,你又会担心,专业没学好,学校不顶尖。出名学校在找工作时,自动排掉了不好的工作。hr 首先就挑选了一遍,一个出名的学校,肯定是加分项。原创 2024-06-19 11:48:52 · 360 阅读 · 0 评论 -
初识zookeeper
zookeeper 动物园管理者。起源于雅虎,由于雅虎内部系统过多且都是用动物命名的,zookeeper用于管理这些系统。由此而来。专业术语:分布式协调服务,典型的分布式数据一致性解决方案。可解决问题:数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列。个人理解:就是一个可以安装在多个计算机上,保持数据一致性问题的项目。原创 2024-06-13 11:54:35 · 560 阅读 · 0 评论 -
解决:git SSL certificate problem: unable to get local issuer certificate
错误: git SSL certificate problem: unable to get local issuer certificate。解决:git SSL certificate problem: unable to get local issuer certificate。这个问题是由于没有配置信任的服务器HTTPS验证。默认,cURL被设为不信任任何CAs,就是说,它不信任任何服务器验证。原创 2024-06-05 11:39:02 · 1739 阅读 · 0 评论 -
sql 调优(一)
查询优化:避免使用SELECT *,只选取需要的列;使用LIMIT限制查询结果集大小。SQL调优是一个复杂的过程,涉及多个方面,包括查询优化、索引优化、表结构优化等。使用EXPLAIN分析查询:这可以提供查询执行计划,帮助识别潜在的性能问题。避免函数和计算:在WHERE子句中避免对列进行函数操作,这会阻止索引使用。使用合适的数据类型:选择合适的数据类型可以有效减少存储空间,提高查询效率。批量操作:对于大量数据的插入和更新操作,使用批量插入可以提高效率。使用索引:确保查询中涉及的列都有适当的索引。原创 2024-06-05 10:56:57 · 519 阅读 · 0 评论 -
分布式事务解决方案
有许多分布式事务中间件(如阿里的Seata、Spring Cloud的分布式事务等),它们提供了一套完整的分布式事务解决方案,包括事务协调、事务日志、分布式锁等功能。2PC 是一种经典的分布式事务协议,它确保在多个参与者之间的事务达成一致。2PC 的问题是它在第二阶段需要所有参与者的响应,如果有参与者故障或网络问题,可能导致事务一直处于等待状态。3PC 解决了2PC中的悬挂事务问题,但仍然存在一些问题,如需要复杂的协调和超时机制。尝试阶段执行所有参与者的操作,确认阶段执行确认操作,取消阶段执行回滚操作。原创 2024-06-04 17:37:34 · 536 阅读 · 0 评论 -
声明式事务原理,传播机制,事务失效情况一
声明式事务是一种通过配置而不是编程方式来管理事务的方法,它的原理是基于代理机制和AOP(面向切面编程)实现的。Spring 提供了声明式事务管理的支持,使得开发者可以通过配置文件或注解来定义事务规则,而不必在业务逻辑代码中编写事务管理代码。原创 2024-06-03 19:29:03 · 661 阅读 · 0 评论 -
java注解能继承吗?可以的
虽然 Java 注解默认不具有继承性,但可以通过自定义注解并使用元注解 @Inherited 来实现注解的继承性。使用 @Inherited 元注解的注解将会在子类上自动继承。原创 2024-06-03 19:27:57 · 2165 阅读 · 0 评论 -
Bean初始化后做修改,有哪些方式?
实现 BeanPostProcessor 接口,它包括 postProcessBeforeInitialization 和 postProcessAfterInitialization 方法,可以在 Bean 初始化前后对 Bean 进行修改。实现 BeanDefinitionRegistryPostProcessor 接口,它的 postProcessBeanDefinitionRegistry 方法允许在容器注册 Bean 定义之前修改或添加 Bean 的定义。Bean初始化后做修改,有哪些方式。原创 2024-05-31 17:31:22 · 549 阅读 · 0 评论 -
Bean的生命周期中有哪些对外开放的接口,及各种作用
BeanPostProcessor 接口定义了 postProcessBeforeInitialization() 和 postProcessAfterInitialization() 方法,允许在 Bean 的初始化前后对 Bean 进行自定义处理。这些接口和注解允许在 Spring 容器管理的 Bean 的生命周期中插入自定义逻辑,从而实现初始化、销毁和其他操作。可以在 Bean 配置文件中使用 init-method 和 destroy-method 属性来指定自定义的初始化方法和销毁方法。原创 2024-05-31 17:29:27 · 400 阅读 · 0 评论 -
ThreadLocal详解,与 HashMap 对比
ThreadLocal 是 Java 中的一个线程级别的变量,它允许您在不同线程之间存储和访问相同变量的不同副本,每个线程都拥有自己的副本,互不干扰。总的来说,ThreadLocal 是一种用于在多线程环境中存储线程独立变量的机制,它的内部实现基于哈希表,并使用了线性探测法来解决哈希冲突。这样,每个线程都可以独立地访问和修改自己的副本,而不会干扰其他线程的副本。HashMap 的键值对可以被多个线程共享,需要进行外部同步,而 ThreadLocal 变量是线程独享的,不需要额外的同步。原创 2024-05-31 17:24:13 · 797 阅读 · 0 评论 -
ArrayList和LinkedList对比,ArrayList使用注意事项
如果需要频繁进行插入、删除操作,或者对元素的访问顺序是有限制的(例如,只在链表两端操作),则选择 LinkedList 更合适。了解它们的内部实现和特点可以帮助您在不同情况下做出明智的选择。在尾部添加或删除元素的时间复杂度是 O(1),在中间或开头插入或删除元素的时间复杂度是 O(1),因为只需要调整相邻元素的引用。性能考虑:在性能要求较高的情况下,需要根据具体的操作来选择合适的集合类型。在尾部添加元素的时间复杂度是 O(1),但在中间或开头插入或删除元素的时间复杂度是 O(n),因为需要进行元素的移动。原创 2024-05-31 17:23:25 · 619 阅读 · 0 评论 -
spring 事务方式和事务传播
根据具体的情况,您可以选择合适的事务方式和传播机制来管理事务。在Spring中,事务可以通过注解、XML配置或编程方式来管理,而事务传播机制定义了事务在多个方法之间的传递和交互方式。PROPAGATION_REQUIRED:如果当前存在事务,则加入该事务,如果不存在事务,则创建一个新的事务。PROPAGATION_SUPPORTS:如果当前存在事务,则加入该事务,如果不存在事务,则以非事务方式执行。PROPAGATION_NESTED:嵌套事务,如果当前存在事务,则在嵌套事务中执行,可以嵌套多层事务。原创 2024-05-31 17:20:49 · 739 阅读 · 0 评论 -
面试题总结(一)
面试原创 2023-07-27 16:54:58 · 31 阅读 · 0 评论 -
java: Compilation failed: internal java compiler error
在 setting–>Build,Execution,Deployment–>Compiler 中找到 build process heap size(Mbytes):700 改为 1024(视情况而定)File ->Project Structure->Project Settings -> Modules -> (需要修改的工程名称) -> Sources ->1、查看项目的 jdk(Ctrl+Alt+shift+S)2、查看工程的 jdk(Ctrl+Alt+shift+S)上面三步做完还是失败的话。原创 2024-05-30 20:20:09 · 982 阅读 · 0 评论 -
AQS,每天一个面试题
AQS是队列同步器,是用来构建锁的基础框架,Lock实现类都是基于AQS实现的。最后关于锁竞争的公平性和非公平性的问题AQS的处理方法是,在竞争锁资源的时候公平锁需要去判断双向链表中是否有阻塞的线程,如果有则需要去排队等待,而非公平锁的处理方式是不管双向链表中是否存在阻塞的线程,那么他都会直接去尝试更改互斥变量state去竞争锁,假设在一个临界点,获得锁的线程释放锁,此时state等于0,而当前的这个线程去抢占锁的时候正好可以把state修改成1,那么这个时候就表示他可以拿到锁,这个过程是非公平的。原创 2024-05-30 20:19:00 · 854 阅读 · 0 评论 -
外部配置加载位置与顺序
springboot配置加载顺序原创 2024-05-30 20:18:02 · 243 阅读 · 0 评论 -
window cmd命令
【代码】window cmd命令。原创 2024-05-30 20:16:45 · 155 阅读 · 0 评论 -
解决 PKIX path building failed: && unable to find valid certification path to requested target
java 项目 访问 https url 时报错。PKIX path building failed: && unable to find valid certification path to requested target原创 2024-03-20 13:55:31 · 11518 阅读 · 0 评论 -
linux 使用docker安装 postgres 教程,踩坑实践
踩坑实践,安装好了不能远程访问。防火墙已关闭、postgres 配置了允许所有ip 访问、网络是通的。端口也是开放的,就是不能用数据库链接工具访问。最后发现是云服务器端口没开 ,将其打开到这一步完全正确了,但是又报错了关于连接PostgreSQL时提示 FATAL: password authentication failed for user “连接用户名” 的解决方法.原因:之前配置允许所有ip 远程访问时,设置了md5 ,但是又没有更新密码。原创 2024-03-15 10:47:18 · 1450 阅读 · 0 评论 -
微信小程序上传图片到服务端,springboot项目。避免踩坑保姆教程
多方查找终于搞懂了如何去上传文件到本地服务器。主要是服务端接收文件时有点混乱,终于理清楚了。映射到后端接口的入参上,让代码更简洁原创 2024-03-13 15:50:03 · 1226 阅读 · 0 评论 -
pg,postgres 数据库设置自增主键,自定义设置自增主键的值
id serial4 NOT NULL, – 自增主键。查询自增主键在系统中的序列号。2、设置自增主键的起始值。原创 2024-01-12 17:00:28 · 1535 阅读 · 1 评论 -
巨坑,org.apache.ibatis.binding.BindingException:Invalid bound statement (not found)绑定异常出现原因和解决方法
绑定异常,(其实出现这个问题实质就是mapper接口和mapper.xml文件没有映射起来。异常提示信息如下:出现这个问题,排查思路:在XML中配置的接口名有误 (mapper.xml中的namespace和实际的mapper文件不一致)节点的namespace属性值有误在XML中配置的抽象方法名称有误(mapper接口中的方法名和mapper.xml中的id标签不一致)或类似节点的id属性值有误在配置文件中指定的XML路径,此项配置有误。原创 2023-11-28 17:35:15 · 6343 阅读 · 4 评论 -
windows安装mysql数据库,一文搞懂
mysql 数据库安装,windows系统原创 2023-11-10 09:00:00 · 149 阅读 · 0 评论 -
开设自己的网站系类03安装数据库(centos版)
编者买了一个服务器打算自己构建一个网站,用于记录生活。网站大概算是一个个人博客吧。记录创建过程的一些步骤。前面已经讲过配置服务器的程序运行环境网站运行还需要数据库,本篇文章则是安装数据库的内容。原创 2023-11-10 08:00:00 · 245 阅读 · 0 评论 -
开设自己的网站系类02配置服务器
本篇文章主要将的是如何搭建服务器的程序环境。前提条件是你已经有了一台主机、或者说电脑。为了能够让所有人都能访问,推荐购买云服务器进行环境的搭建,好处是不用自己安装操作系统。博主之前购买云服务器时,操作系统选择的 centos 7。原创 2023-11-09 13:40:08 · 351 阅读 · 0 评论 -
开设自己的网站系类01购买服务器
开始建设自己的网站吧,编者买了一个服务器打算自己构建一个网站,用于记录生活。网站大概算是一个个人博客吧。记录创建过程的一些步骤。原创 2023-11-09 12:24:26 · 535 阅读 · 0 评论 -
实现用户行为监测之webfunny
webfunny 实现用户行为监测用户行为监测用户行为,指的是用户与产品UI的交互行为,主要表现在Android App、iOS App与Web页面上。这些交互行为,有的会与后端服务通信,有的仅仅引起前端UI的变化,但是不管是哪种行为,其背后总是伴随着一组属性数据。对于与后端发生交互的行为,我们可以从后端服务日志、业务数据库中拿到相关数据;而对于那些仅仅发生在前端的行为,则需要依靠前端主动上报给后端才能知晓。用户行为数据采集系统,便是负责从前端采集所需的完整的用户行为信息,用于数据分析和其他业务。通原创 2020-12-25 15:32:57 · 3466 阅读 · 1 评论 -
windows 下安装运行nacos
修改配置文件 application.properties。新建一个数据库,并执行数据库脚本。下载好后解码,使用maven 打包。主要就是数据库的密码,和ip端口。如果启动不成功,使用 命令启动。步骤如上,只是少了一步打包。原创 2023-05-29 16:40:07 · 193 阅读 · 1 评论 -
每天一个面试题之通信协议http、https
网站的地址以 “https://” 开头时,这意味着客户端与该网站之间的通信是加密的, 可以相对安全地传输敏感信息,如登录凭据和支付信息。HTTP和HTTPS都是用于在Web上传输数据的通信协议,但HTTPS通过加密和认证机制提供了更高的安全性,适用于需要安全数据传输的场景。通过使用SSL/TLS协议、加密、数字证书和数据完整性检查,HTTPS提供了一种安全的通信方式,确保数据在传输过程中不被窃听或篡改。对称密钥加密通常用于加密实际数据传输,其中客户端和服务器共享一个加密密钥,该密钥用于加密和解密数据。原创 2023-11-03 13:59:21 · 231 阅读 · 0 评论 -
每天一个面试题之 java NIO模型
Java NIO(New I/O)是Java提供的一种用于进行高效IO操作的新的编程模型。与传统的Java IO(InputStream和OutputStream)不同,Java NIO提供了一组新的API,可以更好地支持非阻塞IO操作,从而实现更高性能的网络通信。尽管NIO模型提供了更高的性能和并发性,但也相对复杂一些,需要更多的编码工作。如果你需要在高并发环境下进行网络编程,NIO是一个值得考虑的选项。如果你更注重简单性和易用性,传统的IO模型可能更适合你。原创 2023-08-11 11:03:13 · 181 阅读 · 0 评论 -
每天一个面试题之数据库如何走索引
优化器会根据查询的条件、索引的选择性、索引的大小等因素来选择最优的索引。了解索引类型:数据库中常见的索引类型包括B树索引、哈希索引、全文索引等。监控索引性能:定期监控索引的性能,包括索引的使用情况、索引的大小、索引的碎片化程度等。总之,走索引是通过创建合适的索引、选择合适的索引列、使用合适的索引类型、优化查询语句等方式来提高数据库查询效率的方法。当数据库中的数据量很大时,使用索引可以大大提高查询效率。选择合适的列作为索引:通常选择经常用于查询的列作为索引列,例如主键、外键、经常用于WHERE子句的列等。原创 2023-08-09 16:05:24 · 146 阅读 · 0 评论 -
每天一个面试题之类加载机制、spirngboot的启动机制
Java虚拟机(JVM)的类加载机制是Java的关键部分,它负责加载、链接和初始化类。类加载机制的主要任务是将Java类的字节码文件转换为可以在JVM上执行的运行时数据结构。这个过程包括以下三个主要步骤:加载(Loading):在此阶段,类加载器负责查找并加载类的字节码文件。这个过程通常从类路径(Classpath)开始,可以包括本地文件系统、网络资源或JAR文件。加载完成后,字节码被存储在内存中,并被用于后续的步骤。原创 2023-09-22 15:29:55 · 130 阅读 · 0 评论 -
每天一个面试题之java静态方法
在Java编程语言中,静态方法(Static Methods)是一种与类本身相关联的方法,而不是与类的实例(对象)相关联的方法。访问静态方法内部: 静态方法只能访问类中的静态成员(静态变量和静态方法),不能直接访问实例成员(非静态变量和非静态方法)。静态方法中的this和super: 静态方法中不能使用关键字 this 或 super,因为它们通常用于引用当前实例或父类的实例,而静态方法不依赖于实例。总之,静态方法是Java中一种与类本身关联的方法,可以通过类名直接调用,而不需要创建类的实例。原创 2023-08-10 14:42:47 · 91 阅读 · 0 评论 -
每天一个面试题之浏览器访问开始到结束都经历了那些流程
需要注意的是,上述流程中涉及许多异步操作,如域名解析、资源加载和JavaScript执行等,这些操作可能会交织在一起,使页面加载更加高效和流畅。请求中包含了请求的类型(GET、POST等)、要访问的资源路径、HTTP版本、请求头等信息。服务器处理请求: 服务器收到请求后,根据请求的信息进行相应的处理。解析HTML: 浏览器开始解析接收到的HTML响应,构建DOM树(文档对象模型),表示网页的结构和内容。服务器发送HTTP响应: 服务器将处理结果封装为HTTP响应,包含响应状态码、响应头、响应体等信息。原创 2023-09-06 17:38:37 · 263 阅读 · 0 评论 -
Java-heap dump 文件分析
Java-heap 分析,内存优化,代码优化原创 2023-07-06 10:07:05 · 2303 阅读 · 1 评论 -
工作流及工作流引擎的使用
工作流(Workflow)是指一系列有序的任务、活动或操作,按照特定的规则和流程顺序进行执行。它可以用于管理和自动化业务流程,提高工作效率和准确性。工作流通常包括以下几个关键概念:流程定义(Process Definition):定义了工作流的结构和流程顺序,包括各个任务、活动、决策点以及它们之间的关系。流程实例(Process Instance):根据流程定义创建的具体实例,代表了一个具体的工作流程。任务(Task):工作流中的一个具体操作或活动,需要被执行的工作单元。原创 2023-09-11 11:10:00 · 465 阅读 · 0 评论 -
sybase 带参数存储过程实现行转列
存储过程定义,执行。 使用游标循环处理数据原创 2023-06-26 17:58:17 · 292 阅读 · 1 评论