为什么用元空间替代永久代?

  永久代和元空间都是 HotSpot 虚拟机中的概念,HotSpot 虚拟机是 Sun JDK 和 Open JDK 中自带的虚拟机,也是目前使用范围最广泛的 Java 虚拟机,当我们提到虚拟机时,大概率指的就是 HotSpot 虚拟机。  但从《Java 虚拟机规范》的层面来说,并没有所谓...

#
Java
#
java
分享:

Java实战:使用Hutool中的FileUtil操作文件笔记

  文件操作是每个项目中必备的一个模块,Hutool中的FileUtil类库封装了大多数文件操作,非常方便,今天给大家分享一下具体的使用示例。  1、pom.xml 导入依赖包  <dependency>              <groupId>c...

#
Java
#
java
分享:

四个Java死锁检测工具(图)

  线程竞争的资源可以是:锁、网络连接、通知事件,磁盘、带宽,以及一切可以被称作“资源”的东西。  在程序执行的时候,难免会遇到死锁的情况。  下面介绍一下如何排查Java中的死锁线程。  先来个死锁的例子:  import java.util.concurrent.T...

#
Java
#
java
分享:

在Java的继承中,你是否有这样的疑惑?(图)

  一、问题  最近在写代码,有两个属性很相近的类,其中80%的属性(字段)都是一样的,剩下的才是各自不一样的,在设计的时候,采用了继承的方式,抽象除了一个父类,大概如下,  有FirstChild和SecondChild两个类,因为其中的属性name、code等是相同的...

#
Java
#
java
分享:

