待兔 待兔
4年前
一篇文章通俗易懂的让你彻底理解 Java 注解
很多Java程序员,对Java的注解一知半解,更有甚者,有的人可能连注解是什么都不知道本文我们用最简单的demo,最通俗最短的语言,带你了解注解到底是什么?先来简单回顾一下基础,我们知道,Java的源文件编辑后,生成.class文件,1..Java源文件,这个是源文件时期2.源文件经过编译生成.class字节码文件,这个也是编译时期3
2021年度最全面JVM虚拟机,类加载过程与类加载器
前言类装载器子系统是JVM中非常重要的部分,是学习JVM绕不开的一关。一般来说,Java类的虚拟机使用Java方式如下:Java源程序(.java文件)在经过Java编译器编译之后就被转换成Java字节代码(.class文件)。类加载器负责读取Java字节代码,并转换成java.lang.Class类的一个实例。每个这样的实例用来表
Stella981 Stella981
3年前
IdentityServer4在Asp.Net Core中的应用(一)
  IdentityServer4是一套身份授权以及访问控制的解决方案,专注于帮助使用.Net技术的公司为现代应用程序建立标识和访问控制解决方案,包括单点登录、身份管理、授权和API安全。  下面我将具体介绍如何在.NetCore中实现OAuth授权,从最简单的授权模式开始,在上一篇对OAuth2.0的详细描述中,在客户端模式中,我们说它在严
Easter79 Easter79
3年前
SVG动画制作工具 , 从此抛弃臃肿的gif
VG简介只要是程序员的你,你不得不知道svg图片,它可以无限任意放大拉伸都不会损失画质,就像系统字体一样可以无限矢量放大,svg更高级是可以用来制作矢量动画,现在各大浏览器和系统基本对svg已经支持很好了SVG与Gif的比较SVG图片:矢量放大,动画也是矢量,体积极小,相当于一个.txt文本的体积,几b到几kb
Stella981 Stella981
3年前
Linux下crontab命令的用法
crond是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。而linux任务调度的工作主要分为以下两类:1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存2、个人执行的工作:某个用户定期要做的工作,例
Wesley13 Wesley13
3年前
MySQL(mariadb)多实例应用与多实例主从复制
MySQL多实例mysql多实例,简单理解就是在一台服务器上,mysql服务开启多个不同的端口(如3306、3307,3308),运行多个服务进程。这些mysql服务进程通过不同的socket来监听不同的数据端口,进而互不干涉的提供各自的服务。在同一台服务器上,mysql多实例会去共用一套mysql应用程序,因此在部署mysql
Stella981 Stella981
3年前
Python骚操作:利用Python获取摄像头并实时控制人脸!
实现流程从摄像头获取视频流,并转换为一帧一帧的图像,然后将图像信息传递给opencv这个工具库处理,返回灰度图像(就像你使用本地静态图片一样)程序启动后,根据监听器信息,使用一个while循环,不断的加载视频图像,然后返回给opencv工具呈现图像信息。创建一个键盘事件监听,按下"d"键,则开始执行面部匹配,并进行面具加
Stella981 Stella981
3年前
JMS(Java消息服务)与消息队列ActiveMQ基本使用(一)
最近的项目中用到了mq,之前自己一直在码农一样的照葫芦画瓢。最近几天研究了下,把自己所有看下来的文档和了解总结一下。一.认识JMS1.概述对于JMS,百度百科,是这样介绍的:JMS即Java消息服务(JavaMessageService)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两
Wesley13 Wesley13
3年前
OWASP靶机搭建
owasp靶机应该是每个渗透入门乃至一些高手的一个试炼地之一,以下是我在靶机上搭建虚拟的方法。1.虚拟机安装在这里我用的是VMware14,靶机自然也是VM的。软件安装基本也是没有什么可讲的,安装过程中电脑重启为正常程序。百度云盘传送门【2c4j】(https://www.oschina.net/action/GoT
Stella981 Stella981
3年前
JVM垃圾回收机制
引用计数法:当给对象添加一个引用计数器,每当有一个地方引用这个对象时计数器值就1;引用失效时,计数器值就1;任何时刻计数器为0的对象就是不可能在被使用。优点:引用计数收集器可以很快地执行,交织在程序运行中。缺点:无法检测出循环引用。例如:MyObjectobject1newMyObject();MyObjectobject2