![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
开发
文章平均质量分 57
英雄史诗
这个作者很懒,什么都没留下…
展开
-
OOM不会导致JVM退出
一次生产事故,由于一次性从数据库查询过多数据导致线程 OOM:Java heap space 异常(千万级表,JVM堆内存2G),但是在线程OOM发生时,java进程却没有立即挂掉。##OOM与异常堆内存不够与异常的关系线程发生OOM Java heap space,首先是堆空间不够了,然后再由jvm在申请分配空间的方法调用上抛出OOM异常。对于线程,它会像处理普通异常一样,处理OutOfMemoryError。原创 2024-05-22 00:45:14 · 405 阅读 · 0 评论 -
AssertionError: Torch not compiled with CUDA enabled
地址:https://mirror.sjtu.edu.cn/pytorch-wheels/cu121/?经查阅,这个问题是因为conda默认安装的是CPU版本的torch,应该使用GPU版本的。如果直接从资料库安装,很慢,建议下载后手工安装。我的是12.0,算比较新的,就不更新了。这种不带后缀的,就CPU版本的。命令:nvidia-smi。原创 2024-01-23 00:02:37 · 961 阅读 · 0 评论 -
Eclipse中项目的配置
开发中,记录的Eclipse配置原创 2023-06-29 15:43:49 · 1033 阅读 · 0 评论 -
常见Bean后处理器
在bean生命周期过程中,用于增强(扩展功能)的对象;也是一种Bean,在Spring容器中。原创 2023-06-29 00:29:12 · 217 阅读 · 0 评论 -
NPE错误的场景原因和解决方法
1、空对象,访问空对象的方法或属性;2、空数组,访问空数组的size()或内容;3、基本类型,自动拆箱;如函数返回int,内部实际是Integer,如果是null时,则NPE。4、数据库查询的结果可以是null;eg:mybatis的Emp emp = baseMapper.selectById(“0”),使用错误的查询条件。5、级联调用容易出现NPE。6、数组不为空,但对象的某个属性为空。原创 2023-06-07 00:18:18 · 1117 阅读 · 0 评论 -
Maven扫盲--20230214
依赖和构建工具。依赖:解决包从哪里找?依赖嵌套的依赖?版本冲突。构建:编译,打包,发布(指推送到mvn资料库,不是运维意义的发版)。原创 2023-02-14 00:25:18 · 253 阅读 · 0 评论 -
js中双||的作用
eg:a||b,则如果a是有效值,返回a;否则返回b,无论b是否有效。原创 2023-01-18 11:37:30 · 299 阅读 · 0 评论 -
Command 模式
关键点是把动作变成了对象,新增动作,变为新增对象。从设计原则上讲,满足开闭原则。comman模式的最主要优点是解耦了调用者和实际执行者,这个点必须时刻铭记。相反的例子是,调用者知道了如何执行的细节。原创 2022-10-17 23:39:07 · 329 阅读 · 0 评论 -
一个nginx部署多个应用及nginx总结
参数server的配置是指虚拟的server;比如可以监听相同的端口。这点与后端的应用不同,后端如果监听相同端口,会报端口冲突。server.location参数:可以指定本地目录,做直接访问;也可以转发,也就是逆向代理。逆向代理也是实现跨域的一种方式:老web中,直接暴露了后端,浏览器直接对后端请求,后端设置了允许跨域;新web中,webpack支持代理(部署时同样配置nginx的代理),前端访问的特定开头的url(/api)。原创 2022-10-13 15:17:29 · 2536 阅读 · 0 评论 -
【Http Referer】
是http请求头里的一个属性,用来表示本次请求从哪个网站url过来的,想象为“引荐人”浏览器自动填写,也可通过html标签控制是否填写。原创 2022-09-27 17:24:33 · 266 阅读 · 0 评论 -
Nginx日志格式说明
默认位置在nginx安装目录下的:logs/access.log也可修改日志配置,在配置文件中:conf/nginx.conf日志格式参数:log_format日志位置参数:access_log。原创 2022-09-27 16:52:51 · 1851 阅读 · 0 评论 -
责任链模式
因为:代码结构是:处理request–>责任链调用(递归)–>处理response;&:如果是遍历型的,不可以直接拼接,需要拼接的chain也实现doFilter;如果是链表型的,可以拼接,因为拼接的链表对外暴露的也是第1个节点的filter;如果是"复杂型"的,可以了拼接,因为chain也是Filter的实现。责任链调用会持续一层层调用,直到最深层返回后,再一层层执行。对handler变动、阀值调整,都需要调整client。1.client:调用者,发出消息。1.client:调用者,发出消息。...原创 2022-08-30 23:59:54 · 253 阅读 · 0 评论 -
组合(composition)与聚合(aggregation)的区别
thinking in Java》里面是这样说的,“composing a new class from existing classes, this concept is called composition (if the composition happens dynamically, it’s usually called aggregation)”。意思是通过现在的类组合成一个新的类,叫做组合;如果这种组合是动态的,则叫聚合。...原创 2022-08-30 14:25:12 · 611 阅读 · 0 评论 -
设计模式_7大原则
7大设计原则原创 2022-08-10 23:56:51 · 83 阅读 · 0 评论 -
如何理解CROS
还沿用当初自己对这块的几个疑问,回答疑问的过程,也是梳理的过程。&:前后端分离的应用,前端、后端是2个独立的应用,运行在不同端口。在浏览器看来,是不同的域。前端页面中的ajax请求后端接口,即是跨域访问了,触发cros。&:有多种方法,其中1个是在后端应用设置允许放入的来访域请求。对应的后端也支持了preflight(option)请求。springboot有现成方法。eg:3.浏览器是如何控制cros的?&:浏览器对跨域请求,发出preflight;得到后端响应,看响应header中允许的来访域是原创 2022-07-09 16:24:20 · 4197 阅读 · 1 评论 -
node.js及npm的基本理解
介绍了vue工程中使用的node.js和npm的概念、实现原理和使用场景。原创 2022-06-27 20:06:47 · 457 阅读 · 0 评论 -
设计模式:策略模式
导图把总结的内容单列:简单Demo统一的动作【出行】,抽象成接口public interface Travel { public void transport();}具体的实现方式【交通工具】,具体对象public class ByPlane implements Travel { @Override public void transport() { System.out.println("1 by plane"); }}publ原创 2022-04-18 15:25:51 · 167 阅读 · 0 评论 -
Oracle connect by与level的使用
1.level是什么?level是在树形结构中、表示层级的伪列。1.1树形结构Oracle支持树形结构的查询,用关键字connect by 表示。connect by表示在构造树形结构时,上下级的确定方式或者用来查找下(上)级记录的条件,满足这个条件就拼到结果树里。默认是从根开始,如connect by prior id=pid,表示构造树时,本记录的id是下条的pid,即找pid=本条id的记录做下条记录。交换prior位置,表示从叶开始。如connect by id= prior pid,原创 2022-03-04 11:12:54 · 18557 阅读 · 6 评论 -
设计模式01:装饰器模型
最关键的是:装饰器的父类,通过引用组件(向上)和实现组件接口(强化),实现了一串的功能增强。原创 2021-10-09 17:23:39 · 146 阅读 · 1 评论 -
Web应用文件上传总结
1.客户端法1)html协议_File控件 enctype="multipart/form-data" input type="file" enctype="multipart/form-data"的作用:设定了上报数据的格式是multipart(多部分实体);默认是kv键值对格式。法2)vue+ElementUI中的使用 <!-- 批量创建单据:导入整机代码,创建单据 name =上传的文件对应的参数名,供后台获取 :headers=设置上传的请求头部 :act原创 2021-09-30 17:20:46 · 287 阅读 · 0 评论 -
什么是Restful接口
1.rest的基础知识?是web服务的一种设计风格。是http动作与服务功能结合的创新。简洁、容易理解、约定了规则。实现:1.用URI表示1种资源,只用名词表示资源,不要动作;2.用http动作表示对资源的操作: get 查询 post insert put 更新 delete 删除3.用http状态码表示结果** ps:做加法容易,做减法难。rest概念是http协议的主导者提出,创新的用了http动作表示服务动作。**举例我们使用HTTP的动词来操作用户这原创 2021-07-28 15:05:44 · 11503 阅读 · 0 评论 -
2021-07-16_书单
第一阶段:初学java核心技术java语言程序设计第二阶段:熟悉java编程思想effective java中文版深入理解java 7:核心技术与最佳实践java网络编程(以及java web方面的书)第三阶段:加强或精通java并发编程实战java虚拟机规范(java se 7版)深入理解java虚拟机:jvm高级特性与最佳实践设计模式之禅(java版)算法导论 或者 算法(第四版)深入剖析tomcat深入理解计算机系统代码大全编程珠玑...原创 2021-07-16 14:45:31 · 73 阅读 · 0 评论 -
DOM的property与HTML的attribute
HTML源码的组件,是attribute;由浏览器根据HTML源码生成的DOM对象,是property。二者是不同形态的描述,其值不是一一对应的。When writing HTML source code, you can define attributes on your HTML elements. Then, once the browser parses your code, a corresponding DOM node will be created. This node is an ob转载 2021-03-17 17:22:24 · 119 阅读 · 0 评论 -
Promise使用小结
1、是什么?1.是一种机制,处理未来发生事件的流程。2、为什么?1.“可以一定程度上解决回调地狱”ps:一般场景下,回调地狱并不难理解,倒是promise的结构和用法给人的困惑更多。3、如何用?4、哪些场景?用setTimeout模拟异步请求,实现5秒钟打印一次的功能。//直接写:几乎同时执行setTimeout(function() { console.log('m1')}, 5000)setTimeout(function() { console.log('m2')},原创 2021-03-13 16:23:56 · 110 阅读 · 0 评论 -
vue组件通讯总结
<h1 class="title">vue之父子组件间通信实例讲解(props、$ref、$emit)</h1> <div class="info"> 更新时间:2018年05月22日 10:16:18 作者:四小七 </div> <div class="lbd clear...转载 2021-03-08 16:47:56 · 510 阅读 · 1 评论 -
Vue:导航栏结构_下拉框填充数据_router传参
1 左侧导航栏1)标签结构一级标签,整体容器,用来设置菜单整体属性。二级标签,一级菜单,菜单组三级标签,二级菜单,菜单内容通过嵌套,实现菜单层级的扩展。2)控制隐藏显示v-if=‘false’3)从数据生成menu,递归https://www.vue-js.com/topic/5f69a47496b2cb0032c38566https://www.cnblogs.com/caijt/p/11015116.html<el-menu :default-openeds="['1']"&原创 2021-03-05 17:15:19 · 710 阅读 · 0 评论 -
Vue学习笔记1_vuerouter+axios+vuex的基本理解
VuerouteraxiosVuexPromise原创 2021-02-25 20:16:47 · 99 阅读 · 0 评论 -
闭包的使用场景
一、闭包 由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,闭包就是能够读取其他函数内部变量的函数。所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。 比如下面的代码:function f1() { var n = 999; function f2() { console.log(n); } return f2;}var result = f1();result();//999 函数f2就被包括在函数f1内部转载 2021-02-25 17:09:37 · 397 阅读 · 0 评论 -
vue-cli使用vue-router的文件说明
Vue之初始化一个vue项目https://blog.csdn.net/mao871863224/article/details/104435768/用vue-cli脚手架初始化项目时,勾选了vue-router,会自动引入该组件。程序目录结构:App.vue:主页面,包含页签。main.js:主页面的js文件,引入路由。router/index.js:路由映射文件。主要实现声明使用组件、路由映射组件。components/*.vue:组件(或者页面)注意:路由是前台路由,不是请求的url原创 2021-02-18 23:49:20 · 107 阅读 · 0 评论 -
修改idea使用本地maven配置
1.解决的问题在idea中新创建了springboot项目,但pom中依赖的包总是无法导入。工作的网络不能直接访问外网,需要配置代理。本地的maven已经做了配置,并把资料库改为了淘宝的。需要把idea的默认maven改为本地maven。2.本地maven配置maven的安装和配置,不在赘述,见:maven的配置文件:MAVEN_HOME\conf\settings.xml。关键内容如下: <!-- localRepository | The path to the local原创 2021-01-29 17:16:25 · 471 阅读 · 0 评论 -
jmeter5_命令行方式测试和日志分析
1、背景真正压力测试时,应该使用命令行模式,减少客户端对测试的影响。jmeter启动日志里也有提示:Don’t use GUI mode for load testing !, only for Test creation and Test debugging.For load testing, use CLI Mode (was NON GUI):jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder原创 2020-10-31 17:19:11 · 1409 阅读 · 0 评论 -
jmeter4_使用java生的随机字符模拟数据生成
1、背景数据库压力测试,模拟insert操作时,需要生成随机数字或字符串模拟生产。2、用java代码生成随机数基本要点:实际是用的BeanShell Sampler组件。写java代码生成你想要的任何值,类似java类的内部(不要在定义class了)。用内置函数vars.put(key,value)保存变量。用${key}取变量值。3、举例1.添加BeanShell Sampler2.编写javaBeanimport java.util.Random;String str=原创 2020-10-31 17:01:42 · 653 阅读 · 0 评论 -
jmeter2_简单的JDBC测试计划
目录1.添加驱动2.添加组件测试计划test plan线程组thread group配置configure jdbc请求sampler:查看结果listener:执行4.遇到的问题:1.java环境2.驱动3.测试方案修改保存1.添加驱动下载mysql的驱动,把jar包放到jmeter的 lib/ext目录下,重启jmeter生效。2.添加组件测试计划test plan新建测试计划线程组thread group设置线程数(Number of Threads(users))和启动线程的时间窗原创 2020-10-15 19:25:15 · 108 阅读 · 0 评论 -
jmeter1_基础组件介绍
1.基本组件介绍有12个基本组件,先了解这些组件的作用,才能更好的理解测试计划和用好jmeter。2.总结1.thread group:线程数模拟用户数据;2.测试计划的tree是测试流程图,由请求和逻辑控制组件构成。3.请求是sampler,如模拟http、ftp、tcp、jdbc请求。4.测试计划执行是每个线程执行完成的plan tree。5.执行顺序一般是从上往下,但因为controler的加入,会有循环和跳转。与ETL的抽取方案类似,只是没有连接线。参考:官方文档:https:/原创 2020-10-15 17:08:12 · 187 阅读 · 0 评论 -
TIJ5读书笔记:初始化与清理
Java 对象初始化详细过程:https://www.runoob.com/w3cnote/java-init-object-process.html注意:子类、父类的类加载和构造器执行。//父类Animalclass Animal { /*8、执行初始化*/ private int i = 9; protected int j; /*7、调用构造方法,创建默认属性和方法,完成后发现自己没有父类*/ public Animal() { /*9、执行原创 2020-08-10 20:14:16 · 187 阅读 · 0 评论 -
idea快捷键
掌握快捷键,少打N个字,效率提高15%!动作快捷键自动补全变量类型和变量名ctrl+alt+vpublic static void main 写法psvmSystem.out.println()sout自动补全try catch异常处理ctrl+alt+t创建新类ctrl+alt+insert......原创 2020-07-29 17:22:57 · 107 阅读 · 0 评论 -
Eclipse 文件搜索排除svn目录
Eclipse有个很方便的搜索工具,可以对workspace进行全局搜索,快捷键是Ctrl+h使用的时候遇到一个问题,就是搜索出来的结果带有svn目录下的,实际不需要搜多svn,这里有个方法可以排除svn目录1. 打开project properties2. 找到Resource->Resource Filters3. 在右侧找到Add按钮4. 按下图选择,OK再打开File search试试吧,已经看不到svn搜索结果啦~...转载 2020-07-29 15:58:10 · 593 阅读 · 0 评论 -
正则表达式及在Oracle中的应用
1、正则基础本节是通用知识,适合绝大部分语言,用来归纳、帮助个人理解。四种字符按性质区分,正则构成要素可分为 4类:字符、重复次数、位置、逻辑1字符代表要匹配的内容,包含普通字符、限定类型字符、转义字符(如回车)。普通字符:如明确的数字、字母、标点符号等。如abc,1a2bc3$等。普通字符用处不大,用普通的字符函数处理即可。集合字符:[…] 反括号内的任意字符。如只数字、只字母、字母数字等。如[0-9]表任意数字,如[a-zA-Z]表任意字母。比普通的字符函数匹配能力更广。转义字符:如回原创 2020-07-23 16:28:53 · 396 阅读 · 1 评论 -
Volatile不能保证线程安全
volatile是什么?标记变量是“易变的”,要求线程使用变量时,必须直接从主存获取;线程修改完毕后,必须保证一气呵成的写回主存。volatile为什么?需要先了解java内存模型。在主内存与线程之间,为了提高速度,又多了工作内存。工作内存与主内存的关系,类似电脑内存与硬盘的关系,缓存数据,提高速度,但可能存在不一致问题。volatile希望在一定程度上保证一致性。但在并发的3大特征里...原创 2020-04-17 10:12:36 · 846 阅读 · 0 评论 -
Java的注解是什么?及现实中的应用
1、注解是什么?注解是往源代码中添加描述信息的机制,这些信息可由编译器测试和验证。该信息后续可通过反射机制提取。然后根据描述,可定义不同的业务逻辑,实现丰富多彩的功能。注意:注解是静态的,是描述性的,没有任何功能。是注解处理器给了注解强大的力量。2、注解怎么用?关键词 @interface,表现也更新一个接口,属性按方法用。注解2要素:要明确@Target(作用在类、还是方法)、...原创 2020-03-12 20:20:10 · 174 阅读 · 0 评论