- 博客(350)
- 资源 (4)
- 收藏
- 关注
原创 java.lang.*中Class 源代码详解【十】
Java类名获取方法Class.getName()详解:该方法返回Class实例所代表类型的全限定名称,采用"缓存优先+懒加载"设计优化性能。支持普通类(如java.lang.String)、基本类型(如int)、数组(如[Ljava.lang.String;)、匿名类(如Demo$1)等多种类型,返回格式严格遵循JVM规范。特别对于数组类型,采用特定编码规则(如[I表示int数组,[[D表示二维double数组)。该方法广泛应用于反射、日志等场景,是Java获取类名的标准方式。
2026-03-08 16:45:47
374
原创 java.lang.*中Class 源代码详解【九】
本文详细解析了Java反射API中的Class.isSynthetic()方法,该方法用于判断类是否为JVM自动生成的合成类。通过位运算检查修饰符中的SYNTHETIC标记位,能准确识别编译器或运行时生成的内部类、Lambda表达式、枚举辅助类等。文章从方法实现、核心概念、使用场景、代码示例等多个维度展开说明,重点阐述了合成类的特征及其在Java语言特性实现中的关键作用。该方法具有高效、精准的特点,是识别自动生成类的官方标准方式,为开发者提供了可靠的类型检查手段。
2026-03-07 17:30:34
432
原创 java.lang.*中Class 源代码详解【八】
本文详细解析了Java反射中Class.isAnnotation()方法的实现原理与应用场景。该方法通过位运算检查修饰符标记位,判断当前Class实例是否为注解类型(@interface定义的类型)。文章从方法签名、位运算原理、判断规则到实际应用示例,系统性地阐述了该方法在注解解析和框架开发中的关键作用,并特别区分了注解类型与注解实例的差异。示例代码展示了基础判断和反射解析注解的典型用法,为开发者正确使用该方法提供了实践指导。
2026-03-07 11:44:42
445
原创 java.lang.*中Class 源代码详解【七】
摘要:本文深入解析Java反射中Class.isInstance(Object obj)方法,该方法作为动态类型检查的核心工具,与instanceof关键字功能等价但具备运行期灵活性。方法通过native底层实现和@IntrinsicCandidate注解优化,实现高效类型判断。详细剖析了其类型匹配规则(包括类继承、接口实现、数组等场景)、null处理机制及性能优势,并对比静态类型检查的局限性。该方法特别适用于需要动态类型判断的框架开发场景,是Java反射体系的重要组成。
2026-01-30 00:25:21
649
原创 java.lang.*中Class 源代码详解【六】
摘要:本文详细解析了Java反射中Class类的newInstance()方法,该方法用于通过无参构造器创建类实例,但在Java 9后被标记为废弃。文章从注解含义、功能说明、异常类型和源码实现四个维度进行剖析,重点分析了其安全校验、构造器缓存、权限突破等核心机制,并指出该方法被Constructor.newInstance()替代的原因。源码解析部分展示了从权限检查到实例化全过程的实现细节,包括@CallerSensitive注解的作用、安全管理器检查和构造器缓存优化等关键技术点。
2026-01-29 20:22:35
646
原创 java.lang.*中Class 源代码详解【五】
Java类加载机制深度解析:Class.forName方法详解 本文深入剖析了Java中Class.forName(String name, boolean initialize, ClassLoader loader)方法的实现原理和设计思想。该方法作为Java反射类加载的核心方法,支持显式指定类加载器并控制类初始化行为,具有以下关键特性: 安全性设计:通过@CallerSensitive注解和SecurityManager实现权限校验,仅在安全管理器存在时获取调用者类信息,平衡安全与性能 灵活控制:允许
2026-01-28 22:39:24
845
原创 java.lang.*中Class 源代码详解【四】
本文详细解析了Java反射中Class.forName(String className)方法的实现机制。该方法通过全限定类名动态加载类,返回对应的Class对象。核心特性包括:使用@CallerSensitive注解获取真实调用者类,通过Reflection.getCallerClass()获取调用者上下文,并自动继承调用者的类加载器以保证一致性。实际加载逻辑由本地方法forName0实现,包含类查找、加载和初始化全流程。该方法设计简化了开发,避免了类加载器不一致导致的问题,是Java反射体系中的重要入口
2026-01-28 20:56:58
834
原创 十五五规划锚定数字强国:Java 程序员的时代机遇与行业新赛道
“十五五”规划将数字经济上升为国家战略,为Java程序员带来全新机遇。规划聚焦实体经济数字化转型、关键核心技术自主可控、新型数字基建和数字治理四大方向,均与Java技术优势高度契合。Java程序员可在信创适配、产业互联网、新型基建、数字政务、大数据与AI融合、云原生开发六大领域获得发展机会。行业呈现国产化升级、技术融合加速、人才需求向复合型转变等趋势,要求程序员具备国产化适配、分布式架构、跨技术融合等能力。Java技术生态将从跟随开源转向自主创新,成为数字经济发展的核心技术底座。
2026-01-28 00:20:21
1738
原创 java.lang.*中Class 源代码详解【三】
本文详细解析了Java Class类中的toGenericString()方法,该方法用于生成包含泛型信息的类型字符串表示。方法通过分支处理基本类型、数组和普通引用类型,逐步拼接修饰符、类型标识、类名、泛型参数和数组维度。核心逻辑包括:基本类型直接返回toString()结果;数组类型计算维度并提取组件类;普通类型处理修饰符、类型关键字(如interface/enum/record)和全限定名;最后补充泛型参数和数组维度。该方法相比toString()能提供更完整的类型信息,适用于日志和调试场景。
2026-01-27 23:18:55
571
原创 罗振宇2025年跨年演讲《时间的朋友》
2025年罗振宇“时间的朋友”跨年演讲在三亚举办,这是该系列第十一场演讲。整场演讲以“1000天后的世界”为核心主题,聚焦普通人未来三年的焦虑与机遇,用通俗语言和真实案例拆解“该担心什么、抓住什么、准备什么”,传递出“好消息藏在行动与现实深处”的核心主张,无晦涩大道理,全程围绕日常焦虑与成长路径展开。
2026-01-27 00:15:45
1295
原创 java.lang.*中Class 源代码详解【二】
本文详细解析了Java中Class类的toString()方法源码实现。该方法重写Object类的toString(),通过两层三元运算符判断类型身份(接口/基本类型/普通类),并拼接getName()返回的标准全限定名。核心依赖isInterface()、isPrimitive()和getName()三个方法,覆盖了Java所有类型(接口、基本类型、普通类、数组等)。设计上追求简洁高效,采用三元运算符而非if-else,确保高频调用时的性能。方法输出结果语义清晰,如"interface java
2026-01-26 23:32:43
745
原创 java.lang.*中Class 源代码详解【一】
1、私有性:访问修饰符为private,确保仅 JVM 内部可调用,杜绝开发者手动实例化Class对象,保证Class对象的唯一性(一个类 / 类型在 JVM 中仅有一个Class对象);2、数组类专属:专为数组类设计,非数组类的Class对象由 JVM 通过其他方式创建(如加载.class 文件时);3、final 字段初始化:完成classLoader这个final字段的赋值,符合 Java 语法规范,同时规避 JIT 优化的潜在问题;4、属性关联。
2026-01-26 22:48:16
853
原创 AI时代如何实现一人公司
AI时代一人公司运营指南:通过"碳基智慧+硅基执行"模式,利用AI工具弥补个人能力短板,实现高效运营。核心包括:1)法律合规基础,借助AI快速完成公司注册和文件准备;2)搭建AI工具矩阵,按业务模块配置专用工具;3)AI驱动的三大运营体系:财务独立、业务增长和决策升级。关键成功要素是深耕专业领域、掌握提示词工程和质量把控。AI时代的一人公司可实现低成本、高效率运营,突破个人能力限制,建议从垂直细分领域切入,逐步扩大规模。
2026-01-22 21:33:18
1411
原创 AI时代JAVA程序员需要学会哪些技能才不会被淘汰
本文探讨了AI时代下Java程序员如何保持竞争力,提出了三大核心技能方向:1)深化Java底层技术,包括JVM调优、高并发编程等不可替代的核心能力;2)掌握AI工具协作能力,如Prompt工程、AI辅助开发等;3)强化工程化思维,精通云原生、微服务技术栈,并提升业务架构能力。文章强调程序员需要将传统Java技能与AI工具结合,同时注重解决复杂业务问题的能力,这些是AI难以替代的关键竞争力。
2026-01-16 22:01:45
651
原创 Java.lang.*中StackOverFlowError源代码详解
本文详细解析了Java中的StackOverFlowError错误。该错误属于VirtualMachineError子类,表示JVM栈内存溢出导致程序终止。文章列举了5个典型应用场景:JVM调优测试、JVM学习实践、生产环境问题排查、算法健壮性测试以及框架兼容性验证。核心方法包括两个构造器:空参构造和带参构造,均通过调用父类方法实现。作为JVM栈溢出的典型表现,StackOverFlowError既是学习JVM内存模型的实践案例,也是排查递归调用等问题的关键信号。
2021-03-31 23:33:59
550
1
原创 java.lang.*中Class 源代码详解【总】
本文详细解析了Java.lang.Class类的核心功能与应用场景。Class类是Java反射机制的核心,用于描述类的元数据,支持动态编程。主要获取方式包括类名.class、对象.getClass()和Class.forName()。文章列举了6个典型应用场景:动态加载类(如JDBC驱动)、反射创建对象(Spring IOC核心)、动态调用方法、类型检查、注解解析以及数组/泛型处理。同时介绍了Class类的重要方法,包括类型判断(isInstance/isInterface等)、获取类信息(getName/
2021-01-08 15:49:14
512
原创 java.lang.*中Exception 源代码详解
java.lang.*中Exception 源代码详解Exception详解Exception的应用场景核心方法学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!Exception详解Exception异常是导致程序中断执行的一种指令流,如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失,所以在程序的设计中,必须要考虑各种异常的发生,并正确地做好相应的处理,这样才能保证程序的
2021-01-08 15:14:33
934
原创 Linux环境下项目部署常用命令
Linux环境下项目部署常用命令服务器后端部署jar包查看文件大小(KB、K)给用户授予目录权限查找/根目录下以java开头的文件通过zkCli客户端连接zk服务查看文件详细大小(KB)学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!服务器后端部署jar包nohup java -jar xxx.jar > /dev/null 2>&1 &查看文件大小(KB、K)
2021-01-07 16:52:50
404
原创 求递增最长子序列-非动态规划方式
求递增最长子序列-非动态规划方式实现解题思路演示过程代码实现打印效果学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!需求描述:给定一个int数组,【0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15】,求所有的递增最长子序列。解题思路1.从最后索引位置,往前遍历。2.每遍历一个元素,汇总当前组最长递增子序列。3.所有循环结束后,再
2020-12-25 14:32:14
505
原创 java.lang.*中Error 源代码详解
java.lang.*中Error 源代码详解Error详解Error的使用场景核心方法学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!Error详解Error的使用场景核心方法public Error() 构造方法public Error(String message)public Error(String message, Throwable cause)public Error
2020-12-24 16:51:48
1460
2
原创 java创建线程的四种方式
创建线程的四种方式创建线程的四种方式继承Thread类实现Runnable接口通过Executor框架来创建线程池,高效实现实现Callable接口学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!创建线程的四种方式1.继承Thread类(内有run方法、start方法、join方法)2.实现Runnable接口(只有run方法)3.通过Executor框架来创建线程池,高效实现(execu
2020-12-03 19:24:48
469
原创 解决java线程安全的五种方式
解决java线程安全的五种方式采用AtomicInteger等原子类使用synchronized同步方法使用synchronized代码块锁使用Lock锁使用Semaphore信号量学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!采用AtomicInteger等原子类java.util.concurrent.atomic.AtomicIntegerprivate AtomicInteger
2020-12-03 13:38:36
321
原创 java.lang.*中Throwable 源代码详解
java.lang.*中Throwable 源代码详解Throwable详解Throwable的使用场景核心方法学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!Throwable详解Throwable的使用场景核心方法public class Throwable implements Serializablepublic Throwable() 构造方法String getMessa
2020-11-27 11:12:16
1401
原创 java内存模型的三大特性
java内存模型的三大特性原子性可见性有序性学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!原子性可见性有序性...
2020-11-10 15:24:28
350
原创 java.lang.*中Enum 源代码详解
java.lang.*中Enum 源代码详解Enum详解Enum的使用场景核心方法学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!Enum详解Enum的使用场景核心方法public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializablef
2020-11-06 18:25:04
332
原创 java.lang.*中ThreadLocal 源代码详解
java.lang.*中ThreadLocal 源代码详解核心方法学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!核心方法public class ThreadLocal<T> T get()void set(T value)void remove()<S> ThreadLocal<S> withInitial(Supplier<? exte
2020-11-06 14:39:38
281
原创 最优组合算法
最优组合算法算法实现输出结果学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!需求:1.目标数组 {10,6,5,3,10,2,1,1,6,1,1}2.要求组合不能大于10,且组合最小算法实现/** * @Description: 最优组合算法 * @Author zengwei * @Date 2020-11-03-18:32 **/public class TheBest
2020-11-04 15:41:37
3323
原创 java关键字之final
java关键字之final学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!
2020-10-29 11:25:40
246
原创 java赋值传参的写法
java赋值的写法setPriority0(priority = newPriority)学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!public final void setPriority(int newPriority) { ThreadGroup g; checkAccess(); if (newPriority > MAX_PRIORITY || ne
2020-10-29 11:23:54
510
原创 java关键字之volatile
java关键字之volatile学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!
2020-10-28 10:50:59
243
原创 java.lang.*中Thread 源代码详解
java.lang.*中Thread 源代码详解核心方法学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!核心方法public class Thread implements Runnable {native Thread currentThread()native void yield()native void sleep(long millis)void sleep(long mi
2020-10-16 16:32:42
749
2
原创 java中String的可变参数
java中String的可变参数基本介绍可变参数特点源码引用场景应用加和处理参数校验学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!基本介绍可变参数JDK1.5增加了新特性,可变参数,适用于参数个数不确定,类型确定的情况,java把可变参数当做数组来处理。注意:可变参数必须位于最后一项。原因:当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个
2020-09-23 10:44:47
728
原创 java.lang.*中Character 源代码详解
java.lang.*中Character 源代码详解核心方法核心方法学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!public finalclass Character implements java.io.Serializable, Comparable<Character> {public Character(char value) 构造函数Character va
2020-09-22 16:58:09
758
原创 java.lang.*中Short 源代码详解
java.lang.*中Short 源代码详解核心方法核心方法学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!public final class Short extends Number implements Comparable<Short> {String toString(short s)short parseShort(String s, int radix)Sh
2020-09-22 10:38:59
523
原创 java.lang.*中Long 源代码详解
java.lang.*中Long 源代码详解核心方法学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!核心方法public final class Long extends Number implements Comparable<Long> {String toString(long i, int radix)String toUnsignedString(long i, i
2020-09-10 15:57:38
752
原创 java.lang.*中Integer 源代码详解
java.lang.*中Integer 源代码详解核心方法学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!核心方法String toString(int i, int radix)String toUnsignedString(int i, int radix)String toHexString(int i)String toOctalString(int i)String toBi
2020-09-02 16:42:30
418
原创 java.lang.*中Float 源代码详解
java.lang.*中Float 源代码详解核心方法学习Java的同学注意了!!!学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!核心方法public final class Float extends Number implements Comparable<Float> String toString(float f)String toHexString(float f)Float valueOf
2020-09-01 11:06:19
806
原创 Double类型数据之自动装解箱、加解密用途
Double类型数据之自动装解箱、加解密用途自动解箱(自动拆箱)测试代码输出结果自动装箱加解密用途自动解箱(自动拆箱)测试代码Double db = new Double(16);double db1 = 16.0;Double db3 = new Double(16);System.out.println("---------------------华丽的分割线---------------------");System.out.println(db == db1);//db发生了自动解箱动
2020-09-01 10:31:35
469
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