- #JAVA 年轻代收集器 继续上一篇博文所讲的,STW即GC时候的停顿时间,他会暂停我们程序中的所有线程。如果STW所用的时间长而且次数多的话,那么我们整个系统稳定性以及可用性将大大降低。 因此我们在必要的时候需要对虚拟机进行调优,调优的主要目标之一就是降低STW的时间,也就是减少Full GC的次数。那么这里我们从调优的角度来分析各个收集器的优势与不足。 ... #JAVA 年轻代收集器 继续上一篇博文所讲的,STW即GC时候的停顿时间,他会暂停我们程序中的所有线程。如果STW所用的时间长而且次数多的话,那么我们整个系统稳定性以及可用性将大大降低。 因此我们在必要的时候需要对虚拟机进行调优,调优的主要目标之一就是降低STW的时间,也就是减少Full GC的次数。那么这里我们从调优的角度来分析各个收集器的优势与不足。 ...
- 通过Set对基本类型进行去重 在API开发过程中,我们经常会遇到需要对接口参数中的集合进行重复校验的场景,这些集合可能是基本数据类型,也可能是Java Bean对象。如果是基本类型,我们可以单纯通过将接收集合设置为Set来实现去重,下面我来展示一下如何通过Set的形式实现最简单的请求参数去重。 首先在接收参数的Bean中声明待去重集合testSet<String>:... 通过Set对基本类型进行去重 在API开发过程中,我们经常会遇到需要对接口参数中的集合进行重复校验的场景,这些集合可能是基本数据类型,也可能是Java Bean对象。如果是基本类型,我们可以单纯通过将接收集合设置为Set来实现去重,下面我来展示一下如何通过Set的形式实现最简单的请求参数去重。 首先在接收参数的Bean中声明待去重集合testSet<String>:...
- Java多线程讲解 前言 接到菜鸟网络的电话面试,面试官让自己谈一下自己对多线程的理解,现将其内容整理如下。 线程生命周期 Java线程具有五种基本状态 新建状态(New):当线程对象创建后,即进入了新建状态,如:Thread t = new MyThread... Java多线程讲解 前言 接到菜鸟网络的电话面试,面试官让自己谈一下自己对多线程的理解,现将其内容整理如下。 线程生命周期 Java线程具有五种基本状态 新建状态(New):当线程对象创建后,即进入了新建状态,如:Thread t = new MyThread...
- “java越来越过份了。” php狠狠的说,他转头看着C:“C哥,您可是前辈,java最近砸了我不少场子,您老再不出来管管,我怕他眼里就没有您了啊。” C哥吸烟,慢慢的说:“年轻人不要着急,java的根在我们这里,再怎么折腾,也还是自己人啊,不像nodejs,非我族类,其心必异,我可是听说,nodejs也抢了你不少地盘啊?” “嘿嘿,nodejs就是小打小闹,小... “java越来越过份了。” php狠狠的说,他转头看着C:“C哥,您可是前辈,java最近砸了我不少场子,您老再不出来管管,我怕他眼里就没有您了啊。” C哥吸烟,慢慢的说:“年轻人不要着急,java的根在我们这里,再怎么折腾,也还是自己人啊,不像nodejs,非我族类,其心必异,我可是听说,nodejs也抢了你不少地盘啊?” “嘿嘿,nodejs就是小打小闹,小...
- 大话设计模式(三)动态代理设计模式 Java动态代理类位于Java.lang.reflect包下,一般主要涉及到以下两个类: (1)interface InvocationHandler:该接口中仅定义了一个方法Object:invoke(Object obj,Method method, Object[] args)。在实际使用时,第一个参数... 大话设计模式(三)动态代理设计模式 Java动态代理类位于Java.lang.reflect包下,一般主要涉及到以下两个类: (1)interface InvocationHandler:该接口中仅定义了一个方法Object:invoke(Object obj,Method method, Object[] args)。在实际使用时,第一个参数...
- 不知道大家在平时用到注解的频率多不多,注解对我们的帮助很大,能为我们节省很多工作。最直接的就是可以代替配置文件的功能,无论是基本的servlet还是常用的三大框架,里面都使用了注解,并且逐渐的代替了原本繁琐的配置,大大提高了编码效率。 随着注解使用的越来越频繁,我们对底层实现的了解越来越少,所以在这一章我们来好好了解一下注解是怎么实现的。 首先注解是什么?通俗的意思... 不知道大家在平时用到注解的频率多不多,注解对我们的帮助很大,能为我们节省很多工作。最直接的就是可以代替配置文件的功能,无论是基本的servlet还是常用的三大框架,里面都使用了注解,并且逐渐的代替了原本繁琐的配置,大大提高了编码效率。 随着注解使用的越来越频繁,我们对底层实现的了解越来越少,所以在这一章我们来好好了解一下注解是怎么实现的。 首先注解是什么?通俗的意思...
- Spring实现依赖注入的Java底层技术是Java反射技术。 ICO:Spring容器的内核,AOP、声明式事务等功能都基于此产生。 ICO不够开门见山,所以后期由Martin Fowler用DI,依赖注入的概念代替了IoC,让调用类对某一接口实现类的依赖由第三方(容器或者协作类)注入,从而移除调用类对某一接口实现类的依赖。 注入方式可以划分为三种类型:构造函数... Spring实现依赖注入的Java底层技术是Java反射技术。 ICO:Spring容器的内核,AOP、声明式事务等功能都基于此产生。 ICO不够开门见山,所以后期由Martin Fowler用DI,依赖注入的概念代替了IoC,让调用类对某一接口实现类的依赖由第三方(容器或者协作类)注入,从而移除调用类对某一接口实现类的依赖。 注入方式可以划分为三种类型:构造函数...
- #Java进阶(五十六)-IntelJ IDEA 将java项目打包成jar及引用外部包 ##打包成Jar 首先要保证自己的Java代码是没有问题的,在IDEA里面是可以正常运行的,然后,按下面步骤: 1.打开File -> Project Structure -> Artifacts,如下图 点击“+”,选择“Jar”,选择Empty或Fro... #Java进阶(五十六)-IntelJ IDEA 将java项目打包成jar及引用外部包 ##打包成Jar 首先要保证自己的Java代码是没有问题的,在IDEA里面是可以正常运行的,然后,按下面步骤: 1.打开File -> Project Structure -> Artifacts,如下图 点击“+”,选择“Jar”,选择Empty或Fro...
- 在开发时,遇到了下面这条语句,不懂,然习之。 private List<MyZhuiHaoDetailModel> listLottery = new ArrayList<MyZhuiHaoDetailModel>(); Gson gson=new Gson(); JSONObject object=new JSONObject(callbackValue)... 在开发时,遇到了下面这条语句,不懂,然习之。 private List<MyZhuiHaoDetailModel> listLottery = new ArrayList<MyZhuiHaoDetailModel>(); Gson gson=new Gson(); JSONObject object=new JSONObject(callbackValue)...
- 栈、堆、常量池等虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同。本文将深入Java核心,简单讲解Java内存分配方面的知识。 首先我们先来讲解一下内存中的各个区域。 stack(栈) 存放基本类型的数据和对象的引用,即存放变量。 如果存放的是基本类型数据(非静态变量),则直接将变量名和值存入stack中的内存中; ... 栈、堆、常量池等虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同。本文将深入Java核心,简单讲解Java内存分配方面的知识。 首先我们先来讲解一下内存中的各个区域。 stack(栈) 存放基本类型的数据和对象的引用,即存放变量。 如果存放的是基本类型数据(非静态变量),则直接将变量名和值存入stack中的内存中; ...
- #JVM进阶(十)——JAVA 年老代收集器 在上一篇博文我们介绍了JAVA新生代收集器,本篇博文我们要讲的就是关于老年代的一些收集器。老年代存活的一般是大对象以及生命很顽强的对象,因此新生代的复制算法很明显不能适应该区域的特性,所以老年代采用的是“标记-清除-整理”算法(以前的博文有详细讨论过)。 Serila Old收集器:该收集器是Serial收集器的老年代... #JVM进阶(十)——JAVA 年老代收集器 在上一篇博文我们介绍了JAVA新生代收集器,本篇博文我们要讲的就是关于老年代的一些收集器。老年代存活的一般是大对象以及生命很顽强的对象,因此新生代的复制算法很明显不能适应该区域的特性,所以老年代采用的是“标记-清除-整理”算法(以前的博文有详细讨论过)。 Serila Old收集器:该收集器是Serial收集器的老年代...
- Java进阶(三十七)java 自动装箱与拆箱 前言 这个是jdk1.5以后才引入的新的内容。java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装称为装箱,解包装称为拆箱); 其实按照我自己的理解自动装箱就可以简单的理解为将基本数据类型封装为对象类型,来符合... Java进阶(三十七)java 自动装箱与拆箱 前言 这个是jdk1.5以后才引入的新的内容。java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装称为装箱,解包装称为拆箱); 其实按照我自己的理解自动装箱就可以简单的理解为将基本数据类型封装为对象类型,来符合...
- 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如下图所示。 下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流。 范例:使用字节流不关闭执行 import java... 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如下图所示。 下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流。 范例:使用字节流不关闭执行 import java...
- 几大类 碎片时间利用 极客时间 MySql 46讲 - 同时注重自我实现与反思,结合实际的工作内容进行验证 极客时间Java 核心技术36讲 基础夯实 Java核心技术卷I - 粗略浏览,查漏补缺 Effective Java - 提升 方法论 重构 - 提升代码水平和代码能力 TODO: 整理设计模式的所学笔记 通过key promote X加强对Idea... 几大类 碎片时间利用 极客时间 MySql 46讲 - 同时注重自我实现与反思,结合实际的工作内容进行验证 极客时间Java 核心技术36讲 基础夯实 Java核心技术卷I - 粗略浏览,查漏补缺 Effective Java - 提升 方法论 重构 - 提升代码水平和代码能力 TODO: 整理设计模式的所学笔记 通过key promote X加强对Idea...
- Java进阶(三十六)深入理解Java的接口和抽象类 前言 对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。 抽象类 在了解抽象类之... Java进阶(三十六)深入理解Java的接口和抽象类 前言 对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。 抽象类 在了解抽象类之...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签