Java
NetworkCallback 无法收到回调
起因 某APP注册NetworkCallback无法收到回调,当使用默认的NetworkRequest可以收到回调 NetworkCallback 注册流程 构建出NetworkRequestInfo, 然后sendmessage, 事件类型EVENT_REGISTER_NETWORK_LISTENER,最终调用到handleRegisterNetworkRequest 关键函数rema
为什么数据库连接很消耗资源?
开发应用程序久了,总想刨根问底,尤其对一些有公共答案的问题。大家都能解释,但是追根究底,都解释不清。凡是都有为什么,而且用数字说明问题是最直观的。本文主要想探究一下连接数据库的细节,尤其是在Web应用中要使用数据库来连接池,以免每次发送一次请求就重新建立一次连接。对于这个问题,答案都是一致的,建立数据库连接很耗时,但是这个耗时是都多少呢,又是分别在哪些方面产生的耗时呢?本文以连接MySQL数据库为
c3p0 数据池入门使用教程
dbcp 系列 从零开始手写 mybatis (三)jdbc pool 如何从零手写实现数据库连接池 dbcp? 万字长文深入浅出数据库连接池 HikariCP/Commons DBCP/Tomcat/c3p0/druid 对比 Database Connection Pool 数据库连接池概览 c3p0 数据池入门使用教程 alibaba druid 入门介绍 数据库连接池 HikariCP 性
多线程系列(二十) -CompletableFuture使用详解
一、摘要 在上篇文章中,我们介绍了Future相关的用法,使用它可以获取异步任务执行的返回值。 我们再次回顾一下Future相关的用法。 运行结果如下: 如果不采用线程执行,那么总共用时应该会是 200 + 300 = 500 ms,而采用线程来异步执行,总共用时是 308 ms。不难发现,通过Future和线程池的搭配使用,可以有效的提升程序的执行效率。 但是Future对异步执行结果的获取
前端构建工具 Vite
Vite(法语意为 “快速的”,发音 /vit/,发音同 “veet”)是一种新型前端构建工具,能够显著提升前端开发体验。它主要由两部分组成: 一个开发服务器,它基于 原生 ES Module 提供了 丰富的内建功能,如速度快到惊人的 模块热更新(HMR)。 一套构建指令,它使用 Rollup 打包你的代码,并且它是预配置的,可输出用于生产环境的高度优化过的静态资源。 Vite 意
vue2与vue3的区别
vue2和vue3双向数据绑定原理发生了改变 vue2的双向数据绑定是利用了es5 的一个API Object.definepropert() 对数据进行劫持 结合发布订阅模式来实现的。 vue3中使用了es6的proxyAPI对数据进行处理。 1. vue2和vue3双向数据绑定原理发生了改变 相比与vue2,使用proxy API
[转][Java] Date 的替代品 Instant
来自:https://mp.weixin.qq.com/s/SotzqrKAfrND88n12QFCEA 怎么改? 只能说这种基础的类改起来牵一发动全身,需要从DO实体类看起,然后就是各种Converter,最后是DTO。由于我们还是微服务架构,业务服务依赖于基础服务的API,所以必须要一起改否则就会报错。这里就不细说修改流程了,主要说一下我们在改造的时候遇到的一些问题。 1. 耐心比对数据库日期
统一返回结构 ResponseResult
//定义返回数据结构 public interface IResult { Integer getCode(); String getMessage(); } //常用结果的枚举 public enum ResultEnum implements IResult { SUCCESS(2001, "接口调用成功"), VALIDATE_FAILED(2002, "参
Java序列化和反序列化机制
Java的序列化和反序列化机制 问题导入: 在阅读ArrayList源码的时候,注意到,其内部的成员变量动态数组elementData被Java中的关键字transient修饰 transient关键字意味着Java在序列化时会跳过该字段(不序列化该字段) 而Java在默认情况下会序列化类(实现了Java.io.Serializable接口的类)的所有非瞬态(未被transient关键字修饰)和非
netty Recycler对象池
前言 池化思想在实际开发中有很多应用,指的是针对一些创建成本高,创建频繁的对象,用完不弃,将其缓存在对象池子里,下次使用时优先从池子里获取,如果获取到则可以直接使用,以此降低创建对象的开销。 我们最熟悉的数据库连接池就是一种池化思想的应用,数据库操作是非常频繁的,数据库连接的创建、销毁开销很大,每次都需要进行TCP三次握手和四次挥手,权限检查等,所以如果每次操作数据库都重新创建连接,用完就丢弃,对
jQuery Validate 表单验证插件
原文链接:https://blog.csdn.net/xiangxiao_bobo/article/details/119772293 一、 jQuery Validate 插件的介绍 jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求。该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同
[转]IDEA 打开项目时,代码全被标记为红色
在 IntelliJ IDEA 中,代码被标记为红色通常表示存在编译错误或无法解析的引用等问题。 要解决这个问题,请按照以下步骤进行排查和改进:检查项目结构:确保所有必需的源代码文件夹都被正确地包含在项目的模块设置中。确认项目SDK配置正确无误。在File -> Project Structure(快捷键:Ctrl + Alt + Shift + S)中,检查Project Settings
eclipse 问题之一:Plugin execution not covered by lifecycle configuration
1、问题 eclipse 作为 java 工程的开发工具,可以集成maven 直接管理 maven 工程。 但是对于maven工程中描述的插件,有时候 eclipse 会报如下错误(示例:Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:exec-maven-plugin:3.1.1:java (e
MISSION 2024/3/15
青铜五 0星 上午:到 11.40 java后端 下午: 1-2 java后端 3 人工智能 4 体育 5 分布式开发 6 (6:30-7:25) 华为挑战杯 7 (7:30-8:30) 算法
常见问题解决 --- idea与maven使用常识
1.拿到项目代码后先要知道使用了哪些技术和工具。比如使用的是idea、eclipse还是maven创建的项目,使用什么编程语言,使用什么项目目录结构等等 2.如何用maven创建的项目必然有pom.xml,每次修改pom文件后必须重新加载。 3.如果修改代码后还是报错,尝试使用clean清除编译缓存再同步maven再启动项目 4.一个项目无法启动可能是因为,配置文件问题,java版本问题,依赖版本
webScoket离线消息暂存,上线发送
webScoket离线消息暂存,上线发送 用webScoket的即时聊天通讯,功能可群发单发,可对不在线用户发送消息时用户一上线立马就能收到消息,也可以查看未读数量 导入依赖 添加websocket配置类 注入ServerEndpointExporter,这个bean会自动注册使用了@ServerEndpoint注解声明的Websocket endpoint。要注意,如果使用独立的ser
PostgreSQL从小白到高手教程 - 第47讲:JMETER工具使用
PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。 第47讲:JMETER工具使用 内容1:JMeter简介 内容2:JMeter测试部署 内容3:JM
selenium操作的基本方法
根据id选择元素,返回的就是该元素对应的WebElement对象 特别注意:Selenium 升级到版本 4 以后, 这种 find_element_by* 方法都作为过期不赞成的写法 新版本的建议写法为 from selenium.webdriver.common.by import By 初始化代码 .... 如果使用 wd.find_element (注意少了一个s) 方法, 就只会
第三章-Nacos配置中心
# 第三章 Nacos 配置中心微服务的配置文件:- 不同的微服务可能共享配置文件,只有部分的内容不同- 同一个微服务集群的配置文件是相同的。这个时候,对配置文件的更新维护就是一个麻烦的问题,并且某些业务的配置在配置文件中写死了,每次修改配置文件都要重启微服务。**配置中心**可以解决这些问题,将**同一个集群的相同配置文件**都交给配置中心统一管理,将**不同集群的共享配置文件**也交给配置中心
滴滴面试:Rocketmq消息0丢失,如何实现?
文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备 免费赠送 :《尼恩技术圣经+高并发系列PDF》 ,帮你 实现技术自由,完成职业升级, 薪酬猛涨!加尼恩免费领 免费赠送 经典图书:《Java高并发核心编程(卷1)加强版》 面试
Skywalking 一般有用 看1 速
问:什么是Skywalking?答:Skywalking是一个针对分布式系统的开源应用程序性能监控(APM)工具。它专门为微服务、云原生和基于容器(例如Kubernetes)的架构设计,能够提供实时的可视化监控和健康状态,包括响应时间、吞吐量、错误率和资源利用率等指标。 问:Skywalking是如何工作的?答:Skywalking通过在分布式系统中部署代理来收集数据,并通过用户友好的界面进行分析
复习一遍最新版本的 Angular
作为前端三大框架之一的 Angular 因为其过高的上手难度一直被忽视,自从 ng1 以后 vue 占领了全国(大概2016年开始?),我就很久没有再去了解过这个项目了。最近因为沉迷 Factorio 建厂,突发奇想想自己用 Nextjs 写一个量化计算器,github 搜参考搜出个很好用的东西 factoriolab,一看是 ng 写的顿时来了兴趣,立马跑到 ng 官网看 getting sta
毕设7:JavaFX应用打包
前情提要:使用java模块化写了一个javafx应用,和非模块化打包不一样。 java版本:java17 javafx-version: 21.0.1 1. Java模块化打包配置 试图打包,出现报错:找不到模块javafx.control 仔细一看,module-info.java里所有模块都找不到 解决:maven-compiler-plugin版本太低,要高于哪个版本才能,具
【IT老齐033】Docker一键发布Nginx-Tomcat-MySQL应用集群
【IT老齐033】Docker一键发布Nginx-Tomcat-MySQL应用集群 创建虚拟网段 MySQL容器 应用容器 dockerfile文件 构建应用镜像 运行容器 Nginx容器 nginx配置文件,容器内通信一律使用内部容器名称及端口 脚本
【IT老齐042】生产环境JVM参数与垃圾回收GC
【IT老齐042】生产环境JVM参数与垃圾回收GC 最大堆和最小堆大小 GC收集器 新生代(年轻代)大小 JVM选项规则 +代表开启/-代表关闭 java -version 标准选项,任何版本JVM/任何平台都可以使用 java -Xms10m 非标准选项,部分版本识别 java -XX:+PrintGCDetails 不稳定参数,不同JVM有差异,随时可能会被移除, JVM优化选
【IT老齐043】线上JVM OOM排查
【IT老齐043】线上JVM OOM排查 基本信息 Arthas VisualVM 概要信息 环境信息 实例情况 排查过程 右击在新页面打开占用内存最多的对象 查找其的gcroot 右击定位到线程
zookeeper概述及搭建
zookeeper 一、zookeeper概述 Apache Zookeeper(简称zk)是一个提供分布式协调服务的开源框架 zk主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:状态同步服务、集群选举管理、分布式应用配置项的管理等。 zookeeper本质上是一个分布式的小文件存储系统,提供基于类似文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理,从而用来维护和监控存