摘要:
简介 所谓WebSocket, 类似于Socket,它的作用是可以让Web应用中的客户端和服务端建立全双工通信。在基于Spring的应用中使用WebSocket一般可以有以下三种方式: • 使用Java提供的@ServerEndpoint注解实现 • 使用Spring提供的低层级WebSocket 阅读全文
摘要:
什么叫防盗链 说白了防盗链就是说这种加了防盗链签字的URL,而经过签名的URL能跟网络服务器的安全性体制相辅,进而将URL的应用管理权限限定在客户的APP,与此同时第三方平台即便取得URL也没法开展再次应用和散播。即选用服务端程序编写,根据URL过虑技术性保持的避免盗链的手机软件。 何时必须提升防盗 阅读全文
摘要:
什么是JIT: JIT编译器(just in time 即时编译器),当虚拟机发现某个方法或代码块运行特别频繁时,就会把这些代码认定为(Hot Spot Code 热点代码,为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各层次的优化,完成这项任务的正是 阅读全文
摘要:
1、指针和引用的本质(是什么) (1)指针是存放内存地址的一种变量,特殊的地方就在它存放的是内存地址。因此,指针的大小不会像其他变量一样变化,只跟当前平台相关——不同平台内存地址的范围是不一样的,32位平台下,内存最大为4GB,因此只需要32bit就可以存下,所以sizeof(pointer)的大小 阅读全文
摘要:
go语言垃圾回收总体采用的是经典的mark and sweep算法。 • v1.3以前版本 STW(Stop The World)golang的垃圾回收算法都非常简陋,然后其性能也广被诟病:go runtime在一定条件下(内存超过阈值或定期如2min),暂停所有任务的执行,进行mark&sweep 阅读全文
摘要:
###进程、线程、协程 进程:进程是系统进行资源分配的基本单位,有独立的内存空间,单切换代价极高,进程间通信也比较麻烦 线程:线程是CPU调度和分派的基本单位,线程依附于进程,与其他线程共享进程的资源,仅有自己的(程序计数器,一组寄存器的值,和栈),线程切换代价小(但是线程之间的切换可能会设计用户态 阅读全文
摘要:
那什么鸭子模型? 鸭子模型的解释,通常会用了一个非常有趣的例子,一个东西究竟是不是鸭子,取决于它的能力。游泳起来像鸭子、叫起来也像鸭子,那么就可以是鸭子。 动态语言,比如 Python 和 Javascript 天然支持这种特性,不过相对于静态语言,动态语言的类型缺乏了必要的类型检查。 Go 接口设 阅读全文
摘要:
最近看到一道Go语言的面试题,如下: package main import ( "fmt" ) func main() { defer_call() } func defer_call() { defer func() { fmt.Println("打印前") }() defer func() { 阅读全文
摘要:
• 在Go语言中,和java的main是有所区别的,具体区别如下: 在java中,任何一个java文件都可以有唯一一个main方法当做启动函数 在go中,则是任何一个package中,都可以有唯一一个带有main方法的go文件 也就是说,一个package下,只能有一个main方法,不管是在那个文件 阅读全文
摘要:
概述 go module是go官方自带的go依赖管理库,在1.13版本正式推荐使用 go module可以将某个项目(文件夹)下的所有依赖整理成一个 go.mod 文件,里面写入了依赖的版本等 使用go module之后我们可不用将代码放置在src下了 使用 go module 管理依赖后会在项目根 阅读全文