Java垃圾回收详解 编程技术

Java垃圾回收详解

1.GC介绍 什么是垃圾回收(GC)? 垃圾回收,顾名思义,便是将已经分配出去的,但却不再使用的内存回收回来,以便能够再次分配。 在 Java 虚拟机的语境下, 垃圾 指的是死亡的对象所占据的堆空间。 Java 虚拟机中的垃圾回收器采用 可达性分析 来探索所有存活的对象。它从一系列 GC Roots 出发,边标记边探索所有被引用的对象。 为了防止在标记过程中堆栈...
阅读全文
甲骨文:史上超级伟大的 25 个 Java 应用程序 编程技术

甲骨文:史上超级伟大的 25 个 Java 应用程序

从太空探索到基因组学,从反向编译器到机器人控制器,Java 都是现今世界的核心。为庆祝 Java 25 周年,甲骨文用一篇官方博文向大家介绍了 25 个优秀的 Java 应用程序。 Java 的故事始于 1991 年,当时 Sun Microsystems 试图将其在计算机工作站市场的领先地位扩展到个人电子产品市场,这是一个新市场且快速发展。不过,几乎没有人能预料到 Sun 即将创建的编程语言会...
阅读全文
java8 CompletableFuture 使用详解 编程技术

java8 CompletableFuture 使用详解

前言 上一篇文章 不会用Java Future,我怀疑你泡茶没我快 全面分析了 Future,通过它我们可以获取线程的执行结果,它虽然解决了 Runnable 的 “三无” 短板,但是它自身还是有短板: 不能手动完成计算 假设你使用 Future 运行子线程调用远程 API 来获取某款产品的最新价格,服务器由于洪灾宕机了,此时如果你想手动结束计算,而是想返回上次缓存中的价格,这是...
阅读全文
Netty学习系列(六)-编、解码器 编程技术

Netty学习系列(六)-编、解码器

这篇文章应该是Netty专栏的倒数第二篇文章了,下一篇就是对整个Netty的总结。本篇文章主要讲Netty的编码器和解码器,他们两个定义和作用根据他们的名字很快就能了解。这里我们就开始分析吧。 一 解码器 在Netty中对于服务端来说收到的是一个 二进制数据流 ,然后解码器的作用就是将这个数据流通过一定的 解码规则 将这个二进制流解码成一个个 ByteBuf ,然后仍给业务做处理。在本...
阅读全文
高德云图异步反应式技术架构探索和实践 编程技术

高德云图异步反应式技术架构探索和实践

背景 高德云图是高德地理信息基础能力的出口,对外提供包含搜索和导航等服务接口数量超 700 个,接入应用达 40 万以上,日均处理请求量超百亿,日均 QPS 峰值过百万。高德云图服务端包含开放平台、苹果地图和多类行业解决方案,服务客户包括个人与企业开发者、企业专有用户,以及手淘、天猫、支付宝、飞猪、Lazada 等阿里经济体团队。 传统服务端架构一般采用同步阻塞模型,这符合常人思维模式,但...
阅读全文
Apache Wicket 9 发布,Java Web 开发框架 编程技术

Apache Wicket 9 发布,Java Web 开发框架

Apache Wicket 9 现已发布。Wicket 是一个 Java 语言的 Web 开发框架,与 Struts、WebWork、Tapestry 相类似,其特点在于对 Html 和代码进行了有效的分离(有利于程序员和美工的合作),基于规则的配置(减少了 XML 等配置文件的使用),学习曲线较低(开发方式与 C/S 相似),更加易于调试(错误类型比较少,而且容易定位)。 ...
阅读全文
【译】JVM的下一代—GraalVM介绍 编程技术

【译】JVM的下一代—GraalVM介绍

内容纲要 随着Red Hat宣布Quarkus作为… 为GraalVM和HotSpot量身定制的下一代Kubernetes原生Java框架,使用一流的Java库和标准构建 https://quarkus.io Red Hat展示的Quarkus 示例项目 的启动速度和内存消耗给我留下了深刻的印象。令人印象深刻的主要原因之一是,代码是用GraalVM 提前(ahe...
阅读全文
Neety学习系列(五)-内存分配 编程技术

Neety学习系列(五)-内存分配

本篇是Netty的第五篇文章,这篇文章我主要分析的是Netty的内存分配。Java NIO提供了 ByteBuffer 作为它的字节容器,但是这个类使用起来过于复杂,而且也有些繁琐。Netty用 ByteBuf 替代了ByteBuffer,解决了JDK API的局限性,又为网络应用程序的开发者提供了更好的API。本篇文章,我大概会介绍Netty的内存类别有哪些、Netty是如何减少多线程内存分配之...
阅读全文
Neety学习系列(四)-连接管理及Pipeline 编程技术

Neety学习系列(四)-连接管理及Pipeline

这是本系列的第四篇文章,这篇文章的重点是对Netty的连接管理进行分析和Pipeline的运行及时。当有新连接产生的时候Netty是怎样检测到的?然后新连接又是怎样注册到NioEventLoop中的呢?本篇第一章就要解决这些问题,在此过程中大体可以分为, 检测新连接 、 创建NioSocketChannel 、 分配线程及注册selector ,第二章就是介绍Pipeline的相关知识点,nett...
阅读全文
Java8 Stream flatmap中间操作用法解析 编程技术

Java8 Stream flatmap中间操作用法解析

stream中的flatmap是stream的一种中间操作,它和stream的map一样,是一种收集类型的stream中间操作,但是与map不同的是,它可以对stream流中单个元素再进行拆分(切片),从另一种角度上说,使用了它,就是使用了双重for循环。 查看Stream源码中flatmap的方法定义: <R> Stream<R> flatMap(Funct...
阅读全文
Loading...