-
PyTorch 的基础入门及重要基础
所属栏目:[语言] 日期:2021-05-27 热度:131
为什么使用 Numpy?实际上 Python 本身含有列表(list)和数组(array),但对于大数据来说,这些结构是有很多不足的。 由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针。例如为了保存一个简单的[1,2,3],都需要有 3 个指针和 3 个整数对象[详细]
-
两种典型的使用继承的情景情况叙述
所属栏目:[语言] 日期:2021-05-27 热度:94
派生类除了拥有基类的成员,还可以定义自己的新成员,以增强类的功能。 以下是两种典型的使用继承的场景: 1) 当你创建的新类与现有的类相似,只是多出若干成员变量或成员函数时,可以使用继承,这样不但会减少代码量,而且新类会拥有基类的所有功能。 2)[详细]
-
在派生类的构造函数中调用基类的构造函数极为重要
所属栏目:[语言] 日期:2021-05-27 热度:60
副标题#e# 前面我们说基类的成员函数可以被继承,可以通过派生类的对象访问,但这仅仅指的是普通的成员函数,类的构造函数不能被继承。构造函数不能被继承是有道理的,因为即使继承了,它的名字和派生类的名字也不一样,不能成为派生类的构造函数,当然更不[详细]
-
两个经典例子让你彻底明白Java回调机制
所属栏目:[语言] 日期:2021-05-26 热度:135
先让我们通过一个生活中的场景来还原一下回调的场景:你遇到了一个技术难题(比如,1+1等于几?太难了!),于是你去咨询大牛,大牛说现在正在忙,待会儿告诉你结果。 此时,你可能会去刷朋友圈了,等大牛忙完之后,告诉你答案是2。 那么,这个过程中询问问题([详细]
-
这两种常用的编程语言之间的主要区别是什么?
所属栏目:[语言] 日期:2021-05-26 热度:70
Python VS JavaScript:实际应用 我们将从快速浏览它们的实际应用程序开始。 Python 由于其强大的功能和多功能性,Python已经成为世界上几乎每一个科学应用程序中必不可少的工具,它是一种支持不同编程范式的通用编程语言。 它广泛用于科学和专业应用,包[详细]
-
快亦有道!让 Python 变快的 5个办法
所属栏目:[语言] 日期:2021-05-25 热度:135
在CPython的替代品中,PyPy是最显眼的那一个(比如Quora就在生产环境中使用它)。它也最有机会成为默认解释器,它和现存Python代码高度兼容。 PyPy使用适时编译来加速Python,这项技术Google也在使用,Google在V8引擎中使用它加速Javascript。最近的版本PyPy[详细]
-
LEGB规则是编程语言里必不可少的
所属栏目:[语言] 日期:2021-05-25 热度:179
四个作用域遵循LEGB规则,让我们用一个例子来说明。 importbuiltins builtins.b=builtins g=global defouter(o1,o2=o2): e=enclose definner(i1,i2=i2): print(i1,i2,o1,o2,e,g,b) returninner fun=outer(o1) fun(i1) 其输出为 i1 i2 o1 o2 enclose global[详细]
-
Python变量定义的时间和空间及其作用域的重要性
所属栏目:[语言] 日期:2021-05-25 热度:138
为啥变量要有作用域呢? 我们在Python里遇到的内置、局部、全局及自由变量,就是说变量的作用域。 语言区分作用域,是为了复用变量名。引入作用域,相当于给变量划分了各自的隔离区,在不同隔离区里,查找变量变得很容易。 正是因为有了作用域,我们在函数[详细]
-
信息量大且结构便利的日志调试和跟踪应用程序实践的理想方式
所属栏目:[语言] 日期:2021-05-25 热度:184
关于Python日志记录库,大部分开发人员都善于解释如何设置一个记录系统用于一个Python脚本。但是,几乎找不到如何设置Python日志记录库以在整个应用程序范围内使用,以及如何在所有项目模块中舒适地正确集成和共享日志记录信息的解释器。 在本文中,我将分[详细]
-
java程序调用c++代码是你需要掌握的
所属栏目:[语言] 日期:2021-05-25 热度:125
首先定义一个包含了native方法的类如下,之后我们要使用这个类中的native方法通过jni调用c++编写成的动态链接库中的方法: publicclassJniTest{ static{ System.loadLibrary(MyNativeDll); } publicstaticnativevoidcallCppMethod(); publicstaticvoidmain[详细]
-
并发问题原因分析及解决
所属栏目:[语言] 日期:2021-05-25 热度:116
Unsafe.compareAndSwapXXX 实现CAS更改 state 和 队列指针 内部依赖CPU提供的原子指令 可见性与有序性 volatile 修饰 state 与 队列指针 (prev/next/head/tail) 线程阻塞与唤醒 Unsafe.park Unsafe.parkNanos Unsafe.unpark Unsafe类是在sun.misc包下,[详细]
-
锁的使用至关重要
所属栏目:[语言] 日期:2021-05-25 热度:184
副标题#e# 独占锁的实现,拥有上面列举的除读写锁之外的所有特性,使用比较简单 classX{ //创建独占锁实例 privatefinalReentrantLocklock=newReentrantLock(); //... publicvoidm(){ lock.lock();//blockuntilconditionholds try{ //...methodbody }finall[详细]
-
Lock特点性能完美分析解读
所属栏目:[语言] 日期:2021-05-25 热度:74
像synchronized和ReentrantLock都是可重入锁,可重入性表明了锁的分配机制是基于线程的分配,而不是基于方法调用的分配。 举个简单的例子,当一个线程已经获取到锁,当后续再获取同一个锁,直接获取成功。但获取锁和释放锁必须要成对出现。 可响应中断 当[详细]
-
Semaphore 数据结构分解详解
所属栏目:[语言] 日期:2021-05-25 热度:97
副标题#e# //Go语言中暴露的semaphore实现 //具体的用法是提供sleep和wakeup原语 //以使其能够在其它同步原语中的竞争情况下使用 //因此这里的semaphore和Linux中的futex目标是一致的 //只不过语义上更简单一些 // //也就是说,不要认为这些是信号量 //把这[详细]
-
isEmpty和isBlank的差异
所属栏目:[语言] 日期:2021-05-25 热度:71
我们在对字符串进行操作的时候,需要经常判断该字符串是否为空。如果没有借助任何工具,我们一般是这样判断的: if(null!=source!.equals(source)){ System.out.println(notempty); } 但是如果每次都这样判断,会有些麻烦,所以很多jar包都对字符串判空做[详细]
-
如何构造一个死锁及处理方式
所属栏目:[语言] 日期:2021-05-24 热度:172
副标题#e# 很简单,只要让线程1占有对象a的锁后,再去请求对象b的锁。与此同时,对象2已经占有了对象b的锁,再请求对象a的锁。线程1与线程2互相等待,形成了死锁。(在面试中,也会被经常地要求手写死锁) 代码如下: packagecom.example.dl; importorg.sprin[详细]
-
Java 7以来增加得强大的新功能的示例
所属栏目:[语言] 日期:2021-05-23 热度:78
在Java 8中,功能编程和lambda被添加为语言功能。函数式编程的两个核心范例是不变的值和将函数提升为一等公民的方法。数据经过一系列修改步骤,其中每个步骤都需要一些输入并将其映射到新的输出。函数式编程可与Java中的Streams和null安全monad(可选)一起[详细]
-
java的乐观锁和悲观锁是如何实现的
所属栏目:[语言] 日期:2021-05-23 热度:165
java的锁有这么几类。 乐观锁和悲观锁 乐观锁就是JVM认为不通过加锁也能保证并发的正确性。典型实现是诸如AtomicInteger的实现。 悲观锁就是需要加锁互斥。典型实现是Synchronized(Synchronized属于乐观锁还是悲观锁其实跟具体实现有关,大部分场景下都是[详细]
-
Java8性能全面介绍意义深远
所属栏目:[语言] 日期:2021-05-23 热度:198
副标题#e# Java 8 已经发布很久了,很多报道表明 Java 8 是一次重大的版本升级,虽然我们的 JDK 环境也升级到1.8,但是在日常的开发过程中,使用最多的编程风格还是停留在 JDK1.7。 Java8 新增了非常多的特性,主要有以下几个: Lambda 表达式:Lambda 允许[详细]
-
盘点潜力巨大的几种编程语言
所属栏目:[语言] 日期:2021-05-23 热度:136
目前,我们正处于一个新兴的区块链开发产业中。 区块链技术还处于起步阶段,但是这种破坏性技术已经成功席卷了整个世界,并且最近经历了前所未有的繁荣。 有许多资金充裕的项目渴望建立自己的区块链网络并在其上部署去中心化应用程序,因此,有能力的区块[详细]
-
手把手教你用Python掌握Word自动编写离职报告
所属栏目:[语言] 日期:2021-05-23 热度:160
副标题#e# fromdocximportDocument fromdocx.enum.textimportWD_PARAGRAPH_ALIGNMENT fromdocx.oxml.nsimportqn fromdocx.sharedimportRGBColor,Pt #初始化一个文档 document=Document() #加个标题 paragraph=document.add_heading(开空调,level=3) documen[详细]
-
异常使用时的常见问题及注意事项
所属栏目:[语言] 日期:2021-05-23 热度:88
副标题#e# 1、当子类重写父类的带有 throws声明的函数时,其throws声明的异常必须在父类异常的可控范围内用于处理父类的throws方法的异常处理器,必须也适用于子类的这个带throws方法 。这是为了支持多态。 例如,父类方法throws 的是2个异常,子类就不能th[详细]
-
Throwable、Error与Exception类的用途分析
所属栏目:[语言] 日期:2021-05-23 热度:55
Throwable 类是 Java 语言中所有错误或异常的顶层父类,其他异常类都继承于该类。Throwable类有两个重要的子类:**Exception(异常)**和 「Error(错误)」,二者都是 Java 异常处理的重要子类,各自都包含大量子类。 只有当对象是此类或其子类的实例时,才能[详细]
-
Python轻量级循环效率问题处理
所属栏目:[语言] 日期:2021-05-23 热度:150
[iforiinrange(10)] [0,1,2,3,4,5,6,7,8,9] 单循环+条件 0-20中所有能被3整除的数是多少 [iforiinrange(20)ifi%3==0] [0,3,6,9,12,15,18] 多循环-2次 ABC和EGF所有可能的两两组合 [i+jforiinABCforjinEFG] [AE,AF,AG,BE,BF,BG,CE,CF,CG] 多循环-3次 ABC、E[详细]
-
Protobuf序列化这么强,为什么不花五分钟掌握一下呢?
所属栏目:[语言] 日期:2021-05-23 热度:156
一、为什么要使用protobuf? 使用protobuf的原因肯定是为了解决开发中的一些问题,那使用其他的序列化机制会出现什么问题呢? (1)java默认序列化机制:效率极低,而且还能不能跨语言之间共享数据。 (2)XML常用于与其他项目之间数据传输或者是共享数据,但是[详细]

浙公网安备 33038102330478号