-
带着10万字的笔记,C++优化系列来了!
所属栏目:[语言] 日期:2021-07-12 热度:171
不知不觉又到周一了,你是不是还在床上?看到这条推送的时候,如果你已起床,请在评论区扣1,让程序喵看看有多少人和我一样勤奋!最近C++技术交流群发现了很多水平很高的朋友,欢迎大家来加喵哥微信,进群一起讨论计算机知识! 近期我会推出一系列C++优化文章[详细]
-
为什么有些高级开发人员不感冒Python
所属栏目:[语言] 日期:2021-07-12 热度:117
遵循此答案,我决定汇总使高级开发人员避开动态键入语言的主要原因,并在此处列出这些理由以消除误解。 为了更好地解决此问题,由于Python的迅猛发展,我们将以Python作为动态类型语言的示例。 动态类型 在这种情况下键入与击键无关。这个词是从数据类型派[详细]
-
即使技术强大,面试时一问这个必挂!!
所属栏目:[语言] 日期:2021-07-12 热度:139
本文我们一起讨论Java类的加载、链接和初始化。Java字节代码的表现形式是字节数组(byte[]),而Java类在JVM中的表现形式是 java.lang.Class类 的对象。一个Java类从字节代码到能够在JVM中被使用,需要经过加载、链接和初始化这三个步骤。这三个步骤中,对开[详细]
-
分析C# ObservableCollection和List
所属栏目:[语言] 日期:2021-07-12 热度:161
一、ObservableCollection和List的区别 1)ObservableCollection比较简单,继承了Collection, INotifyCollectionChanged, INotifyPropertyChanged Collection:为泛型集合提供基类。 INotifyCollectionChanged:将集合的动态更改通知给侦听器,例如,何时添[详细]
-
分析Python技术:如何在Python应用程序中实现缓存
所属栏目:[语言] 日期:2021-07-12 热度:55
为什么我们需要实现缓存? 要理解缓存是什么以及为什么需要缓存,请考虑下面的场景。 我们正在用Python构建一个应用程序,它将向最终用户显示产品列表。这个应用程序每天会被超过100个用户多次访问。应用程序将托管在应用程序服务器上,并且可以在internet[详细]
-
TIOBE 2月榜单:R、Go和Swift等谁能保持前十?
所属栏目:[语言] 日期:2021-07-12 热度:119
有人说,IT 行业在不断变化,每天都会有新的 IT 流行语在某个地方冒出来。然而与之相反,在过去的 7 年里,TIOBE 指数的前 8 名似乎都没有变化。但这并不意味着编程语言界在过去的几年里就没有变化。除了 C 语言,前 8 名的编程语言都在频繁发布新版本。比[详细]
-
如何在 C# 8 中使用默认接口技巧
所属栏目:[语言] 日期:2021-07-12 热度:88
C# 8 中新增了一个非常有趣的特性,叫做 默认接口方法 (又称虚拟扩展方法),这篇文章将会讨论 C# 8 中的默认接口方法以及如何使用。 在 C# 8 之前,接口不能包含方法定义,只能在接口中定义方法签名,还有一个就是接口的成员默认是 public 和 abstract ,[详细]
-
Java基础小白篇——面向对象和类的定义
所属栏目:[语言] 日期:2021-07-12 热度:100
1.面向对象是在程序中使用对象来映射现实中的事物,对象的关系来描述事物之间的联系。 2.面向对象的特点: 封装性:封装是将类的某些信息隐藏在类内部,不让外部程序去访问,需要通过这个类提供的方法来实现对隐藏信息的操作和访问。封装也是面向对象的核[详细]
-
写给新手看的线程池,学会了吗?
所属栏目:[语言] 日期:2021-07-12 热度:60
这种思路是没问题的,但是这段代码是存在问题的,有哪些问题呢?下面我们就来看看有哪些问题; 创建销毁线程资源消耗;我们使用线程的目的本是出于效率考虑,可以为了创建这些线程却消耗了额外的时间,资源,对于线程的销毁同样需要系统资源。 cpu资源有限,[详细]
-
分析很重要的7个Python库
所属栏目:[语言] 日期:2021-07-12 热度:111
NumPy是Numerical Python的简写,是Python数值计算的基石。它提供多种数据结构、算法以及大部分涉及Python数值计算所需的接口。NumPy还包括其他内容: 快速、高效的多维数组对象ndarray 基于元素的数组计算或数组间数学操作函数 用于读写硬盘中基于数组的[详细]
-
2021年十大很有出息的编程语言
所属栏目:[语言] 日期:2021-07-12 热度:163
就像计算机硬件变得越来越出色一样,编程语言也是如此。 目前,我们看到许多新的编程语言正在崛起。截至2020年,根据最新的web开发统计,大约有700种编程语言可供选择。其中一些语言仅适用于特定的领域,而其他语言则因能够在广泛的应用程序中工作而被广泛[详细]
-
最新版JDK15的JVM类加载器分析
所属栏目:[语言] 日期:2021-07-12 热度:86
需要注意的是,Bootstrap ClassLoader智慧加载特定名称的类库,比如rt.jar.这意味我们自定义的jar扔到jrelib也不会被加载. 负责将/jre/lib或- Xbootclasspath参数指定的路径中的,且是虚拟机识别的类库加载到内存中(按照名字识别,比如rt.jar,对于不能识别[详细]
-
承诺我,别再用Print调试Python了!
所属栏目:[语言] 日期:2021-07-12 热度:87
举个例子,运行下面这个程序。 num1=30 num2=40 print(num1) print(num2) 输出结果。 30 40 这些输出中哪一个是num1?哪一个又是num2呢? 找出两个输出可能不是很困难,但是如果有五个以上的不同输出呢?尝试查找与输出相关的代码可能会很耗时。 当然你可[详细]
-
Java的“泛型”特性,你以为自己掌握了?
所属栏目:[语言] 日期:2021-07-12 热度:157
在了解一个事物之前,我们必定要先知道他的定义,所以我们就从定义开始,去一步一步揭开泛型的神秘面纱。 # 泛型(generics) 他是 JDK5 中引入的一个新特性,泛型提供了编译时类型安全监测机制,该机制允许我们在编译时检测到非法的类型数据结构。泛型的本[详细]
-
用Python自动化管理邮件简直太简单了
所属栏目:[语言] 日期:2021-07-12 热度:173
在之前的文章中我们已经了解如何对自己的邮箱做一些代码操作前的基础配置,以及通过 Python 代码收发、读取邮件。本文将简单复习之前的部分重点内容,并通过 3 个小案例进一步分享一个实用技巧:将邮件写入 Excel 中 之前的文章中我们也提到,基础配置需要[详细]
-
Go语言内嵌结构体成员名字歧义的解决办法
所属栏目:[语言] 日期:2021-05-28 热度:167
嵌入结构体内部可能拥有相同的成员名,成员重名时会发生什么?下面通过例子来讲解。 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) } 代码说明如[详细]
-
清除编译文件需要用到的语言
所属栏目:[语言] 日期:2021-05-28 热度:95
Go语言中go clean命令可以移除当前源码包和关联源码包里面编译生成的文件,这些文件包括以下几种: 执行go build命令时在当前目录下生成的与包名或者 Go 源码文件同名的可执行文件。在 Windows 下,则是与包名或者 Go 源码文件同名且带有.exe后缀的文件。[详细]
-
利用反射获取指针指向的元素类型的处理方式极为安全
所属栏目:[语言] 日期:2021-05-28 热度:85
Go语言程序中对指针获取反射对象时,可以通过 reflect.Elem() 方法获取这个指针指向的元素类型。这个获取过程被称为取元素,等效于对指针类型变量做了一个*操作,代码如下: package main import ( fmt reflect ) func main() { // 声明一个空结构体 type c[详细]
-
Go语言宕机恢复我有小妙招
所属栏目:[语言] 日期:2021-05-27 热度:79
Recover 是一个Go语言的内建函数,可以让进入宕机流程中的 goroutine 恢复过来,recover 仅在延迟函数 defer 中有效,在正常的执行过程中,调用 recover 会返回 nil 并且没有其他任何效果,如果当前的 goroutine 陷入恐慌,调用 recover 可以捕获到 panic[详细]
-
延迟执行语句处理方式及资源的使用
所属栏目:[语言] 日期:2021-05-27 热度:69
多个延迟执行语句的处理顺序当有多个 defer 行为被注册时,它们会以逆序执行(类似栈,即后进先出),下面的代码是将一系列的数值打印语句按顺序延迟处理,如下所示: package main import ( fmt ) func main() { fmt.Println(defer begin) // 将defer放入[详细]
-
Go语言处理运行时需要避免的问题
所属栏目:[语言] 日期:2021-05-27 热度:184
net.Dial() 是Go语言系统包 net 即中的一个函数,一般用于创建一个 Socket 连接。 net.Dial 拥有两个返回值,即 Conn 和 error,这个函数是阻塞的,因此在 Socket 操作后,会返回 Conn 连接对象和 error,如果发生错误,error 会告知错误的类型,Conn 会返[详细]
-
Go语言可变参数类型简单易懂
所属栏目:[语言] 日期:2021-05-27 热度:126
在C语言时代大家一般都用过 printf() 函数,从那个时候开始其实已经在感受可变参数的魅力和价值,如同C语言中的 printf() 函数,Go语言标准库中的 fmt.Println() 等函数的实现也依赖于语言的可变参数功能。 本节我们将介绍可变参数的用法。合适地使用可变参[详细]
-
C语言提供了很多功能:函数的概念
所属栏目:[语言] 日期:2021-05-27 热度:58
先来看第 4 行代码,这行代码会在显示器上输出C语言中文网。前面我们已经讲过,puts 后面要带( ),字符串也要放在( )中。 在C语言中,有的语句使用时不能带括号,有的语句必须带括号。带括号的称为函数(Function)。 C语言提供了很多功能,例如输入输出、[详细]
-
场景信息可以协助计算机视觉
所属栏目:[语言] 日期:2021-05-27 热度:123
考虑这样一个例子,一个移动机器人需要在一栋建筑中找到并且拿起一个订书机。机器人就可能用到这样的事实:桌子通常放在办公室里,而订书机通常收纳在桌子里。这也同样给出了一个关于尺寸的推断:订书机的大小一定可以被桌子所收纳。 更进一步,这还可以帮[详细]
-
typedef 和 #define 的差异
所属栏目:[语言] 日期:2021-05-27 热度:80
typedef 在表现上有时候类似于 #define,但它和宏替换之间存在一个关键性的区别。正确思考这个问题的方法就是把 typedef 看成一种彻底的封装类型,声明之后不能再往里面增加别的东西。 1) 可以使用其他类型说明符对宏类型名进行扩展,但对 typedef 所定义的[详细]
