Wesley13 Wesley13
3年前
java网络编程3
什么是NIONIO是相对有BIO而言的,就是非阻塞性IO。什么叫非阻塞性?我举一个简单的例子:比如,你客户端发送了一个字符串:niotest。考虑到网络底层的传输情况的复杂性,有可能,前一秒服端接受了nio几个字符,过了10ms,再接收到了test字符串。在BIO中,不会出现这个问题,是因为在调用read方法的时候,方
js 理解模块化
经常在面试或者其他文章看到关于模块化的问题,之前也只是寥寥看了几次,对于CommonJS,AMD,ES6也说不出个所以然,于是今天抽空好好看了红宝书第4版关于模块化的介绍,这里记录一下。理解模块模式初衷在开发中肯定有设计大量三方库或者业务逻辑代码,较好的方式是将其分割为多个小模块,最后以一定的方式连接起来
Wesley13 Wesley13
3年前
Go语言
发现问题今天在看代码的时候,遇见了多个协程写同一个slice的情况,发现未对slice做任何保护,亦未使用其他手段保证并发安全,这样肯定会出错的。思考slice不是协程安全的,所以在多个协程中读写slice是不安全的,在高并发的情况下会产生不可控制的错误。总结这里记录一下错误的使用方式与正确的使用方式:错误的使用
Wesley13 Wesley13
3年前
C++各大有名科学计算库
在C中,库的地位是非常高的。C之父BjarneStroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比较著名的大型
Stella981 Stella981
3年前
Protobuf在微信小游戏开发中的使用技巧
微信小游戏发布后,许多HTML5游戏开发者希望把现有的HTML5游戏迁移到微信小游戏中,但由于一些技术上的问题导致进程卡壳。通过梳理Egret社区、白鹭小游戏开发技术讨论群等途径的反馈后发现,有不少开发者遇到的难题在于「如何在微信小游戏中使用Protobuf」。白鹭引擎架构师王泽在近期发布了一个开源项目protobufegret,提供了一个可
Stella981 Stella981
3年前
GDB原理之ptrace实现原理
在程序出现bug的时候,最好的解决办法就是通过 GDB 调试程序,然后找到程序出现问题的地方。比如程序出现 段错误(内存地址不合法)时,就可以通过 GDB 找到程序哪里访问了不合法的内存地址而导致的。本文不是介绍GDB的使用方式,而是大概介绍GDB的实现原理,当然GDB是一个庞大而复杂的项目,不可能只通过一篇文章就能解释清楚,所以
Stella981 Stella981
3年前
ART运行时无缝替换Dalvik虚拟机的过程分析
  Android4.4发布了一个ART运行时,准备用来替换掉之前一直使用的Dalvik虚拟机,希望籍此解决饱受诟病的性能问题。老罗不打算分析ART的实现原理,只是很有兴趣知道ART是如何无缝替换掉原来的Dalvik虚拟机的。毕竟在原来的系统中,大量的代码都是运行在Dalvik虚拟机里面的。开始觉得这个替换工作是挺复杂的,但是分析了相关代码之后,发现思路是
Stella981 Stella981
3年前
Dubbo与Zookeeper、SpringMVC整合和使用
互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的。现在核心业务抽取出来,作为独立的服务,使前端应用能更快速和稳定的响应。第一:介绍Dubbo背景Dubbo是一个分布式服务框架,解决了上面的所面对的问题,Dubbo的架构如图所示:主要核心部
Stella981 Stella981
3年前
JVM复习
在复习Java内存机制的过程中有一些新问题,自问自答,做个记录。新生代是java堆内存的一部分。堆内存分新生代和老生代两大块,也有把堆内存分为新生代老生代永久代(持久代)三块的说法。(不过这种说法应该逐渐被淘汰,因为从java7开始永久代就已经被移除了。)新生代继续细分,可以划分出Eden,SurvivorFrom,SurvivorTo三块,Ed
Easter79 Easter79
3年前
SpringBoot使用validator校验
在前台表单验证的时候,通常会校验一些数据的可行性,比如是否为空,长度,身份证,邮箱等等,那么这样是否是安全的呢,答案是否定的。因为也可以通过模拟前台请求等工具来直接提交到后台,比如postman这样的工具,那么遇到这样的问题怎么办呢,我们可以在后台也做相应的校验。新建项目,因为本文会使用postman模拟前端请求,所以本文需要加入web依赖,pom文件如