这里,我将在平时工作过程中总结的内存溢出的情况,以代码案例的形式直观的分享给大家,希望能够为小伙伴们带来实质性的帮助。
多线程并发执行时有很多同学捋不清楚调度的随机性会导致哪些问题,要知道如果访问临界资源不加锁会导致一些突发情况发生甚至死锁。
前一段时间,小灰发布了上下两篇关于股票买卖的算法题讲解,激发了很多小伙伴的兴趣。 这一次,小灰把这两篇漫画整合在一起,并且修改了其中的一些细节错误。
叮。。。。。美团来电。这次不是外卖而是电话面试。所报岗位为后端/服务端开发,但是从我的复盘来看,这和 Java 后端开发的内容差不多,除了部分的语言特性外,还是四大件基础知识为重,下面我们来看看都问了啥,小心下次面你的时候就有这些问题哦~
函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的语句封装,且不想通过函数方式封装来降低额外的弹栈压栈开销。
大家都知道okhttp是一款由square公司开源的java版本http客户端工具。实际上,square公司还开源了基于okhttp进一步封装的retrofit工具,用来支持通过接口的方式发起http请求。如果还在直接使用RestTemplate或者okhttp,或者基于它们封装的HttpUtils,那么可以尝试使用Retrofit。
函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的语句封装,且不想通过函数方式封装来降低额外的弹栈压栈开销。
宏的使用,大家经常会用,但是一般只是简单定义一个符号常量,类似于 #define WHEEL_SCALE_MM 0.53f、 #define LOG_I(tag, text_fmt, ...) log_i(tag, text_fmt, ##__VA_ARGS__) ,但是除此之外还有宏还有个##粘贴作用,可以配合#define这个常量表达式,可以做成一个宏定义指针函数列表,继而查询执行函数。话不多说,我们开始今天的分享,首先还是会进行一下常规的描述,再分享"##"粘贴的妙用。
在Linux下的开发中,printf打印调试信息默认输出到标准输出 stdout (即屏幕/终端)中。我们也可以使用输出重定向技术输出到指定文件中,输出重定向即是把原本要输出到屏幕的信息写入到指定文件中。
之前从应用的角度给大家分享过Bootloader相关的文章,今天从底层原理来给大家描述ARM处理器如何编写Bootloader。
在我们日常编码中会发现有些功能代码,会不断的在不同的成员函数中用到,但是又不好将这些代码独立成一个成员函数。解决办法之一就是写一个公共的函数,不过函数用到的一些变量,就可能会成为全局变量。再说为了复用这么一段代码,就要单立出一个函数,也不是很好维护。此时就可以用到仿函数了。
小林写这么多篇图解文章,你们猜我收到的最多的读者问题是什么?没错,就是问我是使用什么画图工具,看来对这一点大家都相当好奇,那干脆不如写一篇介绍下我是怎么画图的。
上篇分享了事件驱动型的菜单框架,也实现了一个基本的小项目。但是怎么看怎么都觉得界面不爽,单纯显示文字的方式实在是太单调了,如果想要显示颜色丰富的图片,MCU资源受限又很难直接在程序中直接定义图片大数组。于是,这次选择在SD卡中放图片,通过Fatfs去读取SD卡中的图片来进行显示……
程序代码是主观性很强的东西,同样的一个功能,每一个程序员所写出来的代码都不一样,所以那句名言“一千个读者就有一千个哈姆雷特”在代码上同样使用。同时,代码又是只可意会却很难言传的东西。硬件原理,看的多了即使外行人也能指点一下,但是代码只有编写的人才清楚。这也使得很多人认为代码很神秘。
很多的小伙伴经常会有这样的困惑,我看了很多技术的学习文档、书籍、甚至视频,我想动手实践,于是我打开了GitHub,想找个开源项目,进行学习,获取项目实战经验。这个时候很多小伙伴就会面临这样的问题:“我不会搜啊,我该怎么找呀?”,最终只能放弃。相信看完这篇文章,你就可以学会如何精准地在GitHub搜索项目。
前几天我在世伟兄的开源群上分享了这个框架,有群友希望我用这个框架写一个小项目,于是我就突发奇思妙想,在1-2天内设计规划了这个一个课题:基于小熊派简易气体探测仪。
本文向读者介绍了如何避免内存泄漏的方法和原则,在细节和大体方向上均给出一些可行性方案。读者可以尝试文中提出的方法,改进自己的代码,大大减少内存泄漏的可能性。
最近在开发的过程当中,对于已有的代码,想将相关类绘制成UML类图,虽然现在有很多UML类图的优秀软件,其实看到这里我就想IDEA中有没有像PlantUML一样的自动生成的插件,本着怀疑的态度百度了一下,果然IDEA还是很强大的,这个插件都是自带的,接下稍微讲述如何利用IDEA生成UML类图的教程。
大多数时候我都是写一些业务代码,可能一堆 CRUD 就能解决问题,但这样的工作对技术人的提升并不多,如何让自己从业务中解脱出来找到写代码的乐趣呢,我做过一些尝试,使用设计模式改善自己的业务代码就是其中的一种。
很多初学者都不知道这个“do{...} while(0U)”作用和意义,甚至觉得这样写的代码复杂且没意义。相信使用过STM32Cube HAL库的朋友都知道,源码里面有许多do{...} while(0U)的宏定义语句。今天讲的主要知识点是:HAL库中do{...} while(0U)作用和意义。