java
Linky1990
这个作者很懒,什么都没留下…
展开
-
实体类、列表 和 管理类
实体类首先要有实体类,用来保存数据。用于表示领域信息,状态信息、动作信息、环境变量信息等。比如 Student、Teacher、Status 等实体类列表只有一个实体类往往缺乏扩展性,而拥有一个实体集合类,则可以兼容单个实体,同时拥有扩展性,所以需要一个实体类列表。比如 List<Student>、List<Teacher> 等。对列表的管理(增删改查)列表往往无法管理自身,只能被调用者管理,但是将这种管理权交给调用者是不安全的,所以需要一个统一管理的地方,并对外提供管理接原创 2022-02-19 16:53:19 · 621 阅读 · 0 评论 -
为什么 JVM 不能确保所有垃圾都会被回收?
垃圾回收垃圾回收包含两个步骤,1、标记哪些内存是垃圾;2、内存回收一、标记算法1、引用计数算法 - 经典算法,但没有 JVM 采用 堆中的每个对象都有一个引用计数器,根据引用计数是否等于零来判断是否需要被回收; 优点:判断是否需要回收的效率高,不需要额外的线程做 GC 的工作; 缺点:无法识别循环引用的情况,增加额外开销;2、根搜索标记算法步骤:第一步:获取不可...原创 2020-09-05 17:15:47 · 502 阅读 · 0 评论 -
java 虚拟机如何分配线程的内存区域
JVM 内存区1、程序计数器保存每个线程当前执行到的字节码的位置program_counter[0] = 0x12DFEDprogram_counter[1] = 0xAb45EEprogram_counter[2] = 0xFBED3A2、Java 栈每个线程都有一个独立的 Java 栈,栈由栈帧组成,每个方法都是一个栈帧;栈帧的组成 1、操作数栈:operator_num_stack = stack() 2、运行时常量池:ref = rt_stack_pool() 3、方法原创 2020-09-05 13:08:24 · 422 阅读 · 0 评论 -
java 类对象 反射 Class 注解
创建对象的两种方式1、通过 new 关键字Student stu = new Student()2、通过 Class类对象方法Class<?> clazz = Class.forName("com.test.Student")// 有默认构造函数Student stu = clazz.newInstance();// 无 默认构造函数Student stu =...原创 2020-03-05 14:04:52 · 182 阅读 · 0 评论 -
java 多线程关键字
关键字描述volatile对变量的改变立即更新到主存储器wait()释放掉锁进入等待状态,此时需要通过notify或者中断来唤醒synchronized(lock)获得 lock 后才能执行{ }内的代码块,否则跳过notifyAll / notifynotify 只能唤醒一个 wait 中的线程,notifyAll 则唤醒所有 wait 中的线程...原创 2020-03-05 13:53:57 · 156 阅读 · 0 评论 -
Java ArrayList toArray() 方法的正确使用
参考:http://blog.sina.com.cn/s/blog_40585f8d0100058e.htmlArrayList.toArray() 的正确使用方式如下:public static void main(String arg[]) { ArrayList<Integer> integers = new ArrayList<>(); integers.add原创 2016-05-11 17:07:03 · 10204 阅读 · 0 评论 -
使用 java 命令编译运行 java 程序
众所周知,java 编译的过程,就是将 java 项目从源文件变成 .class 文件的过程,而 .class 文件,最后会被加载到JVM 中运行。在 JDK bin/ 目录下,提供了 javac 命令,用于将 .java 源文件编译成 .class 字节码文件,提供了 java 命令,以 Main_Class 为入口,根据运行需要,加载相应的 class 文件到 JVM 中执行。关于环境变量如果原创 2016-07-20 18:56:40 · 2685 阅读 · 0 评论