自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (1)
  • 收藏
  • 关注

原创 java的集合框架

2020-03-28 17:55:11 126

原创 dubbo内核spi机制

Dubbo的内核SPI机制静态扩展点 包装类Wrapeer 扩展点Set注入自适应扩展点Adaptive激活扩展点active

2020-03-08 12:54:42 204

原创 MongoDB聚合和索引

MongoDB聚合框架是一个计算框架作用在一个或几个集合对集合中的数据进行一系列运算将这些数据转化为期望的形式Aggregation Pipeline Stages — MongoDB Manual1、MongoDB聚合操作原始数据db.orders.insertMany([{ zip:"000001", phone:"13101010101", name:"LiuBei", status:"created", shippingFee:10, orderLi.

2022-03-22 19:25:56 1763

原创 MongoDB的CRUD

Create 创建Insert Methods — MongoDB Manualdb.集合.insertOne(<JSON对象>) // 添加单个文档db.集合.insertMany([{<JSON对象1>},{<JSON对象2>}]) // 批量添加文档db.集合.insert() // 添加单个文档insertOne, 和 insertMany命令不支持 explain命令insert支持 explain命令insertOne

2022-03-22 19:19:01 1503

原创 Junit5&Junit4

参考资料https://www.cnblogs.com/zgq123456/p/12907757.htmlhttps://www.cnblogs.com/zgq123456/p/12907751.htmlhttps://zhuanlan.zhihu.com/p/111706639JunitPrefhttps://www.cnblogs.com/zgq123456/p/12907772.htmlJunit5目前Java领域内最为流行的单元测试框架 ------ JUnitJunit的最新版本J

2022-01-18 11:02:31 826

原创 spring-boot-starter自定义

Spring boot starter 组件有两种方式 @EnableXX 和 autoconfigure 通过spring的spi加载对于官方组件,是基于condition条件来决定对于类是否要自动装配,对于第三方组件,是采用spi机制来实现扩展命名规则官方命名规则 spring-boot-starter-xxx 参考 https://github.com/spring-projects/spring-boot/tree/main/spring-boot-project/spring-boot-s

2022-01-18 10:51:45 382

原创 spring boot test启动过程

加载Spring的上下文启动流程https://www.processon.com/embed/61cd2436e401fd7a538b36a7解析:@SpringBootTest标记了junit5的注解@ExtendWith(SpringExtension.class)SpringExtension实现了junit5的test的生命周期的钩子函数,如BeforeAllCallback,TestInstancePostProcessor,BeforeEachCallback在juni

2022-01-18 10:37:37 1904

原创 MySQL优化

文章目录使用须知特点1、CPU2、内存3、磁盘4个维度优化硬件优化配置参数优化linux层面对MySQL优化表设计及其他优化使用须知不要错误得把它当做一个文件存储,如图片、附件等放入MySQL中,容易导致表空间庞大,磁盘I/O的读写能性能很差不要把MySQL数据库当成一个计算器,在其中进行大量复杂的运算不要把它当成一个全文检索工具,单纯地把MySQL当成一个可以处理并发事务,保证数据一致性的数据库就可以了特点从CPU、内存、磁盘三个方面阐述1、CPUMySQL5.1版本之前的多核支持能力

2020-06-14 19:28:04 236

原创 MySQL安装

MySql安装5.7版本安装5.7版本安装

2020-06-06 22:32:45 175

原创 dubbo的负载均衡

LoadBalanceLoadBalance 中文意思为负载均衡,它的职责是将网络请求,或者其他形式的负载“均摊”到不同的机器上。避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况。通过负载均衡,可以让每台服务器获取到适合自己处理能力的负载。在为高负载服务器分流的同时,还可以避免资源浪费,一举两得。负载均衡可分为软件负载均衡和硬件负载均衡Dubbo 需要对服务消费者的调用请求进行分配,...

2020-03-29 17:01:57 318

原创 dubbo的集群容错

FailoverClusterInvoker.selectprotected Invoker<T> select(LoadBalance loadbalance, Invocation invocation, List<Invoker<T>> invokers, List<Invoker&...

2020-03-27 21:21:05 422

原创 dubbo服务消费过程(二)

消费端的可调用的Invoke初始化

2020-03-27 20:08:00 366

原创 dubbo服务消费过程(一)

如何实现服的消费生成远程服务的代理获取目标服务的url地址实现远程网络通信实现负载均衡实现集群容错Invoker服务引入消费端的代码解析是从下面这段代码开始的<dubbo:reference id="xxxService" interface="xxx.xxx.Service"/>注解的方式的初始化入口是ReferenceAnnotationBean...

2020-03-22 19:30:56 601

原创 dubbo服务注册流程

dubbo服务发布流程服务注册流程

2020-03-21 17:31:29 1975

原创 微服务-注册中心

ZookeeperNacosnacos1)Download source code from Githubgit clone https://github.com/alibaba/nacos.gitcd nacos/mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U ls -al distribution/targe...

2020-03-20 19:13:40 100

原创 Dubbo的服务发布过程

Dubbo架构整体设计首先看下官网说明:config 配置层:对外配置接口,以 ServiceConfig, ReferenceConfig 为中心,可以直接初始化配置类,也可以通过 spring 解析配置生成配置类proxy 服务代理层:服务接口透明代理,生成服务的客户端 Stub 和服务器端 Skeleton, 以 ServiceProxy 为中心,扩展接口为ProxyFactor...

2020-03-19 22:54:40 516

原创 spring的DefaultListableBeanFactory

DefaultListableBeanFactorypublic class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFactory implements ConfigurableListableBeanFactory, BeanDefinitionRegistry, Serializable { @Nul...

2020-03-13 20:26:47 496

原创 spring的AbstractAutowireCapableBeanFactory

AbstractAutowireCapableBeanFactory/* * AbstractBeanFactory 子类, 并实现AutowireCapableBeanFactory * 提供bean创建(构造函数创建),属性装配(population),织入 autowiring * wiring (including autowiring), and initializatio...

2020-03-13 19:00:53 857

原创 Spring的AbstractBeanFactory

AbstractBeanFactory /* * @see #getBeanDefinition * @see #createBean * @see AbstractAutowireCapableBeanFactory#createBean * @see DefaultListableBeanFactory#getBeanDefinition */public abstract c...

2020-03-12 19:32:03 291

原创 spring的BeanDefinition

BeanDefinition

2020-03-11 21:41:41 240

原创 Spring的BeanFactory

BeanFactoryBeanFactory 定义获取Bean以及Bean的各种属性,顶层接口``BeanFactory

2020-03-08 15:42:09 459

原创 Dubbo工程示例

spring-cloud-alibaba + dubbo+nacosnacos1)Download source code from Githubgit clone https://github.com/alibaba/nacos.gitcd nacos/mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U ls -al...

2020-03-01 22:29:34 196

原创 软件整理

window好用软件Wox,Everything 全盘搜索软件,资源低CCleaner 垃圾清理软件 清理缓存 注册表等NotePad 文本编辑 免费开源Quicklook 快速浏览文件支持多格式clover 类似浏览器的资源管理器Internet Download Manger 类似迅雷下载pot player 播放器Geet Uninstaller 卸载工具 清理注册表...

2020-02-29 18:37:17 174

原创 java并发-阻塞队列

2020-02-29 16:51:51 85

原创 java并发-容器和框架

JUC

2020-02-29 16:51:15 77

原创 java并发-线程池

ThreadPoolExecutor

2020-02-29 16:50:10 165

原创 java并发-并发工具类

CountDownLatchjava.util.concurrent.CountDownLatch 发令枪,允许一个或多个线程等待其他线程完成操作主线程需要等待所有的子线程执行完后进行汇总,join方法可以实现这一点,但是不够灵活。public class CountDownLatchTest { // 计数器 private static CountDownLatch count...

2020-02-29 11:07:33 99

原创 java并发-原子操作类

概述JUC中提供了13个原子操作类基本类型原子更新类java.util.concurrent.atomic.AtomicBoolean 布尔型原子类java.util.concurrent.atomic.AtomicInteger 整型原子类java.util.concurrent.atomic.AtomicLong 布尔型原子类数组类型原子更新类java.util.concurr...

2020-02-25 21:07:06 127

原创 java并发-缓存一致性

HappenBefore程序顺序规则 class VolatileDemo { int a = 0; volatile boolean flag = false; public void writer() { a = 1 ; // 1 flag true; // } public void reader() { if(flag) { // 3...

2020-02-24 20:14:18 215

原创 java并发-线程相关方法

线程通知与等待wait()/wait(long timeout)当一个线程调用一个共享变量的wait()方法时,该调用线程会被阻塞挂起,直到发生下面几件事情之一才返回:(1)其他线程调用了该共享对象的notify()或者notifyAll()方法;(2)其他线程调用了该线程的interrupt()方法,该线程抛出 InterruptedException异常返回。// 生产者线程syn...

2020-02-23 21:45:02 76

原创 java并发-线程生命周期

为是么需要线程并发的发展历史真空管和穿孔打卡最早的计算机只能解决简单的数学运算问题,比如正弦、余弦等。运行方式:程序员首先把程序写到纸上,然后穿孔成卡片,再把卡片盒带入到专门的输入室。输入室会有专门的操作员将卡片的程序输入到计算机上。计算机运行完当前的任务以后,把计算结果从打印机上进行输出,操作员再把打印出来的结果送入到输出室,程序员就可以从输出室取到结果。然后,操作员再继续从已经送入到...

2020-02-23 17:00:20 119

原创 Spring5新特性

Spring5新特性运行环境Spring 5.0正常运行时,需要以下环境:整个Spring框架的代码基于JDK 8开发。当读者选择升级Spring框架时,需要先确认已经安装了JDK 8及以上的JDK版本,否则Spring 5.0将不能正常运行。Spring 5.0通过使用泛型推断和lambda表达式等特性提高了代码的可阅读性。支持使用Java 8编程。支持JDK 9开发部署。整个S...

2020-02-16 19:43:40 744

原创 java-设计模式(一)

设计原则软件工程理论中的六大设计原则单一职责原则不存在多于一个的因素导致类的状态发生变更,即一个类只负责一项单一的职责。里氏替换原则基类出现的地方都可以用其子类进行替换,而不会引起任何不适应的问题。接口隔离原则客户端不应该依赖于其不需要的接口,类间的依赖关系应该建立在最小的接口之上。迪米特法则(最少知道原则)一个对象对其他对象有最少的了解。开闭原则软件设计对于扩展是开放的(...

2020-02-14 17:29:19 109

原创 架构师-Netty(六)

channelChannel是Netty抽象出来的网络操作抽象类JDK NIO原生的Channel缺点:JDK的SocketChannel和ServerSocketChannel没有统一的Channel接口JDK的SocketChannel和ServerSocketChannel的主要职责就是网络I/O操作,SPI接口,具体有虚拟接厂家提供,实现其抽象类,其工作量和重新开发一个新的Cha...

2020-02-07 12:07:40 202

原创 架构师-Netty(五)

Buffer和相关辅助类ByteBuffer常用的缓冲区JDK NIO 类库 java.nio.BufferJDK提供的ByteBuffer可以满足NIO编程,但有其局限性:ByteBuffer 长度固定,不能自动扩缩容,编程对象POJO大于ByteBuffer的容量时,或发生索引越界异常ByteBuffer只有一个标识位置的指针position,读写的时候需要手工调用flip()和...

2020-02-05 17:28:09 455

原创 架构师-Netty(三)

《Netty权威指南》TCP粘包/拆包TCP粘包/拆包发生原因:应用程序write写入的字节大小大于套接口发送的缓冲区大小;进行MSS大小的TCP分段以太网帧的payload大小MTU进行IP分片...

2020-02-02 19:56:01 314

原创 架构师-Netty(二)

NettyNetty 支持的功能与特性Netty 是一个异步、事件驱动的用来做高性能、高可靠性的网络应用框架。主要的优点有:框架设计优雅,底层模型随意切换适应不同的网络协议要求。提供很多标准的协议、安全、编码解码的支持。解决了很多 NIO 不易用的问题。社区更为活跃,在很多开源框架中使用,如 Dubbo、RocketMQ、Spark 等。上图体现的主要是 Netty 支持的功能...

2020-02-01 21:42:34 2176

原创 架构师-Netty(一)

IO概念阻塞(Block)和非阻塞(Non-Block)阻塞和非阻塞是进程在访问数据的时候,数据是否准备就绪的一种处理方式,当数据没有准备的时候。阻塞:往往需要等待缓冲区中的数据准备好过后才处理其他的事情,否则一直等待在那里。非阻塞:当我们的进程访问我们的数据缓冲区的时候,如果数据没有准备好则直接返回,不会等待。如果数据已经准备好,也直接返回。同步(Synchronization)和...

2020-02-01 12:40:40 323

原创 架构师-Redis(四)

数据一致性缓存使用场景针对读多写少的高并发场景,我们可以使用缓存来提升查询速度。当我们使用 Redis 作为缓存的时候,一般流程是这样的:1、如果数据在 Redis 存在,应用就可以直接从 Redis 拿到数据,不用访问数据库。2、如果 Redis 里面没有,先到数据库查询,然后写入到 Redis,再返回给应用。一致性问题的定义因为这些数据是很少修改的,所以在绝大部分的情况下可以...

2020-01-30 19:45:32 384

原创 架构师-Redis(三)

为什么需要 Redis 集群性能Redis 本身的 QPS 已经很高了,但是如果在一些并发量非常高的情况下,性能还是 会受到影响。这个时候我们希望有更多的 Redis 服务来完成工作扩展第二个是出于存储的考虑。因为 Redis 所有的数据都放在内存中,如果数据量大, 很容易受到硬件的限制。升级硬件收效和成本比太低,所以我们需要有一种横向扩展的方法可用性第三个是可用...

2020-01-30 16:18:10 2709

感知器算法

1. 感知器算法 感知器算法是通过训练模式的迭代和学习算法,产生线性可分的模式判别函数。感知器算法就是通过对训练模式样本集的“学习”得出判别函数的系数解。在本次实验中,我们主要是采用硬限幅函数进行分类。 感知器的训练算法如下: 设输入矢量 , 加权矢量 ,则神经元 的输出可通过下式来计算 (1) 这里对于训练结束我们判断的依据是实际输出值与理想预期值之间误差的均方值最小。定义 它的均方值记作 ,令 , 则可以推出 (2) 可证存在最佳的加权矢量 ,使 达到最小。解得 (3) 式(3)给出了求最佳加权矢量的方法,但是需要做大量的统计计算,并且需要解决高阶矩阵求逆的问题,这些都是非常困难的。于是我们给出一种递推求解的方法: 在给定初始权值后,以这种方法可以得到递推公式: (4) 用这种方法虽然可以保证求得严格的最佳解,且避开了矩阵求逆的困难,但学习过程中的每一步仍需完成大量的统计计算。 2.BP算法 由于硬限幅函数是非可微函数,不能实现多层神经网络的一种有效的LMS学习算法。而BP算法中所用到的是Sigmoid型函数,它既具有完成分类所需的非线性特性,又具有实现LMS算法所需的可微特性。采用S型函数的神经元的输入和输出之间的关系为: (5) 采用了S型函数就可将用于单神经元的LMS学习算法适当推广,得到一种适用于前向多层神经网络的有效学习算法。 我们现在研究一个采用S型函数的前向三层神经网络来说明其原理。 对于训练样本p,它的输入是N维矢量X,X= ,网络的第一,二,三层分别包括J,K,M个神经元,它的总输出是一个M维矢量,Y= ,第i层到第i+1层之间的权重系数用 来表示。可设前向三层神经网络输出各个分量的理想值是 ,i=0,1,……M-1,而这些分量的实际值是 , i=0,1,……M-1,理想值和实际值之间的误差是 。各输出误差的平方和可以表示为: (6) 现在我们希望改变网络中的各个加权系数 ,使得 尽可能的减小。为此我们可以采取最陡下降算法的公式来调整权重系数 。公式如下: 式中的 是学习的步幅,它应随学习过程而变化。 对于通用神经层,它的各个输出 与各个输入 之间的关系可以表示为: 如果设 ,则 式中的 表示s型函数。我们不难看出上式即为给输入加一个恒等于1的部分,在神经网络中也应相应的加一个节点,而且这个节点的权系数就是这一层网络的阈值。经推倒可得权系数调整的递推公式如下: (7) 对输出层: 对隐含层: 现对于三层神经网络有 l=3时(输出层) l=2时(隐含层) l=1时(第一层) 其中: 可见,这一算法的计算过程是先计算第三层(即输出层)的各项“误差分量” ,然 后用 计算第二层(隐含层)的“等效误差分量” ,最后再用 计算第一层(隐含层)的“等效误差分量”

2012-05-21

空空如也

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

TA关注的人

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