Java

JVM-常用工具(jps、jstat、jinfo、jmap、jhat、jstack、jconsole、jvisualvm)使用

场景 记录JVM中常用工具。 jps:虚拟机进程状态工具 jps(JVM Process Status Tool):虚拟机进程状态工具,可以列出正在运行的虚拟机进程, 并显示虚拟机执行主类(Main Class,main()函数所在的类)的名称,以及这些进程的本地虚拟机的唯一ID。 命令格式: jps [options] [hostid] 示例: jps -l   选项: -q&nbs

【Lombok】lombok已知的坑,记录

关于lombok lombok 这个插件现在的使用率应该是很高的了,虽然偶尔也听说到有公司禁止使用lombok,说会存在什么样的问题,但耐不住它是真的香。 (主要是因为也不知道具体它存在什么样的坑,如果是明确的坑,绕得过就绕过就好了,绕不过就没办法了) 影响中说引入 lombok后,如果作为组件对外提供,就要强制使用方也引入lombok,太过霸道,如此一种说法来禁止使用lombok,在我们大多数项

mardkard

最大标题:command + 1 或者:# 大标题:command + 2 或者:## 标准标题:command + 3 或者:### 中标题:command + 4 或者:#### 小标题:command + 5 或者:##### 插入表格:command + T 插入代码:command + alt +c 行间公式 command + Alt + b 段落

【面试题】int(1) 和 int(10) 有什么区别?

int(1) 和 int(10) 有什么区别? 先说结论: 正常来说,没有区别。后面带的数字,并不是长度的概念。Int 类型就是占用4个字节(32位), Int(1), int(10) 都一样是4个字节/32位,数据范围也还是 -2^31 ~ 2^31-1。 所以,int 后面带个数字,干嘛使呢? 如果只是用来数据存储,别带数字了,混淆视听。 如果是为了做编号什么的,保持一致长度,不够位数就前面补

路由相关

Axiox 先创建文件夹 创建一个api的文件夹 创建一个index和其他的.js文件 index里面主要存放公共的一些东西 其他的.js文件中 针对get形式的传数据,使用 params,post和patch 用data 如果get传的数据需要序列化,需要加上如下 如果链接后面有需要跟着的id,根据具体情况写url

Spring Cloud Gateway远程代码执行漏洞(CVE-2022-22947)

问题描述: 使用 Spring Cloud Gateway 的应用如果对外暴露了 Gateway Actuator 端点时,则可能存在被 CVE-2022-22947 漏洞利用的风险。攻击者可通过利用此漏洞执行 SpEL 表达式,允许在远程主机上进行任意远程执行。获取系统权限。 影响范围: 1、除了 Spring Cloud Gateway 外,程序还用到了 Spring Boot Actuato

Quartz任务调度框架

Quartz任务调度框架 Quartz是一个任务调度框架,用于定时执行任务。 任务调度:系统中有N的任务,分别需要在不同的时刻执行这些任务,这种多任务的执行策略就是任务调度 0 定时任务实现的方法 spring schedule 优点:无需整合spring,作业类中就可以调用业务service 缺点:默认单线程执行任务,当前一个任务执行时间过长时,会使后面的任务延期执行,如果前一个任务的执行时

spring ApplicationEvent 和 Listener

ApplicationEvent ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设计初衷也是为了系统业务逻辑之间的解耦,提高可扩展性以及可维护性。 通过 ApplicationEvent 类和 ApplicationListener 接口来提供在 ApplicationContext 中处理事件。如果一个 b

代码规范

1. 集成 editorconfig 配置 EditorConfig 有助于为不同 IDE 编辑器上处理同一项目的多个开发人员维护一致的编码风格。 VSCode 需要安装一个插件:EditorConfig for VS Code 2. 使用 prettier 工具 Prettier 是一款强大的代码格式化工具,支持 JavaScript、TypeScript、CSS、SCSS、Less、J

