自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 不可逆加密:说一下你常用的加密算法

加密算法我们整体可以分为:可逆加密和不可逆加密,可逆加密又可以分为:对称加密和非对称加密。一、不可逆加密常见的不可逆加密算法有MD5,HMAC,SHA1、SHA-224、SHA-256、SHA-384,和SHA-512,其中SHA-224、SHA-256、SHA-384,和SHA-512我们可以统称为SHA2加密算法,SHA加密算法的安全性要比MD5更高,而SHA2加密算法比SHA1的要高。其中SHA后面的数字表示的是加密后的字符串长度,SHA1默认会产生一个160位的信息摘要。不可逆加密算法最

2020-07-31 10:08:27 12887

原创 Nginx介绍,安装,配置

问题一:客户端到底要将请求发送给哪台服务器?问题二:如果所有客户端的请求都发送给了服务器1,那另一台岂不是废了问题三:客户端发送的请求可能是申请动态资源的,也可能是申请静态资源的在搭建集群后使用Nginx做反向代理服务器1|2Nginx介绍Nginx是由俄罗斯研发的,应对Ramble的网站,并且2004年发布第一个版本Nginx的特点: 稳定性机枪,7*24小时不间断运行 Nginx提供了非常丰富的配置实例 占用内存小,并发能力强2|0Ngi...

2020-07-30 10:37:09 182

原创 java.lang.Class:是反射的源头

