学习笔记

java之反射机制

空口说反射,很难理解这是个什么东西,举个例子就明了了。 假设现在我们有一张动漫的图片,我们通过这张图片,在大脑中搜索有关记忆,就清楚这张图片是什么动漫里的谁;假设我们现在有一个名字,在大脑中搜索有关记忆,就自然而然地想到了该名字人物的具体形象,这种思维过程就是反射。 假设一个类已经加载进JVM,那么,给定该类名,我们就可以通过反射来获取该类的相应信息。 具体定义:反射是被视为动态语言的关键,反射机制允许程序在执行期借助反射API取得任何类的内部信息,并能直接操作在任何对象的内部属性和方法。 ...

Nginx热升级流程,看这篇就够了

在之前做过 Nginx 热升级的演示,他能保证nginx在不停止服务的情况下更换他的 binary 文件,这个功能非常有用,但我们在执行 Nginx 的 binary 文件升级过程中,还是会遇到很多问题,比如老的 worker 进程一直退不掉或者新的 worker 进程升级以后出现问题需要考虑回滚,或者升级新的 Nginx 文件以后会发现预期的功能或者指向的配置文件出现了错误,下面我们来看下看热升级的流程是怎样进行的? Nginx热升级流程 第一步就是把旧的 Nginx 替换为新的 Nginx 文件(binary文件),之所以说只替换 binary 文件是因为大部分场景下,我们新编译的 nginx 文件所指定的相应的配置选项,比如说配置文件的目录在哪里?log 的所在目录在哪里?必须保持和老的 Nginx 是一致的,否则的话没有办法复用 nginx.conf 文件,如果我们仅仅替换 binary 文件,请注意要备份,另外在新版本的 Linux 中,会要求在覆盖一个正在使用的文件时需要用 cp -f 才能够替换。 ...

用机器学习打造聊天机器人(六) 原理篇

本文是用机器学习打造聊天机器人系列的第六篇,主要介绍代码中用到的相关算法的原理。了解算法原理,可以让我们知道程序背后都做了些什么,为什么有时候会出现错误以及什么场景下选择哪种算法会更合适。 word2vec 我们使用的词向量模型就是基于word2vec训练的,word2vec 是 Google 在 2013 年推出的一个 NLP 工具,它的特点 是将所有的词向量化,这样词与词之间就可以定量的去度量他们之间 的关系,挖掘词之间的联系。 word2vec 基于分布式表征(Dristributed Representation)的 思想,相比于 One hot 可以用更低维数的向量表示词汇。 有一个有趣的研究表明,用词向量表示我们的词时,我们可以发 现:King - Man + Woman = Queen。 ...

[从今天开始修炼数据结构]无环图的应用 —— 拓扑排序和关键路径算法

上一篇文章我们学习了最短路径的两个算法。它们是有环图的应用。下面我们来谈谈无环图的应用。   一、拓扑排序     博主大学学的是土木工程,在老本行,施工时很关键的节约人力时间成本的一项就是流水施工,钢筋没绑完,浇筑水泥的那帮兄弟就得在那等着,所以安排好流水施工,让工作周期能很好地衔接就很关键。这样的工程活动,抽象成图的话是无环的有向图。     在表示工程的有向图中,用顶点表示活动,弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,成为AOV网(Active On Vertex Network) ...

发布一个基于协程和事件循环的c++网络库

目录 介绍 使用 性能 实现 日志库 协程 协程调度 定时器 Hook RPC实现 项目地址:https://github.com/gatsbyd/melon 介绍 开发服务端程序的一个基本任务是处理并发连接,现在服务端网络编程处理并发连接主要有两种方式: 当“线程”很廉价时,一台机器上可以创建远高于CPU数目的“线程”。这时一个线程只处理一个TCP连接,通常使用阻塞IO。例如Go goroutine。这里的“线程”由语言的runtime自行调度。 当线程很宝贵时,一台机器上只能创建与CPU数目相当的线程。这时一个线程要处理多个TCP连接上的IO,通常使用非阻塞IO和IO multiplexing。C++编程主要采用这种方式。 ...

如何用Pact进行微服务集成测试

原文链接 https://codefresh.io/docker-tutorial/how-to-test-microservice-integration-with-pact/ 挑战:微服务集成测试 迁移到微服务对测试我们的系统产生了新的挑战。理论上每个微服务都应该是隔离的并可以独立操作。但在实践中一个服务如果没有其他部分通常没什么用。另一方面 - 为一个服务拉起整个系统的拓扑进行测试抵消了微服务期望带来的模块化和封装。 挑战在于如何检验与其他服务集成后没有问题。我们希望越早越好。而且我们不想将复杂的生产环境重现一遍。一般来说这种检验是集成功能测试或叫端到端测试。但实际是当我们的系统越来越复杂 - 端到端带来的收益越少。 大量的相互依赖导致误报和很长的执行周期。 使得测试变得很难管理与调试。 ...

从实习到转正,2019我的技术踩坑之路!

2019年可以说是对我来说是特别重要的一年。正式结束了自己的学生时代,从事了一个自己不讨厌的职业,遇到了一群优秀的人,一切都还算挺好吧。 从2018年7月份开始实习,至今已经过了18个月,这也意味着北漂已经刚好一年半。一路走来,踩过很多坑,犯过很多错误,与此同时对于我个人来说也有了很大的提升和改变。所以本次借着年终总结的机会,谈一谈从实习到现在自己关于学习,工作以及自我认知的一些体会,顺便讲一讲我的狗血实习经历。 一,狗血的实习# 第一次实习在一家小型创业公司,做的是互联网金融,实习四个月就倒闭了,这可能是我犯的第一个错误。大三暑假刚开始,就一个人来到了北京,身上也没有什么钱,靠着父母的救济租了一间1500块钱一个月的房子,然后开始了自己的北漂,刚开始一切都还好(从此喜欢上了做饭)。 ...

2019 我是怎么熬过来的?

 岁月你别催,该来的我不推;岁月你别催,走远的仍要追,这是《天下足球》里面的一则年度佳句,我觉得用到软件行业再合适不过了。...

So Easy - 在Linux服务器上部署 .NET Core App

 .NET Core 是微软提供的免费、跨平台和开源的开发框架,可以构建桌面应用程序、移动端应用程序、网络应用程序、物联网应用程序和游戏应用程序等。如果你是 Windows 平台下的 dotnet 开发人员的话,使用 .NET core 可以很轻松就设置好任何 Linux 和类 Unix 操作系统下的开发环境。本文将会逐步带着大家在Linux上部署.NET Core应用程序。 一.环境准备# 服务器:阿里云64位CentOS 7.4.1708版本; 客户端:Windows 10; SFTP客户端:FileZilla;用来进行文件传输; ...
青岛软件培训

可能你正在寻找一家靠谱的IT培训机构,学习一些专业的软件开发技术,找一份得体的工作。恰巧我们就是一家踏踏实实做教育的IT人才培养机构,我们咨询电话是 0532-85025005,如果你确实对IT感兴趣,我们不妨交流一下。

申请免费试听课程