如何在Ubuntu 18.04(实体机)上配置OpenWRT的开发环境
一、安装虚拟机(实体机)安装虚拟机或者实体机都可以,刚上手建议安装虚拟机,选择16.04版本或者18.04版本都OK,其openwrt开发环境的搭建过程大同小异,看自身情况选择即可。安装教程请参考其他资料,此处不再记录。因之前接触过一些Linux程序,故博主本人采用的是Ubuntu 18.04实体机。二、换源为...
2024-01-10PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
上一篇文章聊了一下使用Redis事务来解决高并发商品超卖问题,今天我们来聊一下使用Redis链表来解决高并发商品超卖问题。实现原理使用redis链表来做,因为pop操作是原子的,即使有很多用户同时到达,也是依次执行,推荐使用。实现步骤第一步,先将商品库存入队列/** * 添加商品数量到商品队...
2024-01-10一篇文章快速了解Angular和Ionic生命周期和钩子函数
目录Angular实现调用顺序注意Ionicionic是怎么处理页面的生命周期的路由守卫总结Angular实现首先实现方式不用多说,使用钩子函数需要在定义的时候实现对应的接口export class ListPage implements OnInit { constructor() {} ngOnInit() { // code here }}调用顺序1、constructor最先执行的是构造函数,在执行构造...
2024-01-10vue或react项目生产环境去掉console.log的操作
在开发环境写了很多console.log/info/debug,在生产环境需要去掉这些console。如果手动删除未免也太累了,再说以后想再开发还得重新写console。事实上webpack提供了删除console的插件,在vue-cli3里面是这样用的:首先安装terser-webpack-pluginnpm install terser-webpack-plugin -D然后在vue.config.js文件里写插件的配置:mo...
2024-01-10ServletContext读取web资源_动力节点Java学院整理
ServletContext类中有这么四个方法:getRealPath(String path)getResource(String path)getResourceAsStream(String path)getResourcePaths(String path)这四个方法都使用web工程下某个web资源路径的字符串表现形式作为参数,而每个方法返回不同的类型,我们通过这四个方法之一可以获取某个资源,并对其进行读取和修改操作。假...
2024-01-10Java2 JDK安装和配置教程
什么是JDKJDK就是Java Development Kit,java开发工具包,由sun公司开发。JDK的三个版本桌面系统或应用程序的标准版(Java 2 Platform Standard Edition,J2SE)小型设备和智能卡的Micro版本(Java 2 Platform Micro Edition,J2ME)服务器应用程序和服务的平台企业版(Java 2 Platform EnterPrise Edition)JDK包含的主要内容Java工具Java运...
2024-01-10java中LinkedBlockingQueue与ArrayBlockingQueue的异同
相同:1、LinkedBlockingQueue和ArrayBlockingQueue都实现了BlockingQueue接口;2、LinkedBlockingQueue和ArrayBlockingQueue都是可阻塞的队列 内部都是使用ReentrantLock和Condition来保证生产和消费的同步; 当队列为空,消费者线程被阻塞;当队列装满,生产者线程被阻塞;使用Condition的方法来同步和通信:await()和s...
2024-01-10JavaWeb中Struts2拦截器深入分析(一)
一、struts2中的拦截器(框架功能核心)1、过滤器VS拦截器过滤器VS拦截器功能是一回事。过滤器是Servlet规范中的技术,可以对请求和响应进行过滤。拦截器是Struts2框架中的技术,实现AOP(面向切面)的编程思想,是可插拔的, 可以对访问某个 Action 方法之前或之后实施拦截。拦截器栈(Interceptor Stack):...
2024-01-10Java基于JavaMail实现向QQ邮箱发送邮件
最近项目在做新闻爬虫,想实现这个功能:爬虫某个页面失败后,把这个页面的 url 发到邮箱。最终实现的效果图如下,后期可以加上过滤标签、失败状态码等,方便分类搜索异常。开发人员可以根据邮件里的 url 和堆栈信息,分析爬虫失败的原因。是不是服务器 down 了? 还是爬虫的 Dom 解析没有...
2024-01-10剖析Java中线程编程的概念
Java线程的概念和其他多数计算机语言不同,Java内置支持多线程编程(multithreaded programming)。多线程程序包含两条或两条以上并发运行的部分。程序中每个这样的部分都叫一个线程(thread),每个线程都有独立的执行路径。因此,多线程是多任务处理的一种特殊形式。你一定知道多任务处理,因为它...
2024-01-10Java Web使用简单的批处理操作(记事本+Tomcat)
之前进行Web开发的时候使用的是myeclipse,但只用过的人都知道,由于其插件太多,而且有很多插件的功能根本就接触不到。所以导致一旦工程稍微大一点就会很卡,虽然之前也对其进行优化过,但还是觉得不太好用。今天闲来无事,就决定尝试一下最原始的办法,使用记事本+Tomcat进行开发。虽然效率不是很高,...
2024-01-10Java Swing APIs可插拔式外观风格特性应用
Java Swing 应用编程接口提供了可插拔式外观风格(PLAF)的特性,它允许Swing 图形用户接口(GUI)小应用根据编程人员定制的外观风格设置来改变界面外观风格。 几乎所有现代用户接口框架都结合了视图和控制,无论它们是基于SmallTalk、C++或Java。 Swing将每个组件的视图和控制封装到一个称为UI委托...
2024-01-10Discuz! X≤3.4 Arbitrary File Deletion Vulnerability Analysis
Author:LoRexxar '@Knownsec 404 Team Time: September 30, 2017 Chinese version: https://paper.seebug.org/411/ 0x01 BriefingDiscuz! X community software is a forum with excellent performance, comprehensive functions, security and stability, built with other ...
2024-01-10Nday 漏洞从挖掘到利用
作者:Peterpan0927@360 nirvan team博客:https://peterpan980927.cn/use two vul and heap srpay twice0x00.漏洞挖掘这算是我的一个小练手吧,写的不是很好,主要是思路分享queryCompletion in AVEBridge由于com.apple.AVEBridge这个模块中的函数比较少,于是我就写了一个比较小的C语言脚本来Fuzz一下,这个比较简单,所以一下子就...
2024-01-10mongodb 内嵌数组查询问题: 如何限定返回与条件匹配的数组
原数据为:{ "_id" : NumberLong(1181675746), "shard_qty" : 4, "goods_qty" : 0, "shop_qty" : 0, "favorite_qty" : 4, "favorite_shards" : [ { "sid" : NumberLong(580), "favorite_dt" : ISODate("2015-06-26T12:13:06.405+08:...
2024-01-10老是记不住 .tar.gz 的解压命令,求解脱
人老了记性就不好,第一次打 DOTA 至今已 8 年了,仍然记不住 .tar.gz 的解压命令。每次需要解压都得临时查一下手册,快崩溃了,求解脱。回答:源自Alias.shextract () { if [ -f $1 ] ; then case $1 in *.tar.bz2) tar xjf $1 ;; *.tar.gz) tar xzf $1 ;; *.bz2) bunzip2 $1 ;; ...
2024-01-10sublime text3 C/C++环境搭建问题和输出中文乱码问题
RT最近迷上了sublime text,文本的多彩高亮让我很是着迷决定抛弃VS和Eclipse改用它。。但 现在有两个问题:1.C/C++环境已经搭建好,编译器选择C++能够运行 但是选择自动选择编译器却出现= =。好吧 现在就这一个问题了....我都不知道刚才我这么把另外一个问题弄出来的...
2024-01-10c++函数模板实参推断
为什么向com中传递一个引用,无法改变temp的值,而向com1中传递就可以改变呢?难道com这个函数模板传入引用时,不是推断出和com1一样的实例吗?#include <iostream>#include <typeinfo>template <typename T>void com(T arg) { std::cout << "com arg's address = " << &arg << std::endl; arg++;}void com1(int& arg) { std::co...
2024-01-10整数0赋值给字符型变量,再以整型输出的结果为什么会出现48?【HDO 1002 A + B Problem II】
原题:HDO 1002 A + B Problem II用C++调试并提交不会出现错误。用c语言提交提示"wrong", 结果调试发现:当第二个加数长度超过19个0,后面的0变成了48?(如下)0 + 0000000000000000000 = 00 + 00000000000000000000 = 48 0 + 000000000000000000000 = 4848 #include<stdio.h>#include<string.h>#define maxn 1005char a[maxn], b[m...
2024-01-10C++11多线程编程报错?(提示nullptr)
1.在使用C++11编写多线程程序的时候,出现了一个报错2.已经在自己加的各种技术群里问了,没人回3.上过stackoverflow 只有一个类似的问题,但是无法解决链接:https://stackoverflow.com/que...4.报错的代码段:这个很诡异,没有说明具体是哪里错了,报错定位在整个工程的最后一行"}"字符处但是报错是在我修改了一部分逻...
2024-01-10