星星之火-Java中的2+2=5和1+1=3等原理 积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里,不积小流无以成江海。齐骥一跃,不能十步,驽马十驾,功不在舍。面对悬崖峭壁,一百年也看不出一条裂缝来,但用斧凿,能进一寸进一寸,能进一尺进一尺,不断积累,飞跃必来,突破随之。 目录我们接着上一篇说,上一篇讲了java中的1000==1000和100==100的区别。留下了一个为什么2+2=5的问题。现在说 2021-10-22 星星之火 星星之火
星星之火-Java中的1000==1000与100==100的不同之处 积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里,不积小流无以成江海。齐骥一跃,不能十步,驽马十驾,功不在舍。面对悬崖峭壁,一百年也看不出一条裂缝来,但用斧凿,能进一寸进一寸,能进一尺进一尺,不断积累,飞跃必来,突破随之。 目录今天看到一篇有意思的文章,如果条件可以,可以自行动手试试。讲的是:为什么 Java 中”1000==1000”为false,而 2021-10-22 星星之火 星星之火
深入理解堆外内存Metaspace 在之前介绍的分代垃圾回收算法中,我们一直有一个永久代存在,叫 PermGen,内存上它是挨着堆的。为了垃圾回收方便,HotSpot 在永久代上一直是使用老年代的垃圾回收算法。 永久代主要存放以下数据: JVM internal representation of classes and their metadata Class statics Interned strings 从 JDK7 开 2021-10-22 JAVA源码 JAVA 转载 JAVA源码 Metaspace
G1垃圾收集器介绍 之前根据 Sun 的内存管理白皮书介绍了在 HotSpot JVM 分代算法中的几个垃圾收集器,本文将介绍 G1 垃圾收集器。 G1 的主要关注点在于达到可控的停顿时间,在这个基础上尽可能提高吞吐量,这一点非常重要。 G1 被设计用来长期取代 CMS 收集器,和 CMS 相同的地方在于,它们都属于并发收集器,在大部分的收集阶段都不需要挂起应用程序。区别在于,G1 没有 CMS 的碎片化问题(或者说 2021-10-22 JAVA源码 JAVA 转载 JAVA源码 G1垃圾收集器
JAVA-HotSpot JVM 内存管理 关于 JVM 内存管理或者说垃圾收集,大家可能看过很多的文章了,笔者准备给大家总结下。这算是系列的第一篇。 本文主要是翻译《Memory Management in the Java HotSpot Virtual Machine》白皮书的前四章内容,这是 2006 的老文章了,当年发布这篇文章的还是 Sun Microsystems,以后应该会越来越少人记得这家曾经无比伟大的公司了。 虽然这个白 2021-10-22 JAVA源码 JAVA 转载 JAVA源码 JVM
Vue基础知识-(一)入门 Vue(读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式JavaScript框架。与其它框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,方便与第三方库或既有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 目录学 2021-10-20 Vue Vue
hexo-博客迁移 目录防患于未然。还是记录一下博客怎么迁移吧,说不定换新电脑了呢,也怕后面遇到一些极端情况。 1.配置环境安装Git、Node.js、hexo环境。可见另一篇搭建教程。安装后进行查看版本。(Mac和Windows的有一点点区别) 123git versionnode -vhexo -v 2.备份将你原来电脑上已经配置好并生成的hexo目录拷到你的新电脑上,注意无需拷全部,只拷如下几个目录: 123 2021-10-20 学习教程 Hexo
Java实现Excel数据操作和导入导出 Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java对Microsoft Office格式档案读和写的功能。POI为“Poor Obfuscation Implementation”的首字母缩写,意为“简洁版的模糊实现”。 目录今天偶然看见一篇博文,写的是关于SpringBoot实现Excel导入导出。因为自己不会,然后就专门花了点 2021-10-19 工具使用 POI EasyExcel
CompletableFuture使用介绍 本文安利一个 Java8 的工具 CompletableFuture,这是 Java8 带来的一个非常好用的用于异步编程的类。还没使用过的小伙伴,赶紧用起来吧。 本文不介绍它的实现源码,仅介绍它的接口使用,本文也不做它和 RxJava 等其他异步编程框架的对比。 目录实例化首先,不管我们要做什么,我们第一步是需要构造出 CompletableFuture 实例。 最简单的,我们可以通过构造函数来进 2021-10-17 JAVA源码 JAVA 转载 JAVA源码
HashedWheelTimer使用及源码分析 本文介绍的 HashedWheelTimer 是来自于 Netty 的工具类,在 netty-common 包中。它用于实现延时任务。另外,下面介绍的内容和 Netty 无关。 如果你看过 Dubbo 的源码,一定会在很多地方看到它。在需要失败重试的场景中,它是一个非常方便好用的工具。 本文将会介绍 HashedWheelTimer 的使用,以及在后半部分分析它的源码实现。 目录接口概览在介绍它的 2021-10-17 JAVA源码 JAVA 转载 JAVA源码
Netty源码解析(九)connect过程和bind过程分析 Netty 源码分析系列: Netty 源码解析(一): 开始 Netty 源码解析(二): Netty 的 Channel Netty 源码解析(三): Netty 的 Future 和 Promise Netty 源码解析(四): Netty 的 ChannelPipeline Netty 源码解析(五): Netty 的线程池分析 Netty 源码解析(六): Channel 的 regis 2021-10-17 Netty源码 JAVA Netty源码 转载
Netty源码解析(八)回到Channel的register操作 Netty 源码分析系列: Netty 源码解析(一): 开始 Netty 源码解析(二): Netty 的 Channel Netty 源码解析(三): Netty 的 Future 和 Promise Netty 源码解析(四): Netty 的 ChannelPipeline Netty 源码解析(五): Netty 的线程池分析 Netty 源码解析(六): Channel 的 regis 2021-10-17 Netty源码 JAVA Netty源码 转载
Netty源码解析(七)NioEventLoop工作流程 Netty 源码分析系列: Netty 源码解析(一): 开始 Netty 源码解析(二): Netty 的 Channel Netty 源码解析(三): Netty 的 Future 和 Promise Netty 源码解析(四): Netty 的 ChannelPipeline Netty 源码解析(五): Netty 的线程池分析 Netty 源码解析(六): Channel 的 regis 2021-10-17 Netty源码 JAVA Netty源码 转载