JDK8.0新特性

Java8新特性介绍 1. Lambda 表达式2. 函数式接口3. 方法引用与构造器引用4. Stream API5. 接口中的默认方法与静态方法6. 新时间日期API7. 其他新特性 速度更快代码更少 Lambda 表达式强大的Stream API便于并行 多件事情一起做 时间变短 效率变高最大化减少空指针异常 Optional 核心是 Lambda 和Stream API 1. Lam

SoapUI、Jmeter、Postman三种接口测试工具的比较

1.  用例组织方式 首先是用例组织方式的不同,不同的目录结构与组织方式代表不同工具的测试思想,学习一个测试工具应该首先了解其组织方式。 SoapUI的组织方式如下图,最上层是WorkSpace,每个窗口只可以打开一个WorkSpace(这是一个xml文件),每个Project也是一个单独的xml文件(为了协同工作,也可以通过设置将其转化为一堆文件集合),所以每个WorkSpace中可以

React Native+小程序容器=更高的开发效率

React Native是由Facebook开发并于2015年首次发布的一个框架,用于构建原始的移动应用程序。 它具有许多技术上的优势: 跨平台开发:使用React Native,您可以使用相同的代码库构建同时运行在iOS和Android平台上的应用程序。这种跨平台的开发方式可以大大减少开发工作量和时间成本,因为您不需要为每个平台编写完全不同的代码。 原生性能:React Native提供

接口和抽象类的区别

接口和抽象类的区别: (1)接口 接口使用interface修饰;接口不能实例化;类可以实现多个接口; ①java8之前,接口中的方法都是抽象方法,省略了public abstract。②java8之后;接口中可以定义静态方法,静态方法必须有方法体,普通方法没有方法体,需要被实现; (2)抽象类 抽象类使用abstract修饰;抽象类不能被实例化;抽象类只能单继承;抽象类中可以包含抽象方法和非抽象

《面试1v1》synchronized

源码都背下来了,你给我看这 我是 javapub,一名 Markdown 程序员从👨‍💻,八股文种子选手。 面试官: 你好,我看到你的简历上写着你熟悉 Java 中的 "synchronized" 关键字。你能给我讲讲它的作用吗? 候选人: 当然,"synchronized" 是 Java 中的一个关键字,用于实现同步机制。它可以用来修饰方法或代码块,以确保在同一时间只有一个线程可以访问被修饰

Mybatis Plus

MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率 1. MyBatisPlus简介 入门案例 MyBatisPlus概述 2. 标准数据层开发 标准数据层CRUD功能 分页功能 3. DQL控制 条件查询方式 查询投影 查询条件设定 字段映射与表名映射 4. DML控制 id自增策略控制(Insert) 多记录操作(Delete

ThreadLocal 详解【并发容器】

ThreadLocal 是什么?有哪些使用场景? ThreadLocal 是一个本地线程副本变量工具类,在每个线程中都创建了一个ThreadLocalMap 对象,简单说 ThreadLocal 就是一种以空间换时间的做法,每个线程可以访问自己内部 ThreadLocalMap 对象内的 value。通过这种方式,避免资源在多线程间共享。 原理:线程局部变量是局限于线程内部的变量,属于线程自身所有

【随手记录】关于Java字符串长度

在java当中,在运行期间,字符串的长度是有最大限制的:21亿,也就是4GB; 在编译期间,字符串的长度最大为:65534。 字符串的内容是由一个字符数组 char[] 来存储的,由于数组的长度及索引是整数,Integer的最大范围是2^31 -1,所以数组的最大长度可以使【0~2^31-1】通过计算是大概4GB = (2* 2^31 - 1) / (1024^3) 。 但是通过翻阅java虚拟机

02 基础篇

二分查找 编写二分查找代码: 1.前提:有已排序的数组A 2.定义左边界L、有边界R、确定搜索范围,循环执行二分查找(3、4两步) 3.获取中间索引M=Floor((L+R)/2)(向下取整) 4.中间索引的值A[M]与待搜索值T进行比较 1. A[M]==T表示找到,返回中间索引 2. A[M]>T,中间值右侧的其他元素都大于T,无需比较,中间索引左边去找,M-1设置为有边界,重构内心查找

金融用户敏感数据如何优雅地实现脱敏?

项目介绍 日志脱敏是常见的安全需求。普通的基于工具类方法的方式,对代码的入侵性太强,编写起来又特别麻烦。 sensitive 提供了基于注解的方式,并且内置了常见的脱敏方式,便于开发。 日志脱敏 为了金融交易的安全性,国家强制规定对于以下信息是要日志脱敏的: 用户名 手机号 邮箱 银行卡号 密码 身份证号 持久化加密 存储的时候上面的信息都需要加密,密码为不可逆加密,

Java并发之原子性、可见性和有序性

1.原子性 1.1 原子性的定义 原子性:原子性即是一个或者多个操作,要么全程执行,并且执行的过程中不被任何因素打断,要么全部不执行。 举个例子会更好理解:就像是我们去银行转账的时候,A给B转1000元,如果A的账户减少了1000之后,那么B的账户一定要增加1000。A的账户减钱,B的账户加钱,这两个操作就是原子操作,不会出现A的账户减钱,但B的账户没有加钱,A的账户没有减钱,B的账户加钱了这样的

【博学谷学习记录】超强总结,用心分享 | spark知识点总结2

【博学谷IT技术支持】 Action动作算子 reduce: 通过func函数聚集RDD中的所有元素,这个功能必须是可交换且可并联的 collect: 在驱动程序中,以数组的形式返回数据集的所有元素 count: 返回RDD的元素个数 first: 返回RDD的第一个元素(类似于take(1)) take: 返回一个由数据集的前n个元素组成的数据 takeSample:返回一个数组,该数组由从数

有JSDoc还需要TypeScript吗

这听起来是不是很耳熟:你想写一个小型脚本,不管是为页面、命令行工具,还是其他什么类型。你从JavaScript开始,直到你想起写代码时没有类型是多么痛苦。所以你把文件从.js重命名为.ts。然后意识到你已经打开了一个麻烦的玩意儿。 如果你在为一个网站或一个库写代码,你就需要引入编译的步骤。如果你在编写CLI脚本,你可以求助于Deno(它支持TypeScript,开箱即用),但是你需要设置你的IDE

Redis常用数据类型

一、Redis键(key) keys *      查看当前库所有key(匹配keys *1) exists key     判断某个key是否存在 type key     查看key类型 del key       删除key unlink key     根据value选择非阻塞删除,仅将keys从keyspace元数据中删除,真正的删除操作会在后续异步操作 expire

软件工程 课程总结

课程总结   本学期即将结束,回顾这一学期,从这门课程中学到很多。   首先一如既往的,在第一节课还是一个测试,写一个javaweb的增删改查,由于假期比较放纵,没有学很多,因此测试的时候做的还是比较慢,而且核心的流程没有打通。   另外,在正式上课的第一节课,老师就给出了本学期要完成的一些任务,有个人项目,结对项目和团队项目。   首先是个人项目,要求用Android studio写一

课堂测试

package Util; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import Util.util; import Util.dao; p

课堂测试2

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title he

课堂测试3

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> &l

Hive核心实战

Hive中数据库的操作 default是默认数据库,默认就在这个库里面 我们前面说过hive的数据都是存储在hdfs上的,那这里的default数据库在HDFS上是如何体现的? 在 hive-site.xml 中有一个参数 hive.metastore.warehouse.dir,它的默认值是 /user/hive/warehouse ,表示hive的default默认数据库对应的hdfs存储目

<<  <  1178  1179  1180  1181  1182  1183  1184  1185  1186  1187  1188  >  >>