-
如何构造一个死锁及处理方式
所属栏目:[编程] 日期:2021-05-22 热度:93
副标题#e# 很简单,只要让线程1占有对象a的锁后,再去请求对象b的锁。与此同时,对象2已经占有了对象b的锁,再请求对象a的锁。线程1与线程2互相等待,形成了死锁。(在面试中,也会被经常地要求手写死锁) 代码如下: packagecom.example.dl; importorg.sprin[详细]
-
Java 7以来增加得强大的新功能的示例
所属栏目:[编程] 日期:2021-05-22 热度:128
在Java 8中,功能编程和lambda被添加为语言功能。函数式编程的两个核心范例是不变的值和将函数提升为一等公民的方法。数据经过一系列修改步骤,其中每个步骤都需要一些输入并将其映射到新的输出。函数式编程可与Java中的Streams和null安全monad(可选)一起[详细]
-
java的乐观锁和悲观锁是如何实现的
所属栏目:[编程] 日期:2021-05-22 热度:126
java的锁有这么几类。 乐观锁和悲观锁 乐观锁就是JVM认为不通过加锁也能保证并发的正确性。典型实现是诸如AtomicInteger的实现。 悲观锁就是需要加锁互斥。典型实现是Synchronized(Synchronized属于乐观锁还是悲观锁其实跟具体实现有关,大部分场景下都是[详细]
-
Java8性能全面介绍意义深远
所属栏目:[编程] 日期:2021-05-22 热度:123
副标题#e# Java 8 已经发布很久了,很多报道表明 Java 8 是一次重大的版本升级,虽然我们的 JDK 环境也升级到1.8,但是在日常的开发过程中,使用最多的编程风格还是停留在 JDK1.7。 Java8 新增了非常多的特性,主要有以下几个: Lambda 表达式:Lambda 允许[详细]
-
盘点潜力巨大的几种编程语言
所属栏目:[编程] 日期:2021-05-22 热度:66
目前,我们正处于一个新兴的区块链开发产业中。 区块链技术还处于起步阶段,但是这种破坏性技术已经成功席卷了整个世界,并且最近经历了前所未有的繁荣。 有许多资金充裕的项目渴望建立自己的区块链网络并在其上部署去中心化应用程序,因此,有能力的区块[详细]
-
手把手教你用Python掌握Word自动编写离职报告
所属栏目:[编程] 日期:2021-05-22 热度:136
副标题#e# fromdocximportDocument fromdocx.enum.textimportWD_PARAGRAPH_ALIGNMENT fromdocx.oxml.nsimportqn fromdocx.sharedimportRGBColor,Pt #初始化一个文档 document=Document() #加个标题 paragraph=document.add_heading(开空调,level=3) documen[详细]
-
异常使用时的常见问题及注意事项
所属栏目:[编程] 日期:2021-05-22 热度:92
副标题#e# 1、当子类重写父类的带有 throws声明的函数时,其throws声明的异常必须在父类异常的可控范围内用于处理父类的throws方法的异常处理器,必须也适用于子类的这个带throws方法 。这是为了支持多态。 例如,父类方法throws 的是2个异常,子类就不能th[详细]
-
Throwable、Error与Exception类的用途分析
所属栏目:[编程] 日期:2021-05-22 热度:182
Throwable 类是 Java 语言中所有错误或异常的顶层父类,其他异常类都继承于该类。Throwable类有两个重要的子类:**Exception(异常)**和 「Error(错误)」,二者都是 Java 异常处理的重要子类,各自都包含大量子类。 只有当对象是此类或其子类的实例时,才能[详细]
-
Python轻量级循环效率问题处理
所属栏目:[编程] 日期:2021-05-22 热度:101
[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[详细]
-
提升Webpack的构建速度的方式有哪些?
所属栏目:[编程] 日期:2021-05-22 热度:50
在使用loader时,可以通过配置include、exclude、test属性来匹配文件,接触include、exclude规定哪些匹配应用loader 如采用 ES6 的项目为例,在配置 babel-loader时,可以这样: module.exports={ module:{ rules:[ { //如果项目源码中只有js文件就不要写[详细]
-
全面了解Servlet之Filter实现原理
所属栏目:[编程] 日期:2021-05-22 热度:67
副标题#e# 接下来我们来实现一个Filter Filter.java接口 publicinterfaceFilter{ voiddoFilter(Requestrequest,Responseresponse,FilterChainchain); } FilterChain.java 关键的调用链 publicclassFilterChainimplementsFilter{ privateListFilterfilters=n[详细]
-
Object转String的小妙招
所属栏目:[编程] 日期:2021-05-22 热度:182
副标题#e# 开发中,小伙伴一定经常遇到将一个Object类型的字段转换为String类型的字段。比如我们从一个类型定义为MapString, Object Object转换为String的方式有如下几种: (String)object object.toString() Stirng.valueOf(object) +object 我们暂且先不[详细]
-
主导软件开发领域发展的技术趋势
所属栏目:[编程] 日期:2021-05-22 热度:122
科技趋势引领着软件开发行业的发展。对于开发商来说,将会看到更多的市场增长机会。因此,很多人都想了解软件开发的最新趋势。IT行业正在等待一个范式转变,而科技的好处在于不断发展,势不可挡,并且用途广泛。 很多专业人士有一些很好的想法来推动软件产[详细]
-
软件开发提效哪有那么简单
所属栏目:[编程] 日期:2021-05-22 热度:67
1、产品经理/UI设计师与开发者之间的交接浪费 很多人都看到了产品经理要写一遍 PRD 稿,然后开发者照着翻译一遍。UI 设计师要画 UI 稿,然后前端开发要照着还原 UI。如果能够减少这个交接环节产生的浪费,让 PRD 稿,UI 稿能直接进入下一个环节,岂不美哉。[详细]
-
改善性能的最好方法:JavaScript延迟执行属性
所属栏目:[编程] 日期:2021-05-22 热度:151
副标题#e# 优化执行计算操作的最简单方法是等到需要数据后再进行计算。 例如,您可以使用带有getter的data属性来按需进行计算,如下所示: classMyClass{ getdata(){ returnsomeExpensiveComputation(); } } 在这种情况下,直到有人第一次读取该data属性时[详细]
-
异步Python Web框架较量
所属栏目:[编程] 日期:2021-05-22 热度:194
这里测试的python异步框架几乎都与ASGI兼容(除了aiohttp)。 基准测试的目的不是测试部署(例如uvicorn与hypercorn等)或数据库(ORM,驱动程序),而是测试框架本身。基准检查检查请求解析(正文,标头,表单数据,查询),路由,响应。 接受请求并返回[详细]
-
构建Java镜像的10个卓越实例
所属栏目:[编程] 日期:2021-05-22 热度:189
1.Docker镜像使用确定性的标签 2.在Java镜像中仅安装需要的内容 3.查找并修复Java镜像中的安全漏洞 4.使用多阶段构建Java镜像 5.不要以root用户身份运行Java应用程序 6.Java应用程序不要使用PID为1的进程 7.优雅下线Java应用程序 8.使用 .dockerignore文件[详细]
-
业务框架封装及处理方式
所属栏目:[编程] 日期:2021-05-22 热度:64
为了选择合适的底层框架,小编整理了awesome-nodejs的仓库(每个分类按github star数排序),从Web框架部分可以看到非常丰富,那么我们如何选择。 awesome-nodejs地址: https://github.com/huaize2020/awesome-nodejs/blob/main/README-zh-CN.md 主流的Web框[详细]
-
作为一名工程师,应该如何进修?
所属栏目:[编程] 日期:2021-05-22 热度:66
副标题#e# 对于工程师来说,从书籍得来的知识是必不可少的。现在很多年轻的程序员会从网络博客来学习技术,但博客内容大多缺乏体系(主要说总结性质的博客内容),不系统。很多博主为了掩饰自己的未知,遇到不知道的关键点就一笔带过,进而导致缺失。即使原作[详细]
-
数组中使用splice需要了解的常识
所属栏目:[编程] 日期:2021-05-22 热度:169
arrayObject.splice(index,howmany,item1,.....,itemX) index: 必需。整数,规定添加/删除项目的位置,使用负数可从数组结 尾处规定位置。 howmany: 必需。要删除的项目数量。如果设置为 0,则不会删除项目。 item1: 可[详细]
-
delete 操作符会从某个对象上删除指定属性
所属栏目:[编程] 日期:2021-05-22 热度:106
delete是删除对象的属性没有任何剩菜,剩下的唯一真正的方法,但它的工作比其替代设置慢100倍 object[key] = undefined varmyObject={ ircEvent:PRIVMSG, method:newURI, regex:^* }; deletemyObject.regex; console.log(myObject); delete 操作符会从某个[详细]
-
通常编译出来的冗余代码
所属栏目:[编程] 日期:2021-05-22 热度:83
列表和字典是重灾区。有一些人在Python里面创建一个元素已经确定的列表,却这样写代码: a=list() a.append(x) a.append(y) a.append(z) 但实际上,你可以直接一行代码写为: a=[x,y,z] 初始化一个元素已经确定的字典,有人也喜欢这样写代码: a=dict() a[[详细]
-
预备知识css实现超实用的图标库
所属栏目:[编程] 日期:2021-05-22 热度:151
伪元素是一个附加至选择器末的关键词,允许你对被选择元素的特定部分修改样式。伪元素主要有: ::first-letter 第一个字母的样式 ::first-line 首行文字的样式 ::before 元素头部添加的修饰 ::after 元素尾部添加的修饰 ::placeholder input的占位符样式 :[详细]
-
依赖项是函数能起到优化作用
所属栏目:[编程] 日期:2021-05-22 热度:183
可以把函数定义到useEffect中,这样添加的依赖变成了函数的参数,这样子,useEffect就无需添加xxx函数名作为依赖项了。 另外如果单纯把函数名放到依赖项中,如果该函数在多个effects中复用,那么在每一次render时,函数都是重新声明(新的函数),那么effect[详细]
-
effect的更新依赖屈指可数
所属栏目:[编程] 日期:2021-05-22 热度:140
副标题#e# useEffect中的第二个参数,可以是一个参数数组(依赖数组)。React更新DOM的思想,不管过程怎样,只将结果展示给世人。 React在更新组件的时候,会对比props,通过AST等方式比较,然后仅需更新变化了的DOM。 第二个参数相当于告诉了useEffect,只要[详细]

浙公网安备 33038102330481号