![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 84
NormalConfidence_Man
这个作者很懒,什么都没留下…
展开
-
【Spring源码】1.1 BeanFactory和ApplicationContext
阅读前须知:需要有一定Spring基础和Spring实践经验。原创 2024-05-05 20:35:37 · 875 阅读 · 0 评论 -
【JVM】内存分配和回收的策略
Java的自动内存管理最根本的目标是自动化地解决两个问题:自动给对象分配内存以及自动回收分配给对象的内存。下面我们就来探讨常用的HotSpot虚拟机默认的内存分配和回收策略。原创 2023-04-10 18:13:40 · 140 阅读 · 0 评论 -
【JVM】垃圾收集器GC详解
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里 面的人却想出来。在Java管理的内存中,Java的程序计数器、虚拟机栈、本地方法栈由于是随线程而生,也随着线程结束而回收的,因此其内存区域管理有着相当的确定性。Java堆和方法区这两个区域则有着很显著的不确定性:一个接口的多个实现类需要的内存可能会不一样,一个方法所执行的不同条件分支所需要的内存也可能不一样,只有处于运行期间,我们才能知道程序究竟会创建哪些对象,创建多少个对象,这部分内存的分配和回收是动态的。原创 2023-03-14 22:09:16 · 488 阅读 · 0 评论 -
【Java】使用反射获取类的信息
使用Class对象中的getFields()来获取public属性的变量,而getDeclaredFields()可以获取全部属性,另外,使用c1.getField(String name)来获取特定的属性,当然,如果属性是私有的,则使用getDeclaredField(String name)使用Class对象中的getMethods()来获取public属性的方法,需要注意的是,这个方法除了会获取本类的方法,同时也会获取其继承的父类的方法。使用Class对象中的getName()获取包名+类名;原创 2023-03-07 11:33:02 · 1575 阅读 · 0 评论 -
【Java】注解和反射机制详解
使用@interface自定义注解的时候,会自动集成java.lang.annotation.Annotation接口注解使用@interface来声明方法名称就是参数名称返回值就是参数类型(返回值只可以是基本类型,Class,String,enum)可通过default声明参数默认值如果只有一个参数,默认使用value()命名该参数,此时使用该注解的时候可以不写参数名,示例如下。原创 2023-03-06 22:28:42 · 309 阅读 · 0 评论 -
【JVM】详解Java内存区域和分配
C/C++需要自行回收和释放已经没用的对象,但是对于Java程序员来说,在虚拟机自动内存管理机制的帮助下, 不再需要为每一个new操作去写对应的free代码,就如同吃完饭之后不需要自己收拾盘子一样。看起来一切都师范的美好,但是一旦出现内存泄漏和溢出,如果不了解虚拟机是如何使用内存的,那么排查错误、纠正问题就会是一个艰难的问题。原创 2023-03-03 00:21:51 · 659 阅读 · 0 评论 -
Java多线程简述
运行的程序就是进程,比如说一个QQ,一个IDE,一个视频播放程序 一个进程内有多个线程,比如说在视频播放器中,一个线程负责播放声音,一个线程负责播放画面,而另外一个线程负责字幕。 main函数就是主线程 ,是程序的入口,用于执行整个程序 在程序运行的时候,即使没有自行创建进程,后台也会有多个线程,比如gc进程 线程的创建 Thread类 继承Thread类 重写run()方法,编写程序体 创建线程对象,调用start()方法启动线程 使用start()启动线程之后,该线程会和调用者线程开始同时执行;但是原创 2022-05-08 10:13:17 · 137 阅读 · 0 评论