Wesley13 Wesley13
3年前
java中volatile关键字的理解
一、基本概念Java内存模型中的可见性、原子性和有序性。可见性:  可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制。  可见性,是指线程之间的可见性,一个线
Wesley13 Wesley13
3年前
TCP三次握手的过程
TCP(TransmissioncontrolProtocol)是一种面向连接,可靠的,基于字节流的运输层通信协议,是专门为了在不可靠的互联网络上提供一个可靠的端到端字节流而设计的。每一次tcp连接需要3个阶段:连接建立,数据传送和连接释放三次握手发生在连接建立阶段,目的是为了防止已失效的连接请求报文端突然又传送到服务器端,因而产生错误三
Stella981 Stella981
3年前
Spring Boot 2.x(七):全局异常处理
前言异常的处理在我们的日常开发中是一个绕不过去的坎,在SpringBoot项目中如何优雅的去处理异常,正是我们这一节课需要研究的方向。异常的分类在一个SpringBoot项目中,我们可以把异常分为两种,第一种是请求到达Controller层之前,第二种是到达Controller层之后项目代码中发生的错误。而第一种又可
Wesley13 Wesley13
3年前
JDK8中JVM堆内存划分
一:JVM中内存JVM中内存通常划分为两个部分,分别为堆内存与栈内存,栈内存主要用运行线程方法存放本地暂时变量与线程中方法运行时候须要的引用对象地址。JVM全部的对象信息都存放在堆内存中。相比栈内存,堆内存能够所大的多,所以JVM一直通过对堆内存划分不同的功能区块实现对堆内存中对象管理。堆内存不够最常见的错误就是OOM(OutOf
Stella981 Stella981
3年前
Hive建表的Location问题
最近公司在使用Hive做项目测试,所以就在Hive上面建了一些表,做测试。使用建表语句后发现数据被自动覆盖了,现在了解到的情况是这样的。Hive中,表的Metadata信息全部存储在MySQL中。而存储在MySQL中的数据是没有校验过程的。也就是说,你可以创建一个逻辑错误的表,两个表指向同一个HDFS文件也是有可能的。所以,在使用CREA
Wesley13 Wesley13
3年前
Jade模板引擎入门教程
Jade是一款高性能简洁易懂的模板引擎,Jade是Haml的Javascript实现,在服务端(NodeJS)及客户端均有支持。功能客户端支持超强的可读性灵活易用的缩进块扩展代码默认经过编码处理以增强安全性编译及运行时的上下文错误报告命令行编译支持HTML5模式(使用!!!5文档类型)可选的内存缓存联合动态和静态标记类利用过滤器解析树
Easter79 Easter79
3年前
SpringBoot2(十一)集成RedisCache
应用层的东西,找到接口实现它即可。如果想要自己选择序列化工具,难点还是在自动转型上,在序列化字符串转成对象的过程中,Spring并未提供有效的、带Class参数的接口,类型自动转换问题,需要第三方框架自行处理。最好选用带自动转型的序列化框架,错误的写法,很容易导致类型强转失败,本文采用的是FastJSON。简单的工具类,按自己需求封装,可以指定
Stella981 Stella981
3年前
SpringBoot2(十一)集成RedisCache
应用层的东西,找到接口实现它即可。如果想要自己选择序列化工具,难点还是在自动转型上,在序列化字符串转成对象的过程中,Spring并未提供有效的、带Class参数的接口,类型自动转换问题,需要第三方框架自行处理。最好选用带自动转型的序列化框架,错误的写法,很容易导致类型强转失败,本文采用的是FastJSON。简单的工具类,按自己需求封装,可以指定
Wesley13 Wesley13
3年前
GNU 对自由软件的定义:与免费无关
近年来,很多开源项目在商业化的过程中遇到了困难,抗议开源商业化的声音也一直存在。在很多对自由与开源软件不太了解的人眼中,开源软件免费软件——这其实是一个错误的观念。自由软件运动之父RichardStallman(RMS)曾在GNU章程中明确表示,自由软件是可以被售卖的。也就是说,自由与开源软件的商业化其实是一件非常合理的事情。
Stella981 Stella981
3年前
Django 表单处理流程
Django的表单处理:视图获取请求,执行所需的任何操作,包括从模型中读取数据,然后生成并返回HTML页面(从模板中),我们传递一个包含要显示的数据的上下文。使事情变得更复杂的是,服务器还需要能够处理用户提供的数据,并在出现任何错误时,重新显示页面。下面显示了Django如何处理表单请求的流程图,从对包含表单的页面的请求开始(以绿色显示):!(