Wesley13 Wesley13
3年前
STM32学习笔记:基于HAL库的USART串口通信配置
版本:STM32F429Hal库v1.10串口通信能够实现两块电路之间不同的通信,在开发中作为打印调试也是一门利器(printf重定向)。补充一点小知识:1.weak修饰符修饰的函数,说明这个函数如果在其他地方还有定义的话,则编译时使用其他地方定义的同名函数2.UNUSED(voidx);这个函数是防止编译器出现未使用警告。
2021年度最全面JVM虚拟机,类加载过程与类加载器
前言类装载器子系统是JVM中非常重要的部分,是学习JVM绕不开的一关。一般来说,Java类的虚拟机使用Java方式如下:Java源程序(.java文件)在经过Java编译器编译之后就被转换成Java字节代码(.class文件)。类加载器负责读取Java字节代码,并转换成java.lang.Class类的一个实例。每个这样的实例用来表
Irene181 Irene181
4年前
手把手教你使用Python打造绚丽的词云图
前言大家好,我是黄伟。词云,相信大家对这个概念比较陌生,它其实就是指的是对某一段文本中出现频率最高的关键词进行特殊描绘,过滤到太多没用的字眼,以此达到视觉上的突出,让人一看就知道这篇文章讲的什么。一、词云的运用设计到的模块:wordcloud编辑器:sublimetext3编译器:Python3.61.下载安装wordcloud模块pipins
cpp加油站 cpp加油站
4年前
【deque容器系列一】基于STL源码分析deque容器整体实现及内存结构
本篇文章基于gcc中stl的源码介绍deque容器的整体实现和它的内存结构。说明一下,我用的是gcc7.1.0编译器,标准库源代码也是这个版本的。首先呢,还是看一下思维导图,如下:1.deque容器整体源码实现介绍deque容器是stl中顺序容器的一种,之前已经介绍过array和vector了,今天介绍deque容器,deque的本质是一个类模板,它的
Easter79 Easter79
3年前
Spring中的AOP(三)——基于Annotation的配置方式(一)
    AspectJ允许使用注解用于定义切面、切入点和增强处理,而Spring框架则可以识别并根据这些注解来生成AOP代理。Spring只是使用了和AspectJ5一样的注解,但并没有使用AspectJ的编译器或者织入器,底层依然使用SpringAOP来实现,依然是在运行时动态生成AOP代理,因此不需要增加额外的编译,也不需要AspectJ的织入器支持。
Stella981 Stella981
3年前
Debug与Release版本的区别
Debug和Release并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动。如果我们愿意,我们完全可以把Debug和Release的行为完全颠倒过来。当然也可以提供其他的模式,例如自己定义一组编译选项,然后命名为MY\_ABC等。习惯上,我们仍然更愿意使用VC已经定义好的名称。Debug版本包括调试信
Stella981 Stella981
3年前
JVM(Java SE 11版本)加载类和接口
本文介绍了Java虚拟机(JavaSE11版本)加载类和接口。加载类和接口加载是指查找具有特定名称的类或接口类型的二进制形式的过程。典型的做法是,查找事先由Java编译器从源代码计算而来二进制表示,但也可能是通过动态计算。二进制形式最终会构造成一个Class对象。加载的精确语义在JavaJavaMachineSpecif
Stella981 Stella981
3年前
Scala基础
1\.介绍柯里化(currying,以逻辑学家HaskellBrooksCurry的名字命名)指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数作为参数的函数。在Scala中方法和函数有细微的差别,通常编译器会自动完成方法到函数的转换。如果想了解Scala方法和函数的具体区别,请参考博文S
GoCoding GoCoding
3年前
TVM 加速模型,优化推断
TVM是一个开源深度学习编译器,可适用于各类CPUs,GPUs及其他专用加速器。它的目标是使得我们能够在任何硬件上优化和运行自己的模型。不同于深度学习框架关注模型生产力,TVM更关注模型在硬件上的性能和效率。本文只简单介绍TVM的编译流程,及如何自动调优自己的模型。更深入了解,可见TVM官方内容:文档:https://tvm.apach
幂简集成 幂简集成
10个月前
聊天机器人API:实现智能对话的技术选择
聊天机器人的关键在于其能力理解和模拟人类语言交互。流行的API接口、开放的框架、提供NLP(自然语言处理)服务的平台 是实现这一功能的关键。