Java
Windows下graalvm JDK下载和native-image安装编译
1.graalvm JDK download: https://www.graalvm.org/downloads/ 2.install native-image: D:Program Filesjavagraalvm-jdk-17bin>gu install native-image 3.手动编译 D:>javac HelloWorld.java运行,输出
JAVA获取泛型类型信息
根据使用泛型位置的不同可以分为: 声明侧泛型 使用侧泛型 一、声明侧泛型 声明侧的泛型信息被记录在Class文件的Constant pool中以Signature的形式保存。 获取泛型类型相关方法 JDK的Class、Field、Method类提供了一系列的获取泛型类型的相关方法。 1.、Class类的泛型方法 Type getGenericSuperclass():获取父类的Type 当父
【Java】JavaWeb项目中使用SQLite免安装单文件数据库
Jsp项目中使用SQLite免安装单文件数据库 零、需求 有的同学电脑上安装MySQL或者其他数据库时出现问题,无法安装相关数据库供JavaWeb项目使用,可以使用SQLite数据库解决相关问题。 壹、SQLite介绍 SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。简单来讲就是不用安装,使用方便,可以随软件打包带走。SQLite 是在世界上最广泛
java接口返回图片链接或pdf链接如何设置在线预览还是下载
之前文章说到了如何通过将文件转成图片或者pdf来实现在线预览,一般来说在线预览图片或者pdf都是存储在图片服务器上的,在通过接口调用把文件返回给前端,但是把文件返回给前端效果一般是有两种:在线预览和下载。那这两种效果分别又该怎么实现呢?我们今天就来说这两种效果的实现。 下面是之前转成图片、pdf实现线预览,有兴趣的小伙伴可以看看。 文档在线预览(一)通过将txt、word、pdf转成图片实现在线预
子类重写equals
Java的equals()方法是在Object超类中定义的,其他例如String类调用的equals()方法都是被重写过的: Object类中的equals()方法: String类中对equals()方法的重写: 可以看到原本在Object超类中定义的equals()方法是用于判断两个对象是否地址相等,而非数值或内容相等,但在String类中经过重写后的equals()方法(Stri
Java中String类型能够存放多大的数据量?编译器只支持String只能存放65535个字符,运行时可用是int长度远比65535个多
Java中String类型能够存放多大的数据量? https://blog.csdn.net/weixin_52707625/article/details/125583678 最近在编写博客系统时,在文章上传遇到了个问题:
rocketmq-dashboard
根据 “Tomcat started on port(s): 8080 (http) with context path ''”,启动的端口,进行浏览器访问即可。 浏览器地址: http://127.0.0.1:8080/#/
CodeQL学习实践
CodeQL简介 CodeQL是一个非商业的开源代码自动化审计工具,Github收购后,开源了CodeQL的规则部分,所以收集了大量的规则,安全工程师可以依赖CodeQL的规则实现对多种开发语言项目的代码审计工作 CodeQL原理 CodeQL将代码转化成可查询数据库,代码被视为数据,漏洞、bug、错误,被建模为可针对从代码中提取的数据库执行查询. Extractor 模块对源代码工程进
【最常用】两种java中的占位符的使用 第一种:使用%s占位,使用String.format转换 第二种:使用{1}占位,使用MessageFormat.format转换
【最常用】两种java中的占位符的使用 第一种:使用%s占位,使用String.format转换 第二种:使用{1}占位,使用MessageFormat.format转换 https://blog.csdn.net/weixin_43899069/article/details/121164107
根据不同场景(是否需要连接数据库)启动SpringBoot
1. 场景描述 描述:使用场景: 项目中的一部分业务不需要进行数据库操作,当只使用这部分功能时,希望程序启动时可以不进行数据库的连接 项目中需要数据库相关的业务时再进行配置 注意: Springboot在启动时会根据pom.xml启动器来判断是否开启相应的自动配置 解决方式:设置一个包装类,根据配置文件来判断是否进行连接数据库的操作 2. 使用示例 创建两个启动类,分别
SpringBoot使用自定义的logback日志
1. 介绍 描述:主要由三个模块构成 2. 配置详解 configuration:有scan、sacnPeriod、debug、packagingData等属性。 debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为t
SpringBoot使用自定义日志注解,配置切面
1. 使用技巧 以下是需要注意的部分: 在环绕通知中使用ProceedingJoinPoint,控制目标方法的运行。 在其他通知类型中使用JoinPoint。 如果使用JoinPoint 则必须位于参数的第一位。 ProceedingJoinPoint 中有特殊的方法proceed()。 当有多个切面时,使用@Order(11)来指定注解的优先级。 在切点之前,@Order 从小到大被执行,也
浅谈MultipartFile中transferTo方法的坑 服务器上面使用相对路径 file.transferTo(filePath.getAbsoluteFile()) 而不是 file.transferTo(filePath.getPath()) 绝对路径
浅谈MultipartFile中transferTo方法的坑 服务器上面使用相对路径 file.transferTo(filePath.getAbsoluteFile()) 而不是 file.transferTo(filePath.getPath()) 绝对路径,实际生产 配置 服务器里面的一个文件夹。比如配置服务器文件夹前缀为 /downfile/excelfile 原文链接:https://w
【Netty】一个RPC实例
Netty实现简易RPC调用 总体流程: 客户端发起rpc调用请求,封装好调用的接口名,函数名,返回类型,函数参数类型,函数参数值等属性,将消息发送给服务器。 服务器的handler解析rpc请求,调用对应方法,并将方法结果写回客户端。 客户端在主线程发送消息后,准备一个空 Promise 对象,用来接收结果。在客户端的RpcHandler解析完服务器发回的Rpc响应后,该Promise将被填充
【Netty】Netty部分源码分析(启动流程,EventLoop,accept流程,read流程)
源码分析 Netty源码中调用链特别长,且涉及到线程切换等步骤,令人头大:) 1 启动剖析 我们就来看看 netty 中对下面的代码是怎样进行处理的 入口 io.netty.bootstrap.ServerBootstrap#bind 关键代码 io.netty.bootstrap.AbstractBootstrap#doBind 关键代码 io.netty.bootstrap.Abstra
Sonarqube安装
准备: 1.SonarQube,版本7.8,下载地址 https://www.sonarqube.org/2.mysql数据库,版本5.7(8.0版本会出现sql异常),下载地址:https://downloads.mysql.com/archives/community/ 3.汉化包:https://github.com/xuhuisheng/sonar-l10n-zh/releases 安装
【JS错题总结】作用域链问题
作用域链 上面代码的输出是 GoodbyeJack ,因为执行到语句 typeof name === 'undefined' 的时候,函数会从内向外(作用域链)寻找该变量,从 语句 var name; 找到该变量的定义,该变量此时的值为 undefined。自执行函数解析和执行一起完成,自己有的不会再向上查找。 var name ='zhangsan'; (functi
synchronized关键字与Lock锁原理
1.synchronized synchronized关键字是JVM提供的内置锁,是通过Monitor两种来实现的,分别是当其作用在类上和方法上时。 类上: 测试代码 测试类的反编译结果,执行javap -v Test.class 分析 从上面的反编译class文件可以看出,synchronized关键字作用在类上时,其是通过monitor锁来实现的,通过monitorenter指令
【JS基础】Function构造函数
Function() 构造函数创建了一个新的 Function 对象,直接调用构造函数可以动态创建函数,与eval(可能访问到本地作用域)不同的是, Function 构造函数只创建全局执行的函数。 const sum = new Function('a', 'b', 'return a + b') console.log(sum(1, 2)); 参考:Function() 构造函数
uniapp vue.config.js配置chunk-vendors.js文件拆分
const path = require('path') function resolve(dir) { return path.join(__dirname, dir); } const CompressionPlugin = require('compression-webpack-plugin') const htmlWebpackPlugin = require('html-webp
VUE&Element
VUE&Element 今日目标: 能够使用VUE中常用指令和插值表达式 能够使用VUE生命周期函数 mounted 能够进行简单的 Element 页面修改 1,VUE 1.1 概述 接下来我们学习一款前端的框架,就是 VUE。 Vue 是一套前端框架,免除原生JavaScript中的DOM操作,简化书写。 我们之前也学习过后端的框架 Mybatis ,Mybatis 是用来简
java 中四种引用类型(对象的强、软、弱和虚引用)
对象的强、软、弱和虚引用 在 JDK 1.2 以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从 JDK 1.2 版本开始,把对象的引用分为 4 种级别,从而使程序能更加灵活地控制对象的生命周期。这 4 种级别由高到低依次为:强引用、软引用、弱引用和虚引用。 ⑴强引用(StrongRefe
spring中用到哪些设计模式
1.工厂模式,这个很明显,在各种BeanFactory以及ApplicationContext创建中都用到了; 2.模版模式,这个也很明显,在各种BeanFactory以及ApplicationContext实现中也都用到了; 3.代理模式,在Aop实现中用到了JDK的动态代理; 4.单例模式,这个比如在创建bean的时候。 5.Tomcat中有很多场景都使用到了外观模式,因为T