java基础
文章平均质量分 88
爱学习的老王
这个作者很懒,什么都没留下…
展开
-
了解jvm的世界
基本概念JVM是可运行Java代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM是运行在操作系统之上的,它与硬件没有直接的交互。JVM 类加载机制加载通过类的全路径名,获取类的二进制数据流。获得了类的信息,解析类的数据流,转化为⽅法区内部的数据结构。创建java.lang.Class类的实例验证这一阶段的主要目的是为了确保Class文件的字节流中包含的信息是否符合当前虚拟机的要求,并且不会危害虚拟机自身的安全。验证的步骤:格原创 2021-09-26 20:32:48 · 105 阅读 · 0 评论 -
Arraylist、LinkedList,hashmap扩容源码解读
ArrayListarrayList的add源码流程解析第一步进入add方法public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("1");//这里入口 }第二步查看一下构造函数// 初始化ArrayList实例,则elementData={} public ArrayList() { // Object[] DEFAUL原创 2021-08-26 17:19:32 · 153 阅读 · 0 评论 -
六大设计原则和常见的设计模式
六大设计原则单一职责原则定义:一个类或者模块只负责完成一个职责。理解:不同的类具备不同的职责,各司其职。做系统设计是,如果发现有一个类拥有了两种职责,那么就要问一个问题:可以将这个类分成两个类吗?如果真的有必要,那就分开,千万不要让一个类干的事情太多。单一职责的优点:降低类的复杂度,一个类只负责一项职责。提高类的可读性,可维护性降低变更引起的风险。里氏替换原则定义:多用组合,少用继承含义:里氏替换原则是针对继承而言的,如果继承是为了实现代码重用,也就是为了共享方法,那么共享的父原创 2021-08-15 14:51:47 · 245 阅读 · 1 评论 -
java.util.concurrent中的几种同步工具类(CyclicBarrier,CountDownLatch,Semaphore)
1.CyclicBarrier(栅栏)1.1.简介栅栏类似于闭锁,它能阻塞一组线程直到某个事件的发生。栅栏与闭锁的关键区别在于,所有的线程必须同时到达栅栏位置,才能继续执行。闭锁用于等待事件,而栅栏用于等待其他线程。CyclicBarrier可以使一定数量的线程反复地在栅栏位置处汇集。当线程到达栅栏位置时将调用await方法,这个方法将阻塞直到所有线程都到达栅栏位置。如果所有线程都到达栅栏位置,那么栅栏将打开,此时所有的线程都将被释放,而栅栏将被重置以便下次使用。1.2.用生活中的例子通过代码来演示原创 2020-09-29 17:40:58 · 326 阅读 · 0 评论 -
JAVA(1)——反射
1.反射机制概念在Java中的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方法的功能成为Java语言的反射机制。2.反射的应用场合2.1.编译时类型和运行时类型在Java程序中许多对象在运行是都会出现两种类型:编译时类型和运行时类型。编译时的类型由声明对象时实用的类型来决定,运行时的类型由实际赋值给对象的类型决定。如:Person p=new Student();其中编译时类型为Per原创 2020-09-28 10:27:29 · 247 阅读 · 0 评论