- 博客(42)
- 收藏
- 关注
原创 这是《计算机网络》系列文章的第二篇文章
这是《计算机网络》系列文章的第二篇文章 我们第一篇文章讲述了计算机网络的基本概念,互联网的基本名词,什么是协议以及几种接入网以及网络传输的物理媒体,那么本篇文章我们来探讨一下网络核心、交换网络、时延、丢包、吞吐量以及计算机网络的协议层次和网络攻击。 网络核心 网络的核心是由因特网端系统和链路构成的网状网络,下面这幅图正确的表达了这一点 那么在不同的 IS...
2019-12-31 10:56:27 231 1
原创 百度DMA+小度App的蓝牙语音解决方案入局
前记 人机交互经历了三个阶段键鼠、触屏和语音交互。在国外,谷歌、亚马逊、苹果等巨头的竞争已经到达白热化状态;在国内,百度的DuerOS凭借着入局早,投入大,已经成为国内语音互交的一面旗帜。无论是从技术实力,还是商用步伐,它都走在国内AI公司的前列。想做AI语音的公司,跟着百度走,也算是一条路吧。 蓝牙智能语音现状 目前绝大多数蓝牙语音设备面临很多问题,包括...
2019-12-29 19:58:40 1134
原创 PRML第一章读书小结
第一章用例子出发,较为简单的引入了概率论、模型、决策、损失、信息论的问题,作为机器学习从业者,读PRML除了巩固已有基础,还受到了很多新的启发,下面将我收到的启发总结如下。 1. 多项式曲线拟合问题 多项式拟合问题作为全书的第一个引例,通过此说明了很多关键的概念。 给定一个训练集,训练集由x的N次观测组成,记作x≡(x1,⋯,xN)T,对应了相应的观测值t...
2019-12-29 16:12:00 117
原创 算法题之字符串匹配问题|凡酷
我最近复习一道困难程度的算法题,发现了许多有趣之处。在借鉴了他人解法后,发现从最简单的情况反推到原题是一种解锁新进阶的感觉。从递归到动态规划,思维上一步一步递进,如同一部跌宕起伏的小说,记录下来和诸君共赏之。 题目如下: 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。 '.' 匹配任意单个字符 '*' ...
2019-12-28 22:22:22 218
原创 OpenCV与MFC实战之图像处理 样本采集小工具制作 c++MFC课程设计
运行环境VS2017,需要配置库为:opencv 题目:样本采集小工具 需求: 用MFC和opencv完成样本采集小工具。 界面功能 1、选中原图片集的目录。 2、选择当前是正样本还是负样本?并选中其目录。 3、通过上一张下一张更换原图片集的图片显示。 鼠标点击图片显示区域功能 1、左击图片选中,以鼠标点...
2019-12-28 11:28:06 276
原创 代理模式之静态代理,JDK动态代理和cglib动态代理|凡酷
代理模式之静态代理,JDK动态代理和cglib动态代理 代理模式,顾名思义,就是通过代理去完成某些功能。比如,你需要购买火车票,不想跑那么远到火车站售票窗口买,可以去附近的火车票代售点买,或者到携程等第三方网站买。这个时候,我们就把火车站叫做目标对象或者委托对象,也可以叫被代理对象,而火车票代售点和携程就叫做代理对象。 一、静态代理 静态代理是最简单的代理模式。需...
2019-12-27 22:41:53 93
原创 一个HTTP数据包的奇幻之旅|凡酷
我是一个HTTP数据包,不知谁创建了我,把我丢到这个房间。 突然,来了一个大汉,我吓得缩到角落。 “该启程了,站起来”。 “去哪里啊?” 我弱弱的问。 “还能去哪里,你是一个数据包,当然要出远门,完成你的使命啊,别啰嗦,我要先把你复制到内核空间,一会要发出去,让我来看下你的内容”。 我不敢多言,乖乖的站好,一眨眼的功夫,我来到了另一个...
2019-12-27 11:12:09 203
原创 如何使用Kubernetes网络|火影凡酷
Kubernetes网络一直是一个非常复杂的主题。本文将介绍Kubernetes实际如何创建网络以及如何为Kubernetes集群设置网络。 本文不包括如何设置Kubernetes集群。这篇文章中的所有例子都将使用Rancher 2.0集群(其他平台也同样适用)。即使你打算使用其他的公有云管理Kubernetes服务,也希望你对Kubernetes网络的工作原理有更好的了解。 ...
2019-12-26 14:21:29 172
原创 HashMap源码记录1|火影凡酷
前言:由于笔者所在的公司用的是jdk1.8,故该源码是针对1.8分析的。首先:我们看一张长的很丑的HashMap的结构图:再看看几个核心的常量:复制代码static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // 默认初始化容器大小,当自己指定容器大小时,必须为2的幂次方static final int MAXIM...
2019-12-25 22:13:23 114
原创 SpringBoot 优雅的集成Spring Security
前言 至于什么是Spring security ,主要两个作用,用户认证和授权。即我们常说的,用户只有登录了才能进行其他操作,没有登录的话就重定向到登录界面。有的用户有权限执行某一操作,而有的用户不能执行则是授权。算是一个项目安全框架。和shiro 框架一样。二者的不同大家可以百度小。Spring security 是Spring家族的一员,所以Springboot算是对Spring...
2019-12-25 14:00:59 165
原创 Axios请求头中常见的几种Content-Type|火影专场发布
相信大家对列表展示早已不陌生了,工作中也经常会有这样的需求。那我们如何实现一个既简单又美观的列表展示呢? 首先让我们来看一下效果: 上面是普通的展示列表,而下面则是我们处理过的展示列表,是不是感觉美观了很多啊。 实现: 核心属性: linear-gradient(线性渐变) 思路:绝对定位一个盒子到图片的上方,并对盒子的背景使用 linear-...
2019-12-24 20:44:46 505
原创 Dubbo 如何成为连接异构微服务体系的最佳服务开发框架
Dubbo 如何成为连接异构微服务体系的最佳服务开发框架 从编程开发的角度来说,Apache Dubbo (以下简称 Dubbo)首先是一款 RPC 服务框架,它最大的优势在于提供了面向接口代理的服务编程模型,对开发者屏蔽了底层的远程通信细节。同时 Dubbo 也是一款服务治理框架,它为分布式部署的微服务提供了服务发现、流量调度等服务治理解决方案。 在这篇文章中,我们将以以...
2019-12-23 17:14:24 124
原创 软件设计的哲学:第十一章 两次设计
设计软件是困难的,所以你对如何构建一个模块或系统的最初想法不太可能产生最好的设计。如果您为每个主要的设计决策考虑多个选项,您将得到一个更好的结果:设计两次。 假设您正在为GUI文本编辑器设计管理文件文本的类。第一步是定义类将呈现给编辑器其余部分的接口;与其选择第一个出现在脑海中的想法,不如考虑几种可能性。一种选择是面向行的接口,它具有插入、修改和删除整行文本的操作。另一个选项是基于单...
2019-12-22 09:44:32 196
原创 一段简单的关于字符串的 Java 代码竟考察了这么多东西
下面的代码运行结果是什么?解释一下为什么会有这些差异。 复制代码 String s1 = "hello"; String s2 = s1 + ",world"; String s3 = "hello" + ",world"; String s4 = "hello,world"; String s5 = new String("hell...
2019-12-21 14:23:27 129
原创 ASP.NET Core开发者指南()
你可以在下面找到一张图,该图展示了你可以选取的路径及你想学习的库,从而成为一名 ASP.NET Core 开发者。“作为 ASP.NET Core 开发者,我接下来应该学习什么?”,我把这张图作为建议给每个问过我这一问题的人。 免责声明 该指南的目的是为了给读者心有个大概的轮廓。如果你对接下来要学习的内容感到困惑,这张路线图将指导你,而不是鼓励你选择时髦的东西。 你应该逐渐...
2019-12-20 15:45:38 407
原创 2019年的面试经验总结-软件测试
最近刚换了一份工作,上周请测试组的同事们一起吃了个饭,饭桌上分享了部分面试经验。饭后,一个同事跟我说:“有空的话,能不能把相关经验梳理成文档发给我参考呀?”。当初回复他:“看吧,我之前是打算把面试题整理出来,后面有时间再整理经验吧”。周末有一个前同事也问我有没有时间,想找我咨询下面试的经验。后来,就谋生了整理的念头了,趁着这几天有空梳理出了今年面试相关的笔试、面试题,总结了部分面试经验,供大家...
2019-12-19 22:41:34 282
原创 使用python实现数组、链表、队列、栈
什么是数据结构? 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。 简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中。 比如:列表,集合和字典等都是数据结构 N.Wirth:“程序=数据结构+算法” 数据结构按照其逻辑结构可分为线性结构、树结构、图结构 线性结构:数据结构中的元素...
2019-12-19 17:07:06 138
原创 一个Java对象到底占用多大内存?
在进行 JVM 调优时,我们经常关注 JVM 各个区域大小以及相关参数,从而进行特定的优化,在一次排查内存溢出问题时我不禁想到一个问题,一个 Java 对象到底占用多大内存?下面我们就来分析验证下。 Java 对象内存结构 在 JVM 中,Java 对象都是在堆内存上分配的,想要分析出 Java 对象内存占用,首先要了解 Java 对象内存结构,一个 Java 对象内存占用...
2019-12-17 09:56:03 545
原创 nginx部署基于http负载均衡器
nginx跨多个应用程序实例的负载平衡是一种用于优化资源利用率,最大化吞吐量,减少延迟和确保容错配置的常用技术。 环境介绍 配置nginx负载均衡器因会用到多台服务器来进行,所以下面我会用到docker,具体docker的使用请移步docker实战 系统环境: root@ubuntu:~# lsb_release -a #查看系统...
2019-12-16 09:59:30 168
原创 初步了解JVM第一篇
大家都知道,Java中JVM的重要性,学习了JVM你对Java的运行机制、编译过程和如何对Java程序进行调优相信都会有一个很好的认知。 废话不多说,直接带大家来初步认识一下JVM。 什么是JVM? JVM(Java Virtual Machine)是一个抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域,它负责执行指令,还要管理数据、内存和寄存器...
2019-12-15 23:12:52 111
原创 WebGPU学习(五): 现代图形API技术要点和WebGPU支持情况调研
大家好,本文整理了现代图形API的技术要点,重点研究了并行和GPU Driven Render Pipeline相关的知识点,调查了WebGPU的相关支持情况。 另外,本文对实时光线追踪也进行了简要的分析。这是我非常感兴趣的技术方向,也是图形学的发展方向之一。本系列后续文章会围绕这个方向进行更多的研究和实现相关的Demo。 上一篇博文: WebGPU学习(四):A...
2019-12-15 10:45:02 696
原创 什么是RESTful?RESTfule风格
理解什么是REST之前,先去脑补以下什么是HTTP,参考【Http协议】 什么是REST?# REST(英文:Representational State Transfer,简称REST,意思:表述性状态转换,描述了一个架构样式的网络系统,比如web应用)。 它是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件,它主要用于客户端和服务端交互...
2019-12-14 21:15:37 164
原创 使用dva改造React旧项目的数据流方案
最近在给自己的脚手架项目转到TypeScript时,遇到了一些麻烦。 项目之前采用的是react + react-redux + redux-thunk + redux-actions +redux-promise的体系。 当项目转TypeScript时,react和react-redux这种完美转换。 redux-actions转换也初步完成,但是各种为了适应T...
2019-12-13 21:11:29 322
原创 简单易懂带你了解二叉树
前言 1. 数组和链表的特点 2.树和二叉树 3.二叉搜索树以及它是通过什么方式改善的数组、链表的问题 4. 二叉树的实现 4.1 新增数据 4.3 查找方法 4.3 删除方法 5. 遍历 6. 二叉树的效率 7. 二叉树的缺点 回到顶部 前言 上一篇博客为大家介绍...
2019-12-12 15:46:08 145
原创 CAS都不了解,你还怎么看J.U.C
说到CAS(CompareAndSwap),不得不先说一说悲观锁和乐观锁,因为CAS是乐观锁思想的一种实现。 悲观锁:总是很悲观的认为,每次拿数据都会有其他线程并发执行,所以每次都会进行加锁,用完之后释放锁,其他的线程才能拿到锁,进而拿到资源进行操作。java中的synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。 乐观锁:总是很乐观认为,自己...
2019-12-11 18:42:30 230
原创 Flink入门(三)——环境与部署
flink是一款开源的大数据流式处理框架,他可以同时批处理和流处理,具有容错性、高吞吐、低延迟等优势,本文简述flink在windows和linux中安装步骤,和示例程序的运行,包括本地调试环境,集群环境。另外介绍Flink的开发工程的构建。 首先要想运行Flink,我们需要下载并解压Flink的二进制包,下载地址如下:https://flink.apache.org/downloa...
2019-12-11 09:27:15 238
原创 基于antd封装一个高可用form组件 减少cv代码
在开发中台过程中 我们的原型中有很多表单,antd有表单组件,但是粒度比较细,就单纯组件而言,无可厚非,但是在开发过程中,可能会造成代码不够聚合,有些表单公共逻辑无法提取,copy paste比较多,所以可以加以封装,搞一个兼容性和扩展性都契合项目本身的组件。 主要思路 我简单查阅了一番资料,参考了一下别人的封装方式,决定以Col和FormItem作为基本单元,进行表单的搭...
2019-12-10 18:16:43 249
原创 Delphi7 - Server Monitor开发并实现指定端口定时刷新、重启和邮件提醒等功能
项目背景 近期,总经办邮件反馈考勤数据频繁丢失,请IT排查其根本原因,并提供整改措施。 措不及防,这个项目当初并不是IT主导的,是设备部采购,然后协同软件供应商直接安装、部署和调试的,IT只是提供几个数据库表接口给供应商。然后我们就开始在设备、总经办、供应商之间相互扯皮,之所以扯皮的原因是,经过供应商排查并没有发现任何问题(具体情况不得而知),也就是说他们也不知道造成数据丢...
2019-12-09 13:28:40 246
原创 Hyperledger Fabric手动生成CA证书搭建Fabric网络
之前介绍了使用官方脚本自动化启动一个Fabric网络,并且所有的证书都是通过官方的命令行工具cryptogen直接生成网络中的所有节点的证书。在开发环境可以这么简单进行,但是生成环境下还是需要我们自定义对网络中的节点的证书进行配置。 所以在本文中,将会详细介绍一个从手动生成证书一直到启动网络的整体步骤。本文只交代整体的搭建步骤。对于Fabric-Ca的讲解不在本文的范围内,将在另一篇...
2019-12-08 17:41:23 1291 2
原创 动态规划--0,1背包问题(再也不怕类似背包问题了)
这种类型问题三大要素:总重量、每件物品重量、每件物品价值,问最终能够塞进背包中的价值最大是多少?应该怎么选择物品? 当然也不一定是这些,例如上节所说的矿工挖矿:总人数、挖每座矿的人数、每座矿的金子数。 也就是说,只要出现了这三大要素,都可以视为0,1背包问题(物品不可拆分) 动态规划三要素:边界、最优子结构、状态转移方程。 我们一步步进行解析: ...
2019-12-08 00:24:53 258
原创 SpringBoot源码学习系列之嵌入式Servlet容器
目录 1、博客前言简单介绍 2、定制servlet容器 3、变换servlet容器 4、servlet容器启动原理 SpringBoot源码学习系列之嵌入式Servlet容器启动原理 @ 1、博客前言简单介绍 SpringBoot的自动配置就是SpringBoot的精髓所在,对于SpringBoot具体实现不是很清...
2019-12-07 21:08:34 151
原创 使用HttpReports快速搭建API分析平台
HttpReports 简单介绍 HttpReports 是 .Net Core下的一个Web组件,适用于 WebAPI 项目和 API 网关项目,通过中间件的形式集成到您的项目中, 通过HttpReports,可以让开发人员快速的搭建出一个 API 性能分析的基础报表网站。 主要包含 HttpReports 中间件 和 HttpReports.Web 报表项目:...
2019-12-07 09:16:03 157
原创 面试官:JVM锁优化都优化了啥?
面试官:JVM锁优化都优化了啥? 从JDK1.6开始,JVM对锁进行了各种优化,目的就是为了在线程间更高效的共享数据和解决互斥同步的问题。从锁优化的话题开始,可以引申出很多考点面试题,比如锁优化的技术、各优化技术的细节、CAS实现原理、CAS的ABA问题及如何解决等,持续发散还会引发更多问题,例如逃逸分析等,可以看出技术点都是相关联的,需要不断积累和梳理。 面试官:JVM实...
2019-12-06 22:40:54 184
原创 《手把手教你》系列练习篇之7-python+ selenium自动化测试 -压轴篇(详细教程)
不负时代 沉睡的人心潮澎湃 热血流过动脉 别让梦想带着遗憾醒来 总有人被世界淘汰 总有人被记载 在这尔虞我诈的舞台挺过来 初心仍在 坎坷不算失败 不负时代 人生没有彩排 Oh 起落都精彩 磨难用双手推开 全力去对待 豁出去才痛快 看我和命运 谁厉害 有一天我会卷土重来 创造新的未来 遍地狼藉会被黄沙 掩埋 总有人被世界淘汰 总有人被记载 在这尔虞我诈的舞台 挺过来 初心仍在 坎坷不算失败 不负...
2019-12-06 14:07:28 249
原创 Java线程池实现
电脑的CPU资源是有限的,任务的处理速度与线程数量之间并不是正相关。当线程数量过多,CPU要频繁的在不同线程切换,反而会引起处理性能的下降。线程池中最大的线程数,是考虑多种因素来事先设定的,比如硬件的条件,业务的类型等等。 当我们向一个固定大小的的线程池中请求一个线程时,当线程池中没有空闲资源了,这个时候线程池如何处理这个请求?是拒绝请求还是排队请求?各种策略又是如何实现的呢? ...
2019-12-05 20:53:35 113
原创 从系统角度考虑性能优化
目录 什么是性能? 定义系统范围 重定义功能 关注价值 总结 正文 在去年的一次面试中,我被问及性能优化方面的问题。对方问,“你在性能优化方面有哪些了解?”。我感到问题笼统,有些无从下手,于是简单地回答道:“找到程序性能的瓶颈位置,进行针对性的优化,比如为数据库查询效率低的地方适当添加索引等……”。对方的表情告诉我,这个答案...
2019-12-05 17:25:30 473
原创 js模块导入/导出大全
module.exports与exports是CommonJS的规范 export与export default是es6规范 require 是 AMD规范引入方式 import是es6的一个语法标准 module.exports与exports module变量代表当前模块。这个变量是一个对象,module对象会创建一个叫exports的属性...
2019-12-04 17:45:04 1233
原创 Java 浅拷贝、深拷贝,你知多少?
这是今天我们在技术群里面讨论的一个知识点,讨论的相当激烈,由于对这一块使用的比较少,所以对这一块多少有些盲区。这篇文章总结了所讨论的内容,希望这篇文章对你有所帮助。 在 Java 开发中,对象拷贝或者说对象克隆是常有的事,对象克隆最终都离不开直接赋值、浅拷贝、深拷贝 这三种方式,其中直接赋值应该是我们最常用的一种方式吧,对于浅拷贝和深拷贝可能用的少,所以或多或少存在一些误区,这篇文章...
2019-12-04 11:25:54 68
原创 默认的系统类加载器是与这个类的实现相关的一个实例
方法说明 返回用于委托的系统类加载器,它是新建ClassLoader实例的默认的委托双亲,通常也是启动应用的类加载器。 这个方法在运行启动期间很早的时候就被调用,在调用时首先会创建系统加载器,而且会将其设置为调用该线程的上下文类加载器。 默认的系统类加载器是与这个类的实现相关的一个实例。 如果系统属性java.system.class.loader被定义...
2019-12-03 21:04:58 147
原创 探索 Reflect.apply 与 Function.prototype.apply 的区别
众所周知, ES6 新增了一个全局、内建、不可构造的 Reflect 对象,并提供了其下一系列可被拦截的操作方法。其中一个便是 Reflect.apply() 了。下面探究下它与传统 ES5 的 Function.prototype.apply() 之间有什么异同。 函数签名 MDN 上两者的函数签名分别如下: Reflect.apply(target, this...
2019-12-03 11:02:08 926
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人