-
锁的使用至关重要
所属栏目:[语言] 日期:2021-05-26 热度:149
副标题#e# 独占锁的实现,拥有上面列举的除读写锁之外的所有特性,使用比较简单 classX{ //创建独占锁实例 privatefinalReentrantLocklock=newReentrantLock(); //... publicvoidm(){ lock.lock();//blockuntilconditionholds try{ //...methodbody }finall[详细]
-
Lock特点性能完美分析解读
所属栏目:[语言] 日期:2021-05-26 热度:116
像synchronized和ReentrantLock都是可重入锁,可重入性表明了锁的分配机制是基于线程的分配,而不是基于方法调用的分配。 举个简单的例子,当一个线程已经获取到锁,当后续再获取同一个锁,直接获取成功。但获取锁和释放锁必须要成对出现。 可响应中断 当[详细]
-
Semaphore 数据结构分解详解
所属栏目:[语言] 日期:2021-05-26 热度:160
副标题#e# //Go语言中暴露的semaphore实现 //具体的用法是提供sleep和wakeup原语 //以使其能够在其它同步原语中的竞争情况下使用 //因此这里的semaphore和Linux中的futex目标是一致的 //只不过语义上更简单一些 // //也就是说,不要认为这些是信号量 //把这[详细]
-
isEmpty和isBlank的差异
所属栏目:[语言] 日期:2021-05-26 热度:208
我们在对字符串进行操作的时候,需要经常判断该字符串是否为空。如果没有借助任何工具,我们一般是这样判断的: if(null!=source!.equals(source)){ System.out.println(notempty); } 但是如果每次都这样判断,会有些麻烦,所以很多jar包都对字符串判空做[详细]
-
C++ inline内联函数分析大全
所属栏目:[语言] 日期:2021-05-26 热度:196
如果函数体代码比较多,需要较长的执行时间,那么函数调用机制占用的时间可以忽略;如果函数只有一两条语句,那么大部分的时间都会花费在函数调用机制上,这种时间开销就就不容忽视。 为了消除函数调用的时空开销,C++ 提供一种提高效率的方法,即在编译时[详细]
-
C++ new和delete运算符讲解
所属栏目:[语言] 日期:2021-05-26 热度:175
在C语言中,动态分配内存用 malloc() 函数,释放内存用 free() 函数。如下所示: int *p = (int*) malloc( sizeof(int) * 10 ); //分配10个int型的内存空间 free(p); //释放内存 在C++中,这两个函数仍然可以使用,但是C++又新增了两个关键字,new 和 delet[详细]
-
面向对象编程有着举足轻重的作用
所属栏目:[语言] 日期:2021-05-26 热度:116
类是一个通用的概念,C++等很多编程语言中都支持类,都可以通过类创建对象。可以将类看做是结构体的升级版,C语言的晚辈们看到了C语言的不足,尝试加以改善,继承了结构体的思想,并进行了升级,让程序员在开发或扩展大中型项目时更加容易。 因为 C++、Java[详细]
-
10分钟让你知道C++类和对象到底是什么?
所属栏目:[语言] 日期:2021-05-26 热度:98
C++ 中的类(Class)可以看做C语言中结构体(Struct)的升级版。结构体是一种构造类型,可以包含若干成员变量,每个成员变量的类型可以不同;可以通过结构体来定义结构体变量,每个变量拥有相同的性质。例如: #include stdio.h //定义结构体 Student struc[详细]
-
了解学会Python 代码优化原则
所属栏目:[语言] 日期:2021-05-26 热度:133
第一个基本原则是不要过早优化。很多人一开始写代码就奔着性能优化的目标,让正确的程序更快要比让快速的程序正确容易得多。因此,优化的前提是代码能正常工作。过早地进行优化可能会忽视对总体性能指标的把握,在得到全局结果前不要主次颠倒。 第二个基本[详细]
-
Windows、Linux 和 Mac OS 三大平台是初学者的福音
所属栏目:[语言] 日期:2021-05-25 热度:70
Windows 下的 IDE 多如牛毛,常见的有以下几种。1) Visual StudioWindows 下首先推荐大家使用微软开发的 Visual Studio(简称 VS),它是 Windows 下的标准 IDE,实际开发中大家也都在使用。 为了适应最新的 Windows 操作系统,微软每隔一段时间(一般是一[详细]
-
数据在内存中的保存极为重要
所属栏目:[语言] 日期:2021-05-25 热度:157
计算机要处理的信息是多种多样的,如数字、文字、符号、图形、音频、视频等,这些信息在人们的眼里是不同的。但对于计算机来说,它们在内存中都是一样的,都是以二进制的形式来表示。 要想学习编程,就必须了解二进制,它是计算机处理数据的基[详细]
-
干货:桌面操作系统与嵌入式操作系统的差异
所属栏目:[语言] 日期:2021-05-25 热度:176
桌面操作系统对于当前主流桌面操作系统而言,可使用 Visual以及 LLVM Clang 这三大编译器。 Visual C++(简称 MSVC)是由微软开发的,只能用于 Windows 操作系统;GCC 和 LLVM Clang除了可用于 Windows 操作系统之外,主要用于 Unix/Linux 操作系统。 像现[详细]
-
从现在开始积蓄能量,有执念的人最可怕
所属栏目:[语言] 日期:2021-05-25 热度:171
编程是一门技术,我也不知道它难不难,我只知道,只要你想学,肯定能学会。每个人的逻辑思维能力不同,兴趣点不同,总有一部分人觉得容易,一部分人觉得吃力。 在我看来,技术就是一层窗户纸,是有道理可以遵循的,最起码要比搞抽象的艺术容易很多。 但是,[详细]
-
C语言是菜鸟和大神的边界线
所属栏目:[语言] 日期:2021-05-25 热度:104
所有的程序都在拼尽全力节省内存,都在不遗余力提高内存使用效率,计算机的整个发展过程都在围绕内存打转,不断地优化内存布局,以保证可以同时运行多个程序。 不了解内存,就学不会进程和线程,就没有资格玩中大型项目,没有资格开发底层组件,没有资格架[详细]
-
C语言是计算机产业的关键语言
所属栏目:[语言] 日期:2021-05-25 热度:197
也许是机缘巧合,C语言出现后不久,计算机产业开始爆发,计算机硬件越来越小型化,越来越便宜,逐渐进入政府机构,进入普通家庭,C语言成了编程的主力军,获得了前所未有的成功,操作系统、常用软件、硬件驱动、底层组件、核心算法、数据库、小游戏等都使用[详细]
-
接口存在的价值及其特性
所属栏目:[语言] 日期:2021-05-25 热度:163
在我自己早期学习编程的时候,对接口存在的意义实在困惑,我自己乱写代码的时候基本上不可能意识到需要去写接口,不知道接口到底有什么用,为什么要定义接口,感觉定义接口只是提前做了个多余的工作。 其实不是,定义接口并非多余,「接口是用来提供公用的[详细]
-
接口是一个抽象类还要抽象的类
所属栏目:[语言] 日期:2021-05-25 热度:78
在讲解接口之前,抽象类是绕不过去的一个概念,接口可以认为是一个比抽象类还要抽象的类。 什么是抽象类?「包含一个或多个抽象方法的类就是抽象类,抽象方法即没有方法体的方法」,抽象方法和抽象类都必须声明为 abstract。例如: //抽象类 publicabstrac[详细]
-
Go 语言新方案:支持使用-keepfuzzing进行模糊测试
所属栏目:[语言] 日期:2021-05-25 热度:169
据介绍,此项提案会为 Go 添加新的testing.F类型,在_test.go文件中支持FuzzFoo函数,并增加新的go命令行为。该提案的 Draft Design 已发布,并根据 Go 社区的反馈进行了迭代。下一步要做的工作是将提案实现为语言特性。 此项特性在 Go 1.17 中会被视为实[详细]
-
C++多线程基本概念及其创建线程的操作
所属栏目:[语言] 日期:2021-05-24 热度:148
副标题#e# 并发、进程、线程的基本概念 并发两个或者多个任务(独立的活动)同时发生(进行):一个程序通知执行多个独立的任务并发假象(不是真正的并发):单核CPU通过上下文切换方式实现进程 进程计算机中的程序关于某数据集合上的一次运行活动 进程特性 动态性[详细]
-
让你滔滔不绝的Java的泛型知识点梳理
所属栏目:[语言] 日期:2021-05-24 热度:126
副标题#e# 最近技术交流群里,有朋友问:Object和泛型T有啥区别。回答完问题,不禁在想,面试在即,还有那么多朋友不了泛型?是时候给大家整理一篇泛型相关的文章了,一篇文章全面搞定泛型,让大家再也不愁面试或实践中泛型相关的问题了。 什么是泛型 泛型是[详细]
-
Java高并发编程入门篇:AQS
所属栏目:[语言] 日期:2021-05-24 热度:100
曾经有一道比较比较经典的面试题你能够说说java的并发包下面有哪些常见的类?大多数人应该都可以说出 CountDownLatch、CyclicBarrier、Sempahore多线程并发三大利器。这三大利器都是通过AbstractQueuedSynchronizer抽象类(下面简写AQS)来实现的,所以学习三[详细]
-
FileOutputStream与FileInputStream的随机访问文件读写
所属栏目:[语言] 日期:2021-05-24 热度:85
副标题#e# 由于流是单向的,简单文件写可使用FileOutputStream,而读文件则使用FileInputStream。 任何数据输出到文件都是以字节为单位输出,包括图片、音频、视频。以图片为例,如果没有图片格式解析器,那么图片文件其实存储的就只是按某种格式存储的字节[详细]
-
用Python实现多Excel、多Sheet的合并处理的方法
所属栏目:[语言] 日期:2021-05-24 热度:173
1)如何选择要合并的Excel文件? 利用os,获取所有要合并的Excel文件。 2)如何选择要合并的Sheet? 利用xlrd库进行Excel读取,获取要合并的Sheet名。 3)如何合并? 利用pandas库,对所有Sheet名逐一循环打开,通过concat()进行数据追加合并即可。 4)如何保存文[详细]
-
Java中基础类型的包装类在拆箱和装箱过程中起到了什么用处
所属栏目:[语言] 日期:2021-05-24 热度:199
副标题#e# 下面通过一个简单的示例才重现一下异常出现的场景。 publicclassBoxTest{ publicstaticvoidmain(String[]args){ MapString,Objectresult=httpRequest(); longuserId=(Long)result.get(userId); } //模拟一个HTTP请求 privatestaticMapString,Obje[详细]
-
extends与super通配符的差异
所属栏目:[语言] 日期:2021-05-24 热度:168
副标题#e# 在定义泛型类型Generic的时候,也可以使用extends通配符来限定T的类型: publicclassGenericTextendsNumber{...} 现在,我们只能定义: GenericNumberp1=null; GenericIntegerp2=newGeneric(1,2); GenericDoublep3=null; 因为Number、Integer和Do[详细]
