07 Java
文章平均质量分 73
Java学习记录
flystar27
这个作者很懒,什么都没留下…
展开
-
方法参数及值传递
参数类型形参:方法被调用时需要传递进来的参数,被调用期间才有意义(被分配内存空间)在方法被执行完后,形参就会被销毁释放内存空间,也就不存在了。实参:方法被调用时传递进来的实际值,在方法被调用前就已经被初始化,并且在方法被调用时传入。代码示例:public class A { public static void main(String[] arg) { int a = 5;//实参 function(a); } public static void function(int a) {原创 2021-08-11 22:40:46 · 209 阅读 · 0 评论 -
包装类及128陷阱
包装类的产生包装类适用于所有集合,因在Java中万物皆对象,集合也只认对象而基本数据类型的数据不太符合这一理念,所以就需要一个类来实现此理念,此外,类型之间的转化若由我们自己实现的话工作量过大也是包装类产生的原因之一。java针对每一个基本数据类型都设计了一个包装类转化方式自动拆装箱装箱:基本数据类型——包装类方法一Integer i = Integer.value(1);方法二Integer i = new Integer(1);拆箱:包装类——基本数据类型int value原创 2021-08-11 22:11:08 · 175 阅读 · 0 评论 -
Java中的四种引用
强引用指在程序代码之中普遍存在的引用赋值,即类似“Object obj=new Object()”这种引用关系。无论任何情况下,只要强引用关系还存在,垃圾收集器就永远不会回 收掉被引用的对象软引用用来描述一些还有用,但非必须的对象。只被软引用关联着的对象,在系统将要发生内 存溢出异常前,会把这些对象列进回收范围之中进行第二次回收,如果这次回收还没有足够的内存, 才会抛出内存溢出异常。在JDK 1.2版之后提供了SoftReference类来实现软引用。弱引用也是用来描述那些非必须对象,但是它的强度原创 2021-08-15 20:59:02 · 89 阅读 · 0 评论 -
static关键字及加载顺序
存在意义方便在没有创建对象的情况下来进行调用(方法/变量)内存使用static关键字存储在方法区中的静态常量池,所修饰的方法、变量和代码块都可以用来共享。static修饰符static 加载顺序静态的东西优先加载,且只加载一次,在类初始化时进行执行,创建类对象时从上往下执行一次非静态的初始化语句和初始化块,最后执行对应的构造函数类加载时从上往下执行一次静态的初始化语句和初始化块类加载的过程中遇到新创建对象的过程,从上往下执行非静态的触发语句,类加载优先于创建对象代码示例—乱斗publ原创 2021-08-12 20:54:59 · 993 阅读 · 0 评论 -
Java异常处理
异常分类Thorwable类(表示可抛出)是所有异常和错误的超类,两个直接子类为Error和Exception,分别表示错误和异常。其中异常类Exception又分为运行时异常(RuntimeException)和非运行时异常, 这两种异常有很大的区别,也称之为不检查异常(Unchecked Exception)和检查异常(Checked Exception)。运行时异常和非运行时异常运行时异常都是RuntimeException类及其子类异常,如NullPointerException、Ind原创 2021-08-12 21:13:45 · 116 阅读 · 0 评论 -
反射和代理
反射能够分析类能力的程序叫做反射是整个程序运行的另外一种途径,对理解整个程序运行有很好的帮助作用。反射的功能强大但相对复杂。普通方法的调用需要一个对象,否则会报空指针。然而我们在通篇程序中都没有写过new XxxController等来构造一个方法,所以可以猜测Java中存在一个程序可以自动创建我们写的类的对象,且该程序一定不是通过new Xxx来创建的,这时可能的方式就是反射。Java为我们提供了Class类来解决上述问题Java运行时系统始终为所有的对象维护–个被称为运行时的类型标识。这个信息原创 2021-08-14 17:34:56 · 154 阅读 · 0 评论 -
JVM内存区域
什么是JVMJVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。Java 源文件,通过编译器,能够生产相应的.Class 文件,也就是字节码文件,而字节码文件又通过 Java 虚拟机中的解释器,编译成特定机器上的机器码 。也就是如下:① Java 源文件—>编译器—>字节码文件② 字节码文件—>JVM—>机器码每一种平台的解释器是不同的,但原创 2021-08-27 20:22:59 · 87 阅读 · 0 评论 -
Java中的垃圾回收算法
思维导图确定垃圾的方法引用计数法在 Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用,即他们的引用计数都不为 0,则说明对象不太可能再被用到,那么这个对象就是可回收对象。可达性分析为了解决引用计数法的循环引用问题,Java 使用了可达性分析的方法。通过一系列的“GC roots”对象作为起点搜索。如果在“GC roots”和一个对象之间没有可达路径,则称该对象是不原创 2021-08-27 21:10:57 · 267 阅读 · 0 评论 -
JVM 类加载机制
JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。加载加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.Class 对 象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个 Class 文件获取,这里既可以从 ZIP 包中读取(比如从 jar 包和 war 包中读取),也可以在运行时计算生成(动态代理),也可以由其它文件生成(比如将 JSP 文件转换成对应的 Class 类)。验证这一阶段的主要目的原创 2021-08-27 21:37:18 · 165 阅读 · 0 评论 -
JAVA 集合
集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。Collection:Collection 是集合 List、Set、Queue 的最基本的接口。Iterator:迭代器,可以通过迭代器遍历集合中的数据Map:是映射表的基础接口ListJava 的 List 是非常常用的数据类型。List 是有序的Collection。Java List 一共三个实现类:分别是 ArrayList、Vector 和 LinkedList原创 2021-08-27 22:47:27 · 115 阅读 · 0 评论 -
接口和抽象类
抽象类1.抽象类和抽象方法必须用abstract关键字修饰2.抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者是接口3.抽象类不能实例化,按多态的方式,由具体的子类实例化。(不能实例化即 Animal a=new Animal 会报错,因为抽象类里没有具体方法的实现,调用它没有意义)4.抽象类的子类要么是抽象类,要么重写抽象类中的所有抽象方法抽象类的成员特点1.成员变量:既可以是变量,也可以是常量。abstract不能修饰成员变量2.构造方法:有,用于子类访问父类数据的初始化3.成员方原创 2021-11-14 14:19:43 · 234 阅读 · 0 评论