异步中I/O的难点详解

  其实异步的I/O的难点与不适,在NodeJs、甚至JavaScript中有着很具体的体现。  异常处理难  在处理异常时,我们经常使用try/catch/final的语句块进行异常捕获,但这对于异步编程不太实用。我们来看书中的一个经典示例。var async = function(callba...

什么是零拷贝, 从 Java 到 Netty(图)

  什么是零拷贝  零拷贝是指计算机在执行IO操作的时候, CPU不需要将数据从一个存储区复制到另一个存储区, 进而减少上下文切换以及 CPU 拷贝的时间, 这是一种IO操作优化技术  零拷贝不是没有拷贝数据, 而是减少用户态, 内核态的切换次数 和 CPU拷贝次...

#
Java
#
java
分享:

Java中synchronized的底层实现原理(图)

  一、对象头、Mark Word、monitor、synchronized怎么关联起来  (1)首先java里面每个对象JVM底层都会为它创建一个监视器monitor,这个是JVM层次为我们保证的。这个监视器就类似一个锁,哪个线程持有这个monitor的操作权,就相当于获取到了锁  (2)...

#
Java
分享:

Java中Random VS ThreadLocalRandom性能比较(图)

  前言  大家项目中如果有生成随机数的需求,我想大多都会选择使用Random来实现,它内部使用了CAS来实现。实际上,JDK1.7之后,提供了另外一个生成随机数的类ThreadLocalRandom,那么他们二者之间的性能是怎么样的呢?  Random的使用  Random类是J...

#
Java
#
java
分享:

有哪些方法可以快速把网站都变成灰色?

  有些时候我们需要把网站页面变成黑白色或灰色,特别是对于一些需要悼念的日子,以及一些影响力很大的伟人逝世或纪念日的时候,都会让网站的全部网页变成灰色(黑白色),以表示我们对逝者或者英雄的缅怀和悼念。  当大家看到全站的内容都变成了灰色,...

#
开发
分享:

Java 中如何实现一个像 String 一样不可变的类?(图)

  如果问你在日常开发中用到的最多的一个 Java? 类是什么,阿粉敢打赌绝对是 String.class?。说到 String? 大家都知道 String 是一个不可变的类;虽然用的很多,那不知道小伙伴们有没有想过怎么样创建一个自己的不可变的类呢?这篇文章阿粉就带大家来实践...

#
Java
#
java
分享:

Java 中九种 Map 的遍历方式(图)

  日常工作中 Map 绝对是我们 Java 程序员高频使用的一种数据结构,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,你经常使用的是哪一种?  通过 entrySet 来遍历  1、通过 for 和 map.entrySet() 来遍历  第一种方式是采用 for 和 M...

#
Java
#
java
分享:

使用 Java 将图像文件转换为 GIF 或 WebP 格式

  了解如何将数十种常见的图像文件类型(包括但不限于 PNG 和 JPG)分别转换为 GIF 和 WebP 格式。  如果我们准备在线为特定目的重新格式化图像,我们选择的新格式需要准确反映我们设想的用例。否则,我们会在不经意间扼杀我们自己的效率,最重要的是,冒...

#
Java
分享:

从0学Java之For循环(图)

  这篇文章的内容将讲解以下知识点:  for循环和while循环区别  ①for循环和while循环区别  · for(初始动作;条件;每轮的动作){}  · for中的每一个表达式都是可以省略的  · for(条件;)==while(条件)  案例:阶乘  写...

#
Java
分享:

举个例子告诉你,Java中如何实现回调函数(图)

  最近工作需要研究了一会别人写的库,其中充满着各种"回调函数",因此把自己理解给记录下来,存档。  首先我们来看看回调函数 这个概念的具体由来,百度百科的示义如下:  回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为...

#
Java
分享:

解决Java并发可见性问题,Volatile闪亮登场(图)

  场景引入,问题初现  很多同学出去面试,都会被问到一个常见的问题:说说你对volatile的理解?  不少初出茅庐的同学可能会有点措手不及,因为可能就是之前没关注过这个。但是网上百度一下呢,不少文章写的很好,但是理论扎的太深,文字太多,图太少...

#
Java
分享:

Java 数据结构与算法中的字典树,你学会了吗?(图)

  一、前言  Trie 的历史  字典树 Trie 这个词来自于 retrieval,于 1912 年,Axel Thue 首次抽象地描述了一组字符串数据结构的存放方式为 Trie 的想法。这个想法于 1960 年由 Edward Fredkin 独立描述,并创造了 Trie 一词。你看看,多少程序员为了...

#
Java
分享:

Java 远程调用失败?如何优雅的进行重试?(图)

  在日常开发的过程中我们经常会需要调用第三方组件或者数据库,有的时候可能会因为网络抖动或者下游服务抖动,导致我们某次查询失败。  这种时候我们往往就会进行重试,当重试几次后依旧还是失败的话才会向上抛出异常进行失败。接下来阿粉就给大家演示...

#
Java
分享:

聊聊 Java 数据结构与算法中的堆最小堆和最大堆(图)

  一、前言  堆的历史  堆的数据结构有很多种体现形式,包括;2-3堆、B堆、斐波那契堆,而在 Java API 中最常用的是用于实现优先队列的二叉堆,它是由 JWJ Williams 在 1964 年引入的,作为堆排序算法的数据结构。另外在 Dijkstra 算法等几种高效的图...

#
Java
分享:

聊一聊 Java 面向对象(图)

  前言  在之前的文章中,讲到了面向的 3 大特性(封装、继承、多态)和面向对象设计的 5 大原则(SRP、OCP、LSP、DIP、ISP)。此外,我们还讲了如何创建一个类,并且在创建类后如何构造一个对象。然后还介绍了类中的属性和方法,并对构造方法和引用也...

#
Java
分享:

Java 服务 Docker 容器化优秀实践

  一、概述  当我们在容器中运行 Java 应用程序时,可能希望对其进行调整参数以充分利用资源。  在本教程中,我们将了解如何在运行 Java 进程的容器中设置 JVM 参数。本文将重点关注常见的 -Xmx 和-Xms 标志。  另外,我们还将研究使用某些 Java 版...

#
Java
分享:
分享到朋友圈
打开微信,点击底部的“发现”,
使用“扫一扫”即可将网页分享至朋友圈。

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号