- 最近在学习Java多线程设计的时候,在网上看到一个面试题目的讨论,虽然楼主所说有些道理,但感觉还是有些问题,故此在和同事讨论以后还是有了若干收获,在此略作总结。 首先,来看看这个面试题目吧。 public class MyStack { private List<String> list = new ArrayList<String>(); ... 最近在学习Java多线程设计的时候,在网上看到一个面试题目的讨论,虽然楼主所说有些道理,但感觉还是有些问题,故此在和同事讨论以后还是有了若干收获,在此略作总结。 首先,来看看这个面试题目吧。 public class MyStack { private List<String> list = new ArrayList<String>(); ...
- 1 概述 JVM : Java Virtual Machine ,也就是Java虚拟机。 虚拟机是指:通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的计算机系统。 JVM是通过软件来模拟Java字节码的指令集,是Java程序的运行环境。 2 JVM核心架构设计 核心功能 通过ClassLoader 寻找和装载class文件解释字节码成为指令并执行... 1 概述 JVM : Java Virtual Machine ,也就是Java虚拟机。 虚拟机是指:通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的计算机系统。 JVM是通过软件来模拟Java字节码的指令集,是Java程序的运行环境。 2 JVM核心架构设计 核心功能 通过ClassLoader 寻找和装载class文件解释字节码成为指令并执行...
- 栈Stack 堆栈是“后进先出”(LIFO)集合。它有时被称为叠加栈(pushdown stack),因为最后“压入”(push)栈的元素,第一个被“弹出”(pop)栈。经常用来类比栈的事物是带有弹簧支架的自助餐厅托盘。最后装入的托盘总是最先拿出来使用的。 Java 1.0 中附带了一个 Stack 类,结果设计得很糟糕(为了向后兼容,永远坚持 Java ... 栈Stack 堆栈是“后进先出”(LIFO)集合。它有时被称为叠加栈(pushdown stack),因为最后“压入”(push)栈的元素,第一个被“弹出”(pop)栈。经常用来类比栈的事物是带有弹簧支架的自助餐厅托盘。最后装入的托盘总是最先拿出来使用的。 Java 1.0 中附带了一个 Stack 类,结果设计得很糟糕(为了向后兼容,永远坚持 Java ...
- 1 当反射遇到方法重载 重载grade方法,入参分别是int和Integer。 不通过反射,选用哪个重载方法很清晰,比如传入666走int参数重载方法,传入Integer.valueOf(“666”)走Integer重载。 但你若墨守成规认为反射调用方法也是根据入参类型确定方法重载。 使用getDeclaredMethod获取 grade方法,然后传入Intege... 1 当反射遇到方法重载 重载grade方法,入参分别是int和Integer。 不通过反射,选用哪个重载方法很清晰,比如传入666走int参数重载方法,传入Integer.valueOf(“666”)走Integer重载。 但你若墨守成规认为反射调用方法也是根据入参类型确定方法重载。 使用getDeclaredMethod获取 grade方法,然后传入Intege...
- 0 Edit 与Command模式中的Command类似的一个概念。Command模式将操作的执行逻辑封装到一个个Command对象中,解耦了操作发起者和操作执行逻辑之间的耦合关系:操作发起者要进行一个操作,不用关心具体的执行逻辑,只需创建一个相应的Command实例,调用它的执行接口即可。 而在swing中,与界面交互的各种操作,比如插入,删除等被称之为Edit,实... 0 Edit 与Command模式中的Command类似的一个概念。Command模式将操作的执行逻辑封装到一个个Command对象中,解耦了操作发起者和操作执行逻辑之间的耦合关系:操作发起者要进行一个操作,不用关心具体的执行逻辑,只需创建一个相应的Command实例,调用它的执行接口即可。 而在swing中,与界面交互的各种操作,比如插入,删除等被称之为Edit,实...
- 0 前言 全是干货的技术殿堂 文章收录在我的 GitHub 仓库,欢迎Star/fork: Java-Interview-Tutorial https://github.com/Wasabi1234/Java-Interview-Tutorial 自动装箱和拆箱从Java 1.5开始引入,目的是将原始类型值转自动地转换成对应的对象。自动装箱与拆箱的机制可... 0 前言 全是干货的技术殿堂 文章收录在我的 GitHub 仓库,欢迎Star/fork: Java-Interview-Tutorial https://github.com/Wasabi1234/Java-Interview-Tutorial 自动装箱和拆箱从Java 1.5开始引入,目的是将原始类型值转自动地转换成对应的对象。自动装箱与拆箱的机制可...
- 接口只是定义了一个标准,很多类可以实现这个接口: List list = new ArrayList(); // 实例化的是ArrayList这个类 List list = new Vector(); // 实例化的是Vector这个类 12 其中:ArrayList 和 Vector 这两个类都实现了List接口 A instanceof B 的作用: 1、 对... 接口只是定义了一个标准,很多类可以实现这个接口: List list = new ArrayList(); // 实例化的是ArrayList这个类 List list = new Vector(); // 实例化的是Vector这个类 12 其中:ArrayList 和 Vector 这两个类都实现了List接口 A instanceof B 的作用: 1、 对...
- 1 概念 1.1 任务 - Mission JaCoCo应该为基于Java VM的环境中的代码覆盖率分析提供标准技术。重点是提供一个轻量级,灵活且文档齐全的库,以与各种构建和开发工具集成。 有几种适用于Java的开源覆盖技术。在实现Eclipse插件EclEmma时,观察到它们都不是真正为集成而设计的。它们中的大多数特别适合特定工具(Ant任务,命令行,... 1 概念 1.1 任务 - Mission JaCoCo应该为基于Java VM的环境中的代码覆盖率分析提供标准技术。重点是提供一个轻量级,灵活且文档齐全的库,以与各种构建和开发工具集成。 有几种适用于Java的开源覆盖技术。在实现Eclipse插件EclEmma时,观察到它们都不是真正为集成而设计的。它们中的大多数特别适合特定工具(Ant任务,命令行,...
- Java Instrument有什么作用? 使开发者可以构建一个独立于应用程序的代理程序Agent,用来监控和协助运行在JVM上的程序,更重要的是能够替换和修改某些类的定义; 最大的作用:可以实现一种虚拟机级别支持的AOP实现方式; 在JDK 1.5 、1.6中,Java Instrument做了哪些变动支持? JDK 1.5:支持静态Instrument,就是... Java Instrument有什么作用? 使开发者可以构建一个独立于应用程序的代理程序Agent,用来监控和协助运行在JVM上的程序,更重要的是能够替换和修改某些类的定义; 最大的作用:可以实现一种虚拟机级别支持的AOP实现方式; 在JDK 1.5 、1.6中,Java Instrument做了哪些变动支持? JDK 1.5:支持静态Instrument,就是...
- 1 不同环境的排查思路 1.1 Dev 可以随意使用任何熟悉的工具排查。只要问题能重现,排查就不会太难,最多就是把程序调试到各种框架源码,所以这也是为何面试都会问源码,不求都看过,但要有思路知道如何去看能解决问题。 1.2 Test 比开发环境少了debug,不过也可使用jvisualvm或Arthas,附加到远程JVM进程。 还有测试环境是允许造数据来模拟我... 1 不同环境的排查思路 1.1 Dev 可以随意使用任何熟悉的工具排查。只要问题能重现,排查就不会太难,最多就是把程序调试到各种框架源码,所以这也是为何面试都会问源码,不求都看过,但要有思路知道如何去看能解决问题。 1.2 Test 比开发环境少了debug,不过也可使用jvisualvm或Arthas,附加到远程JVM进程。 还有测试环境是允许造数据来模拟我...
- 我的人生就像在白夜里走路。 ——东野圭吾《白夜行》 0 前言 上篇我们分析了HashSet,它是组合了 HashMap 实现的,那TreeSet会是怎么实现的呢?没错!组合 TreeMap 实现. 1 继承体系 继承了抽象类AbstracSet,方便扩展实现的 SortedSet,解锁如下方法实现 NavigableSet 接口,和 Navigabl... 我的人生就像在白夜里走路。 ——东野圭吾《白夜行》 0 前言 上篇我们分析了HashSet,它是组合了 HashMap 实现的,那TreeSet会是怎么实现的呢?没错!组合 TreeMap 实现. 1 继承体系 继承了抽象类AbstracSet,方便扩展实现的 SortedSet,解锁如下方法实现 NavigableSet 接口,和 Navigabl...
- org.apache.ibatis.annotations包下有着 mybatis 所有的注解,让我们一文打尽! 1 @Mapper MyBatis映射器的标记接口 从mybatis3.4.0开始加入了@Mapper注解,目的就是为了不再写mapper映射文件 但是源码中并没有对于这个注解的详细解释 添加了@Mapper注解之后这个接口在编译时会生成相应的实... org.apache.ibatis.annotations包下有着 mybatis 所有的注解,让我们一文打尽! 1 @Mapper MyBatis映射器的标记接口 从mybatis3.4.0开始加入了@Mapper注解,目的就是为了不再写mapper映射文件 但是源码中并没有对于这个注解的详细解释 添加了@Mapper注解之后这个接口在编译时会生成相应的实...
- 字节码助记符指令含义0x00nopNone0x01aconst_null将null推送至栈顶0x02iconst_m1将int型-1推送至栈顶0x03iconst_0将int型0推送至栈顶0x04iconst_1将int型1推送至栈顶0x05iconst_2将int型2推送至栈顶0x06iconst_3将int型3推送至栈顶0x07iconst_4将int型4推送至栈顶0x0... 字节码助记符指令含义0x00nopNone0x01aconst_null将null推送至栈顶0x02iconst_m1将int型-1推送至栈顶0x03iconst_0将int型0推送至栈顶0x04iconst_1将int型1推送至栈顶0x05iconst_2将int型2推送至栈顶0x06iconst_3将int型3推送至栈顶0x07iconst_4将int型4推送至栈顶0x0...
- 对类的植入锁定进行判断 几个可以对覆盖率跟踪的Java类定义进行instrument的API public byte[] instrument(final ClassReader reader) { final ClassWriter writer = new ClassWriter(reader, 0) { @Override protected String... 对类的植入锁定进行判断 几个可以对覆盖率跟踪的Java类定义进行instrument的API public byte[] instrument(final ClassReader reader) { final ClassWriter writer = new ClassWriter(reader, 0) { @Override protected String...
- 暴力的直接Map对象toString()存,后面取出是就是用再转换为Map String转Map: JSONObject jsonobject = JSONObject.fromObject(str); rMap = (Map<String, Object>) jsonobject; 12 但很多时候并不能直接将Map对象的toString() 而是应... 暴力的直接Map对象toString()存,后面取出是就是用再转换为Map String转Map: JSONObject jsonobject = JSONObject.fromObject(str); rMap = (Map<String, Object>) jsonobject; 12 但很多时候并不能直接将Map对象的toString() 而是应...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中 -
一个AI团队帮你写代码:华为云码道Agent Space实战2026/06/25 周四 19:00-21:00
张翰文-华为云码道工程师/郭英旭-青软创新科技集团股份有限公司 软件架构师
本场直播聚焦华为云码道Agent Space两大模式:研发办公、代码开发,亲身体验从需求到代码的AI自动化能力。实操演示基于华为 CodeArts CLI,依托 OpenSpec 规格体系从零搭建业务项目。
回顾中
热门标签