​​​​​​一、反射概述1. java.lang.Class:是反射的源头我们创建一个类,通过编译,生成对应的.calss文件,之后使用java.exe加载(jvm的类加载器)此.class文件,此.class文件加载到内存以后,就是一个运行时类,存在缓存区,那么这个运行时类的本身就是一个class的实例每一个运行时类只加载一次 有了Class实例以后,我们才可以进行如下的操作: 创建对应的运行时类的对象(重点) 可以获取对象的运行时类的完整结构(属性、方法、构造器、内部类、、、)(

2020-07-29 22:30:03 158

原创 写dial类,使用painter重绘表盘和指针

学程序首先要输出hell world,学电子要先来个流水灯。学Qt,那就必须先来个自定义控件,若有人问我从哪个下手,我推荐仪表盘,可简可繁,从低配到高配齐全,可入门也可进阶。1、仪表盘解析以常见的、传统的仪表盘为例,分解仪表盘的元素,主要有边框、刻度、数字、指针(或数字值、代替指针或二者都有)。边框就是背景图,可以动态的绘出也可以用一个图片贴图,指针可以绘出也可以用图片旋转来实现。其他的有刻度、数字、以及随着数值变化而引起的特效。2、贴图的仪表盘贴图仪表盘比较简单。实现方式:先找好2张图,一

2020-07-29 10:31:01 471

原创 SpringCloud系列使用Eureka进行服务治理

1. 什么是微服务?如果您不能看懂英文文档,可以跳转到搜简体中文的文档这是国人翻译的文档,可以学习参考:引用官方文档解释:简单来说,微服务架构风格[1]是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术。2. 什么是Spring Cloud?Spring Cl

2020-07-27 22:16:50 174

原创 JAVA8线程池THREADPOOLEXECUTOR底层原理及其源码解析

小侃一下 1. 使用线程池的好处. 为什么要使用线程池? 2. 线程池核心参数介绍 3. 提交任务到线程池中的流程 3.1 ThreadPoolExecutor#execute方法整体流程 3.2 排队恰火锅的场景 4. ThreadPoolExecutor线程池源码及其原理 4.1 从创建ThreadPoolExecutor开始: 线程池构造函数的源码 4.2 ThreadPoolExecutor中的一些重要的属性 4.2.1 线程池的运行状态 4.2.2 核心属性ctl

2020-07-26 21:48:57 397

原创 主从库理论知识-主从同步如何实现?

  大型网站为了减轻服务器处理海量的并发访问,所产生的性能问题,采用了很多解决方案,其中最主流的解决方案就是读写分离,即将读操作和写操作分别导流到不同的服务器集群执行,到了数据业务层,数据访问层,如果还是传统的单靠一台服务器去扛,面对如此多的数据库连接操作,必然会崩溃,如果造成数据的丢失,是不堪设想的。本文将利用mysql的主从配置,实现读写分离。主从库理论知识主从同步如何实现?  同步工作主要又三步,第一步就是主服务器(master)将对数据的操作记录到二进制日志文件(Binary log)中,

2020-07-25 10:18:17 748

原创 Go语言基础语法总结

package mainimport "fmt"func main() { fmt.Println("Hello, World!")}第1行:我们的Go程序是由包——package构成的,包的声明形式为:package <包名>。该行的意思是:当前HelloWorld.go文件属于main包。第2行:如果你使用过Java或Python,那你对import肯定不陌生。该行的意思是:导入一个名为fmt的包。如果需要导入多个包,有两种写法:import "fmt"imp.

2020-07-24 12:22:02 335

原创 LeetCode专题第53篇文章

今天是LeetCode专题第53篇文章,我们一起来看LeetCode第86题,Partition List(链表归并)。本题的官方难度是Medium,点赞1276,反对296,通过率大约41%。总体来说,这题质量一般,通过率有点高,整体难度偏简单,算是一道链表的基础题。对链表熟悉一些的同学来说,问题不大。题意我们首先来看下题意,题意是说给定一个链表以及一个整数x,要求根据x来对链表中的元素进行归并,使得链表的前半部分的结果小于x,后半部分的结果大于等于x。其他元素之间的相对顺序保持不变。我们

2020-07-23 12:00:45 116

原创 Java Web(1)-JavaScript

只需要在 head 标签中,或者在 body 标签中, 使用 script 标签 来书写 JavaScript 代码<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript"> // alert

2020-07-22 22:20:49 183

原创 Feature分支远程连接和远程分支的拉取推送及冲突处理

强制删除未合并的分支,git branch -D <branch-name>,将丢失分支的修改 git remote和git remote -v显示远程仓库信息 git push origin branch-name将本地分支推送到远程。 默认clone远程库后,只能看到master分支,其他分支需要设定跟踪,git checkout -b dev origin/devdev分支设置为跟踪来自origin的远程分支dev。 git branch ...

2020-07-22 11:32:36 1437

原创 华为云数据湖探索(DLI)介绍、安装、hello world、Location匹配

Spark与Elasticsearch(es)的结合,是近年来大数据解决方案很火热的一个话题。一个是出色的分布式计算引擎,另一个是出色的搜索引擎。近年来,越来越多的成熟方案落地到行业产品中,包括我们耳熟能详的Spark+ES+HBase日志分析平台。目前,华为云数据湖探索(DLI)服务已全面支持Spark/Flink跨源访问Elasticsearch。而之前在实现过程中也遇到过很多场景化问题,本文将挑选其中比较经典的分布式一致性问题进行探讨。分布式一致性问题问题描述数据容错是大数据计算引擎面

2020-07-21 11:15:17 1245

原创 创建具体的产品,并继承产品抽象类

工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。PS:在设计模式中,“实现一个接口”泛指实现某个超类型(可以是类或接口)的某个方法。要点:通过子类来创建具体的对象。客户只需要知道他们所使用的抽象类型即可。 由子类决定要实例化的类是哪一个,是指在编写创建者类时,不需要知道实际创建的产品是哪一个。选择了使用哪个创建者子类,自然就决定了实际创建的产品是什么。 对象统一由定义好的工厂方法来创建。二、实现步骤1、创建产品抽象类/**

2020-07-20 22:32:15 259

原创 pandas | 如何在DataFrame中通过索引高效获取数据?

今天是pandas数据处理专题的第四篇文章,我们一起来聊聊DataFrame中的索引。上一篇文章当中我们介绍了DataFrame数据结构当中一些常用的索引的使用方法,比如iloc、loc以及逻辑索引等等。今天的文章我们来看看DataFrame的一些基本运算。数据对齐我们可以计算两个DataFrame的加和,pandas会自动将这两个DataFrame进行数据对齐,如果对不上的数据会被置为Nan(not a number)。首先我们来创建两个DataFrame:import numpy

2020-07-20 11:21:50 6600 1

原创 Python 实现图像快速傅里叶变换和离散余弦变换

图像的正交变换在数字图像的处理与分析中起着很重要的作用,被广泛应用于图像增强、去噪、压缩编码等众多领域。本文手工实现了二维离散傅里叶变换和二维离散余弦变换算法,并在多个图像样本上进行测试,以探究二者的变换效果。1. 傅里叶变换实验原理对一幅图像进行离散傅里叶变换(DFT),可以得到图像信号的傅里叶频谱。二维 DFT 的变换及逆变换公式如下:DFT 尽管解决了频域离散化的问题,但运算量太大。从公式中可以看到,有两个嵌套的求和符号,显然直接计算的复杂度为O(n2)O(n2)。为了加快傅里..

2020-07-19 11:26:07 1831

原创 three.js 制作属于自己的动态二维码

. 解析图片流canvas = document.createElement('canvas');//创建canvas画布content = canvas.getContext('2d');//获取画布的上下文canvas.width = 310;//设置尺寸canvas.height = 310;img = new Image();//创建一张图片img.src = require("../assets/images/base/wechat.png");//设置图片地址img.onl

2020-07-18 12:32:22 186

原创 let只在块级作用域内有效

  ES6新增了let命令,用来声明变量,用法类似于var,但是和var有一定的区别  2.let只在块级作用域内有效    首先来看一个比较简单的例子,请告诉我,他们分别输出什么 1 2 3 4 5 6 7 8 9 10 //代码段1 for(vari = 0; i < 10 ;i++){ console.log('我是var声明的') } con...

2020-07-17 11:40:18 1741

转载 static关键字 + @Bean方法的使用

接下来就以这为两条主线,分别研究static在对应场景下的作用,本文将聚焦在静态内部类上。版本约定本文内容若没做特殊说明,均基于以下版本:JDK:1.8 Spring Framework:5.2.2.RELEASE正文说到Java里的static关键字,这当属最基础的入门知识,是Java中常用的关键字之一。你平时用它来修饰变量和方法了,但是对它的了解,即使放在JavaSE情景下知道这些还是不够的,问题虽小但这往往反映了你对Java基础的了解程度。当然喽,本文并不讨...

2020-07-16 11:27:11 4179 1

原创 深入理解Java虚拟机--个人总结(持续更新)

一、基本概念程序(program): 是为完成特定任务、用某种语言编写的一组指令的集合。即指一 段静态的代码,静态对象。进程(process):是程序的一次执行过程,或是正在运行的一个程序。是一个动态 的过程:有它自身的产生、存在和消亡的过程。——生命周期运行中的QQ,运行中的MP3播放器 程序是静态的,进程是动态的 进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域线程(thread):进程可进一步细化为线程,是一个程序内部的一条执行路径。若一个进程同一时间并行执行多

2020-07-15 22:53:36 141

原创 编程语言的黄金时代

摘要:回顾编程语言几十年来的兴衰起伏,似乎也折射了整个信息产业的变迁消亡,想要在技术的洪流里激流勇进,找准并学精一两门编程语言更加显得至关重要。最近,TIOBE更新了7月的编程语言榜单,常年霸榜的C、Java和Python依然蝉联前三位。万万没想到的是,R语言居然冲到了第八位,创下了史上最佳记录。而且后续随着业内对数据统计和挖掘需求的上涨,R语言热度颇有些势不可挡的架势。然而作为程序员吃饭的工具,编程语言之间也形成了某种鄙视链,各大论坛里弥漫着剑拔弩张的气氛,众口难调。也难怪有很多初学者会有疑惑

2020-07-15 10:43:08 563

原创 Java常用类-String类

  目录    1. String的实例化方式    2. 字符串的特性    3. 面试题:    4. String常用的方法    5. String与基本数据类型转换    6. StringBuffer、StringBuilder ?    正文    字符串相关的类:String    String类:代表字符串,Java 程序中的所有字符串字面值(如 "abc" )都作 为此类的实例实现。    String是一个final类,代表不可变的字符序列  

2020-07-14 21:45:20 166

原创 火影专场:Redis分布式锁实战

火影专场:Redis分布式锁实战 我们学习 Java 都知道锁的概念,例如基于 JVM 实现的同步锁 synchronized,以及 jdk 提供的一套代码级别的锁机制 lock,我们在并发编程中会经常用这两种锁去保证代码在多线程环境下运行的正确性。但是这些锁机制在分布式场景下是不适用的,原因是在分布式业务场景下,我们的代码都是跑在不同的JVM甚至是不同的机器上,synchronized 和 lock 只能在同一个 JVM 环境下起作用。所以这时候就需要用到分布式锁了。例如,现在有个场景就是整点抢.

2020-07-14 10:17:08 160

原创 @RequestBody接收前端传来的多个参数

在使用ajax发送请求时,如果发送的JSON数据是一个类中的不同属性,在Controller方法中使用@RequestBody会直接封装进该类中例如:前端部分代码JavaScript 1 <script language="JavaScript"> 2 function login(){ 3 var user_name = $("#user_name").val(); //用户名 4 va

2020-07-13 21:39:45 21751

原创 gradle添加依赖 Android 性能优化

1、为什么要进行启动优化一款应用的第一印象很重要,第一印象往往决定了用户的去留。打开一款应用,如果速度很快,很顺畅,那么很容易让人觉得这款应用背后的技术实力很强,用户潜意识中会对这款应用更加的信赖。其次,网上也流行一种说法,就是8秒定律,意思是说,如果用户在打开一个页面,在8秒的时间内还没有打开,那么用户大概的会放弃掉,意味着一个用户的流失。从这里就可以看出,启动优化的重要性了。2、启动的分类2.1 冷启动先来看看冷启动的流程图从图中可以看出,APP启动的过程是:ActivityMan

2020-07-13 11:14:48 489

原创 OBV指标的原理以及算法

1 OBV指标的原理以及算法 形象地讲,OBV指标是将成交量与股价的关系数字化,并根据股市的成交量变化情况来衡量股市的上涨或下跌支持力,以此来研判股价的走势。OBV指标的设计是基于如下的原理。 第一,如果投资者对当前股价的看法越有分歧,那么成交量就越大,反之成交量就越小,所以可以用成交量来衡量多空双方的力量。 第二,股价在上升时,尤其是在上升初期,必须要较大的成交量相配合,相反股价在下跌时,无需耗费很大的动量,因此成交量未必放大,甚至下跌阶段成交量会有萎缩趋势。 第...

2020-07-07 10:42:03 9210

原创 安装SimpleCaptcha

SimpleCaptcha是一个使用简单,基于.Net Standard 2.0的图形验证码模块。它的灵感来源于Edi.Wang的这篇文章https://edi.wang/post/2018/10/13/generate-captcha-code-aspnet-core,我将其中生成验证码的代码抽取出来进行封装得到了这个模块。下面介绍一下使用方式。基本使用方式安装SimpleCaptcha在Nuget中搜索安装SimpleCaptcha安装缓存模块SimpleCaptcha依赖Micro

2020-07-05 12:09:49 431

原创 Windows高DPI系列控件(一) - 饼图

  一、醉一醉    眨眼功夫,2020年过去一半了。回想最近一段时间的工作和生活,总觉得应该写点儿什么!    于是,最近有空就在想啊想,想想可以写点儿什么有用的东西好呢!刚好之前写过几篇关于高DPI的文章,不知道什么原因,阅读量不是很高,因此打算以高DPI为索引开始引入一系列的控件使用案例,包括Qt自带的控件、简单图表和一些复杂的图表。    Qt自带的控件就不说了,高DPI框架几乎可以完美适配    简单的图表这里主要会引入柱状图、折线图、饼图等    复杂图表主要是定制一些股票看

2020-07-02 14:04:45 229

原创 Java基础优胜客APP下载包装类 System类 异常)

Map是集合容器,优胜客APP官方下载负责人Q1204007777存放的元素有键与值两部分组成,通过键可以找到所对应的值,键和值必须是引用数据类型,键是唯一的,不能重复,没有顺序。 HashMap是Map的实现类. Map的添加,删除,查询复制代码 1 2 3 4 5 6 7 8 9 10 11 12 13 //创建Map对象 Map<String, Strin

2020-07-01 21:22:34 243

原创 HashSet 就假了 HashMap

实际上并不是因为它俩相似,从根本上来说,它俩本来就是同一个东西。再说的清楚明白一点, HashSet 就是个套了壳儿的 HashMap。所谓君子善假于物,HashSet 就假了 HashMap。既然你 HashMap 都摆在那儿了,那我 HashSet 何必重复造轮子,借你一样,何不美哉!HashSet 是什么下面是HashSet的继承关系图,还是老样子,我们看一个数据结构的时候先看它的继承关系图。与HashSet并列的还有TreeSet,另外HashSet还有个子类型LinkedH...

2020-07-01 11:06:03 229

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除