![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
Linky1990
这个作者很懒,什么都没留下…
展开
-
实体类、列表 和 管理类
实体类 首先要有实体类,用来保存数据。用于表示领域信息,状态信息、动作信息、环境变量信息等。比如 Student、Teacher、Status 等 实体类列表 只有一个实体类往往缺乏扩展性,而拥有一个实体集合类,则可以兼容单个实体,同时拥有扩展性,所以需要一个实体类列表。比如 List<Student>、List<Teacher> 等。 对列表的管理(增删改查) 列表往往无法管理自身,只能被调用者管理,但是将这种管理权交给调用者是不安全的,所以需要一个统一管理的地方,并对外提供管理接原创 2022-02-19 16:53:19 · 583 阅读 · 0 评论 -
为什么 JVM 不能确保所有垃圾都会被回收?
垃圾回收 垃圾回收包含两个步骤,1、标记哪些内存是垃圾;2、内存回收 一、标记算法 1、引用计数算法 - 经典算法,但没有 JVM 采用 堆中的每个对象都有一个引用计数器,根据引用计数是否等于零来判断是否需要被回收; 优点:判断是否需要回收的效率高,不需要额外的线程做 GC 的工作; 缺点:无法识别循环引用的情况,增加额外开销; 2、根搜索标记算法 步骤: 第一步:获取不可...原创 2020-09-05 17:15:47 · 477 阅读 · 0 评论 -
java 虚拟机如何分配线程的内存区域
JVM 内存区 1、程序计数器 保存每个线程当前执行到的字节码的位置 program_counter[0] = 0x12DFED program_counter[1] = 0xAb45EE program_counter[2] = 0xFBED3A 2、Java 栈 每个线程都有一个独立的 Java 栈,栈由栈帧组成,每个方法都是一个栈帧; 栈帧的组成 1、操作数栈:operator_num_stack = stack() 2、运行时常量池:ref = rt_stack_pool() 3、方法原创 2020-09-05 13:08:24 · 401 阅读 · 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 · 155 阅读 · 0 评论 -
java 多线程关键字
关键字 描述 volatile 对变量的改变立即更新到主存储器 wait() 释放掉锁进入等待状态,此时需要通过notify或者中断来唤醒 synchronized(lock) 获得 lock 后才能执行{ }内的代码块,否则跳过 notifyAll / notify notify 只能唤醒一个 wait 中的线程,notifyAll 则唤醒所有 wait 中的线程 ...原创 2020-03-05 13:53:57 · 136 阅读 · 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 · 10176 阅读 · 0 评论 -
使用 java 命令编译运行 java 程序
众所周知,java 编译的过程,就是将 java 项目从源文件变成 .class 文件的过程,而 .class 文件,最后会被加载到JVM 中运行。在 JDK bin/ 目录下,提供了 javac 命令,用于将 .java 源文件编译成 .class 字节码文件,提供了 java 命令,以 Main_Class 为入口,根据运行需要,加载相应的 class 文件到 JVM 中执行。 关于环境变量如果原创 2016-07-20 18:56:40 · 2644 阅读 · 0 评论