-
Java中那些让你傻傻分不清楚的小技巧
所属栏目:[语言] 日期:2021-07-13 热度:50
最近我们通过sonar静态代码检测,同时配合人工代码review,发现了项目中很多代码问题。除了常规的bug和安全漏洞之外,还有几处方法用法错误,引起了我极大的兴趣。我为什么会对这几个方法这么感兴趣呢?因为它们极具迷惑性,可能会让我们傻傻分不清楚。 1.[详细]
-
Overriding:哈哈,就不告诉你这 11 条规则
所属栏目:[语言] 日期:2021-07-13 热度:194
重写带来了一种非常重要的能力,可以让子类重新实现从父类那继承过来的方法。在下面这幅图中,Animal 是父类,Dog 是子类,Dog 重新实现了 move() 方法用来和父类进行区分,毕竟狗狗跑起来还是比较有特色的。 重写的方法和被重写的方法,不仅方法名相同,[详细]
-
利用C语言中的Setjmp和Longjmp,来完善异常捕获和协程
所属栏目:[语言] 日期:2021-07-12 热度:56
在 C 标准库中,有两个威力很猛的函数:setjmp 和 longjmp,不知道各位小伙伴在代码中是否使用过?我问了身体的几位同事,一部分人不认识这两个函数,有一部分人知道这个函数,但从来没有使用过。 从知识点范围来看,这两个函数的功能比较单纯,一个简单的[详细]
-
Java比C++慢?看了测试结果,推翻了我的认知,不得不说JIT真的强
所属栏目:[语言] 日期:2021-07-12 热度:122
编程语言根据其抽象级别进行分类。我们区分高级语言(Java,Python,JavaScript,C ++,Go),低级语言(汇编程序),最后是机器代码。 每个高级语言代码(例如Java)都需要转换为机器本地代码才能执行。该翻译过程可以是编译或解释。但是,还有第三种选择。试图[详细]
-
Python骚操作从列表推导和生成器表达式出发
所属栏目:[语言] 日期:2021-07-12 热度:176
列表推导 Python语言魅力在于简洁,这能从最常见的创建列表体现出来,比如我们想把字符串abc转换成新列表[a, b, c],常规写法: symbols=abc codes=[] forsymbolinsymbols: codes.append(symbol) print(codes)#[a,b,c] 用到了for循环和列表append方法。实[详细]
-
分析SpringFramework与IOC依赖查找
所属栏目:[语言] 日期:2021-07-12 热度:92
1. 谈谈SpringFramework / 说说你理解的SpringFramework SpringFramework 是一个开源的、松耦合的、分层的、可配置的一站式企业级 Java 开发框架,它的核心是 IOC 与 AOP ,它可以更容易的构建出企业级 Java 应用,并且它可以根据应用开发的组件需要,整合[详细]
-
Python爬虫定时计划任务的几种常见技巧
所属栏目:[语言] 日期:2021-07-12 热度:133
1.方法一、while True 首先最容易的是while true死循环挂起,不废话,直接上代码: importos importtime importsys fromdatetimeimportdatetime,timedelta defOne_Plan(): #设置启动周期 Second_update_time=24*60*60 #当前时间 now_Time=datetime.now() #[详细]
-
Python中的函数分析:参数有冒号,声明后有- 箭头
所属栏目:[语言] 日期:2021-07-12 热度:91
我在查看python的fixture源码时发现 fixture的方法定义形式如下: deffixture( fixture_function:Optional[_FixtureFunction]=None, *, scope:Union[_Scope,Callable[[str,Config],_Scope]]=function, params:Optional[Iterable[object]]=None, autouse:bo[详细]
-
怎样在Java Pojo转Jsoy时忽略掉一些属性
所属栏目:[语言] 日期:2021-07-12 热度:78
在Java开发中有时候某些敏感信息我们需要屏蔽掉,不能被消费这些数据的客户端知道。通常情况下我们会将其设置为null或者空字符,其实还有其它办法,如果你使用了Jackson的话。接下来我将以一个实际场景来告诉你可以怎么做。 2. Jackson 如何忽略字段 这里[详细]
-
带着10万字的笔记,C++优化系列来了!
所属栏目:[语言] 日期:2021-07-12 热度:94
不知不觉又到周一了,你是不是还在床上?看到这条推送的时候,如果你已起床,请在评论区扣1,让程序喵看看有多少人和我一样勤奋!最近C++技术交流群发现了很多水平很高的朋友,欢迎大家来加喵哥微信,进群一起讨论计算机知识! 近期我会推出一系列C++优化文章[详细]
-
花了两天,总算把 Python 的 Setup.py 给整明白了
所属栏目:[语言] 日期:2021-07-12 热度:154
1. 为什么需要对项目分发打包? 平常我们习惯了使用 pip 来安装一些第三方模块,这个安装过程之所以简单,是因为模块开发者为我们默默地为我们做了所有繁杂的工作,而这个过程就是 打包。 打包,就是将你的源代码进一步封装,并且将所有的项目部署工作都事[详细]
-
速度最迟钝的动态编程语言,你应该用过
所属栏目:[语言] 日期:2021-07-12 热度:136
在电子学中,速度和性能转化为一个特定芯片可以拥有的晶体管数量。根据摩尔定律,这个数字每隔两年就会往上翻一番。这就是为什么你的手机比1990年代的房间大小的超级计算机快得多。 回到计算机科学,速度快的代码和速度快的电脑是有区别的。速度慢的程序和[详细]
-
为什么有些高级开发人员不感冒Python
所属栏目:[语言] 日期:2021-07-12 热度:93
遵循此答案,我决定汇总使高级开发人员避开动态键入语言的主要原因,并在此处列出这些理由以消除误解。 为了更好地解决此问题,由于Python的迅猛发展,我们将以Python作为动态类型语言的示例。 动态类型 在这种情况下键入与击键无关。这个词是从数据类型派[详细]
-
利用反射获取指针指向的元素类型的处理方式极为安全
所属栏目:[语言] 日期:2021-05-28 热度:122
Go语言程序中对指针获取反射对象时,可以通过 reflect.Elem() 方法获取这个指针指向的元素类型。这个获取过程被称为取元素,等效于对指针类型变量做了一个*操作,代码如下: package main import ( fmt reflect ) func main() { // 声明一个空结构体 type c[详细]
-
清除编译文件需要用到的语言
所属栏目:[语言] 日期:2021-05-28 热度:191
Go语言中go clean命令可以移除当前源码包和关联源码包里面编译生成的文件,这些文件包括以下几种: 执行go build命令时在当前目录下生成的与包名或者 Go 源码文件同名的可执行文件。在 Windows 下,则是与包名或者 Go 源码文件同名且带有.exe后缀的文件。[详细]
-
Go语言内嵌结构体成员名字歧义的解决办法
所属栏目:[语言] 日期:2021-05-28 热度:189
嵌入结构体内部可能拥有相同的成员名,成员重名时会发生什么?下面通过例子来讲解。 package main import ( fmt ) type A struct { a int } type B struct { a int } type C struct { A B } func main() { c := C{} c.A.a = 1 fmt.Println(c) } 代码说明如[详细]
-
Go语言宕机恢复我有小妙招
所属栏目:[语言] 日期:2021-05-27 热度:162
Recover 是一个Go语言的内建函数,可以让进入宕机流程中的 goroutine 恢复过来,recover 仅在延迟函数 defer 中有效,在正常的执行过程中,调用 recover 会返回 nil 并且没有其他任何效果,如果当前的 goroutine 陷入恐慌,调用 recover 可以捕获到 panic[详细]
-
typedef 和 #define 的差异
所属栏目:[语言] 日期:2021-05-27 热度:161
typedef 在表现上有时候类似于 #define,但它和宏替换之间存在一个关键性的区别。正确思考这个问题的方法就是把 typedef 看成一种彻底的封装类型,声明之后不能再往里面增加别的东西。 1) 可以使用其他类型说明符对宏类型名进行扩展,但对 typedef 所定义的[详细]
-
Go语言处理运行时需要避免的问题
所属栏目:[语言] 日期:2021-05-27 热度:155
net.Dial() 是Go语言系统包 net 即中的一个函数,一般用于创建一个 Socket 连接。 net.Dial 拥有两个返回值,即 Conn 和 error,这个函数是阻塞的,因此在 Socket 操作后,会返回 Conn 连接对象和 error,如果发生错误,error 会告知错误的类型,Conn 会返[详细]
-
延迟执行语句处理方式及资源的使用
所属栏目:[语言] 日期:2021-05-27 热度:180
多个延迟执行语句的处理顺序当有多个 defer 行为被注册时,它们会以逆序执行(类似栈,即后进先出),下面的代码是将一系列的数值打印语句按顺序延迟处理,如下所示: package main import ( fmt ) func main() { fmt.Println(defer begin) // 将defer放入[详细]
-
stdio.h 和 stdlib.h 是最常用的两个实例
所属栏目:[语言] 日期:2021-05-27 热度:110
还有最后一个问题,示例中第1行的#include stdio.h是什么意思呢? C语言开发者们编写了很多常用函数,并分门别类的放在了不同的文件,这些文件就称为头文件(header file)。每个头文件中都包含了若干个功能类似的函数,调用某个函数时,要引入对应的头文件[详细]
-
Go语言可变参数类型简单易懂
所属栏目:[语言] 日期:2021-05-27 热度:182
在C语言时代大家一般都用过 printf() 函数,从那个时候开始其实已经在感受可变参数的魅力和价值,如同C语言中的 printf() 函数,Go语言标准库中的 fmt.Println() 等函数的实现也依赖于语言的可变参数功能。 本节我们将介绍可变参数的用法。合适地使用可变参[详细]
-
OpenCV库的一般使用方式
所属栏目:[语言] 日期:2021-05-27 热度:163
为了用 C++ 开发一个 OpenCV 应用,需要在代码中: 包含 OpenCV 的头文件定义; 链接 OpenCV 库(二进制文件),以获取最终的可执行文件; OpenCV 头文件位于OPENCV_BUILDinstallincludeopencv2目录中,此处对于每个模块都有一个文件(*.hpp)。用 #incl[详细]
-
场景信息可以协助计算机视觉
所属栏目:[语言] 日期:2021-05-27 热度:160
考虑这样一个例子,一个移动机器人需要在一栋建筑中找到并且拿起一个订书机。机器人就可能用到这样的事实:桌子通常放在办公室里,而订书机通常收纳在桌子里。这也同样给出了一个关于尺寸的推断:订书机的大小一定可以被桌子所收纳。 更进一步,这还可以帮[详细]
-
C语言提供了很多功能:函数的概念
所属栏目:[语言] 日期:2021-05-27 热度:118
先来看第 4 行代码,这行代码会在显示器上输出C语言中文网。前面我们已经讲过,puts 后面要带( ),字符串也要放在( )中。 在C语言中,有的语句使用时不能带括号,有的语句必须带括号。带括号的称为函数(Function)。 C语言提供了很多功能,例如输入输出、[详细]
