JDK核心JAVA源码解析(4) - 堆外内存、零拷贝、DirectByteBuffer以及针对于NIO中的FileChannel的思考 编程技术

JDK核心JAVA源码解析(4) - 堆外内存、零拷贝、DirectByteBuffer以及针对于NIO中的FileChannel的思考

想写这个系列很久了,对自己也是个总结与提高。原来在学JAVA时,那些JAVA入门书籍会告诉你一些规律还有法则,但是用的时候我们一般很难想起来,因为我们用的少并且不知道为什么。知其所以然方能印象深刻并学以致用。 本篇文章针对堆外内存与DirectBuffer进行深入分析,了解Java对于堆外内存处理的机制,为下一篇文件IO做好准备 Java堆栈内存与堆外内存 首先我们扔出一个公式: ...
阅读全文
要解析一个配置文件,当打开文件的时候我崩溃了 软件架构

要解析一个配置文件,当打开文件的时候我崩溃了

薛定谔的猫 首先,说一些题外话,按照我一贯的风格,这篇文章本应该叫《浅谈如何优雅读取特殊格式配置文件》,但是最近被某些网站的推送恶心到了,我是不太喜欢这种标题的,所以我一直尽量避免使用这种标题党式的标题,但是,好奇心驱使我,想做一次实验,欢迎大家留言,说出你的想法,你更喜欢哪个标题? A. 要解析一个配置文件,当打开文件的时候我崩溃了 | 为人性癖耽佳句,语不惊人死不休 ...
阅读全文
解决 HttpServletRequest 流数据不可重复读 编程技术

解决 HttpServletRequest 流数据不可重复读

在某些业务中可能会需要多次读取 HTTP 请求中的参数,比如说前置的 API 签名校验。这个时候我们可能会在拦截器或者过滤器中实现这个逻辑,但是尝试之后就会发现,如果在拦截器中通过 getInputStream() 读取过参数后,在 Controller 中就无法重复读取了,会抛出以下几种异常: HttpMessageNotReadableException: Required...
阅读全文
缓存架构:如何减少不必要的计算? 软件架构

缓存架构:如何减少不必要的计算?

互联网应用的主要挑战就是在高并发情况下,大量的用户请求到达应用系统服务器,造成了巨大的计算压力。互联网应用的核心解决思路就是采用分布式架构,提供更多的服务器,从而提供更多的计算资源,以应对高并发带来的计算压力及资源消耗。 那么有没有办法减少到达服务器的并发请求压力呢?或者请求到达服务器后,有没有办法减少不必要的计算,降低服务器的计算资源消耗,尽快返回计算结果给用户呢? 有,解决的...
阅读全文
Java并发编程——为什么要用volatile关键字 编程技术

Java并发编程——为什么要用volatile关键字

首发地址 https://blog.leapmie.com/archives/66ba646f/ 日常编程中出现 volatile 关键字的频率并不高,大家可能对 volatile 关键字比较陌生,再深入一点也许是听闻 volatile 只能保证可见性而不能保证原子性,无法有效保证线程安全,于是更加避免使用 volatile ,简简单单加上synchronize关键字就完事了。本文稍微深入...
阅读全文
详解 Java 中 4 种 IO 模型 编程技术

详解 Java 中 4 种 IO 模型

来源:ncoding ncoding.com/2018/04/02/java/io.html 同步、异步、阻塞、非阻塞都是和I/O(输入输出)有关的概念,最简单的文件读取就是I/O操作。而在文件读取这件事儿上,可以有多种方式。 本篇会先介绍一下I/O的基本概念,通过一个生活例子来分别解释下这几种I/O模型,以及Java支持的I/O模型。 基本概念 在解释I/O模型之前,我先说明...
阅读全文
自定义RedisTemplate序列化机制 编程技术

自定义RedisTemplate序列化机制

在项目中引入Redis依赖后,SpringBoot提供的RedisAutoConfiguration自动配置会生效。打开RedisAutoConfiguration类,查看内部源码中关于RedisTemplate的定义方式 ```java public class RedisAutoConfiguration { @Bean @ConditionalOnMissingBean( ...
阅读全文
Java业务校验工具实现(续集) 编程技术

Java业务校验工具实现(续集)

一、背景 在前面的文章分享了一篇自已关于Java业务校验工具的实现 Java业务校验工具实现 ,后面本着“不要重复造轮子”的原则,在网上搜索果然有志同道合的朋友已经实现过相同的功能框架 fluent-validator 。 在大致看完整体功能与大概实现后,觉得这是一个不错的校验框架,但对于我现在的使用场景来说,会感觉有一些“重量级”,即有些功能对我们的使用场景来说有些多余,因为我们的使...
阅读全文
Java语法新特性_java5到java11 编程技术

Java语法新特性_java5到java11

一、前言 万万没想到,都0202年了,Sun都亡了,老夫还要从Java5的新特性开始写,还要重点写Java8的新特性。。。 其实网上这种玩意一大堆,为啥老夫还要写呢? 因为领导们觉得大家平时太(真)忙(懒),没有时间去学习,所以集中讲一下,来个速(应)成(付)。 网上的资料讲的都挺好,都很全面,但对于我们外(死)包(跑)开(龙)发(套)来说,应该重点关注那些能提高生(搬)产(砖)效...
阅读全文
Loading...