JAVA基础
文章平均质量分 94
主要对Java基础当中一些容易错误和混淆的知识点进行探究
山海可期
这个作者很懒,什么都没留下…
展开
-
java中的字符串常量池(创建字符串时的执行流程)
(1)String声明为final,表示不能被继承。(2)String实现了serializable接口,表示支持序列化;实现了Comparable接口,表示可以做比较。(3)在JDK8及以前String内部定义了final char[] value用于存储数据,在JDK9改为byte[],节约了空间。(4)在JDK8中,字符串常量池属于方法区但存放在堆区,字符串常量池是不会存储相同内容的字符串的。原创 2024-03-22 12:47:14 · 883 阅读 · 0 评论 -
Java反射机制底层原理
这篇文章我是参考了然后我在这里做一下总结,因为原文章真的很好,我才疏学浅没什么进行补充,只能做出自己的总结并且写一下自己对这个的理解。原创 2024-02-28 23:59:16 · 818 阅读 · 0 评论 -
java中异常类
类继承。原创 2024-03-22 21:05:04 · 761 阅读 · 0 评论 -
关于java字节码文件加载过程中,各种变量和常量的存储位置
1、全局字符串常量池在每个 VM 中只有一份,存放的是字符串常量的引用值。2、class 常量池是在编译的时候每个 class 都有的,在编译阶段,存放各种字面量和符号引用。3、运行时常量池是在类加载完成之后,将每个class常量池中的符号引用值转存到运行时常量池中,也就是说,每个 class 都有一个运行时常量池,类在解析之后,将符号引用替换成直接引用,与全局常量池中的引用值保持一致。原创 2024-03-21 18:33:56 · 975 阅读 · 0 评论 -
java中链式队列和顺序队列
Queue接口继承自Collection接口,提供了一组用于操作队列的方法,而Deque接口则继承自Queue接口,提供了额外的双端队列操作方法。总结: 无论是链式队列还是顺序队列,它们都实现了Queue接口,因此可以使用相同的方法来进行入队和出队操作。而当我们需要在队列两端进行操作(既能在队列头部添加和移除元素,又能在队列尾部添加和移除元素)时,可以选择使用Deque接口。因此,可以使用LinkedList实现链式队列(Queue)和双端队列(Deque),根据需要选择适当的方法来操作队列中的元素。原创 2024-02-27 10:48:45 · 736 阅读 · 0 评论 -
java中容器继承体系
打开接口源码,能够看到接口是继承了接口。 以下是接口源码及注释Iterable接口定义了三个方法,其中两个提供了默认实现,只有iterator()是要求实现类必须实现的方法。那么当某个类实现了Iterable接口就可以使用foreach进行迭代。同时Iterable中又封装了Iterator接口,那么这个类也可以使用Iterator迭代器。因而有三种方式可以迭代Iterable实现类的对象:1、for-each循环2、获取实现类对象的迭代器(Iterator)3、调用的方法通过上面我们可以看到,在it原创 2024-02-27 10:21:58 · 824 阅读 · 0 评论 -
关于Arrays类中asList(T... a)泛型参数辨析
T>类型,也就是说我们传递什么T最后返回的List中元素类型就是什么T类型,比如我们传递一个Integer 那么List中元素就是Integer,我们传递一个int [] 那么我们list中元素就是int[],有的同志就要问了,为什么传递过去的事int [] 泛型T不会识别为int ,刚才我们说了泛型只能是引用类型,但是我们int是基本类型,不会识别为引用类型,所以我们参数接收的时候直接就将int [] 识别成了引用类型,所以我们返回的结果List<int[]>就是这种类型的。我们继续扒一下源码。原创 2024-02-24 13:27:31 · 1261 阅读 · 0 评论 -
Java中继承静态属性,方法,和非静态属性和方法的继承区别
/结果同上,输出的结果都是父类中的非静态属性、静态属性和静态方法,推出静态属性和静态方法可以被继承。//输出的结果都是父类中的非静态属性、静态属性和静态方法,推出静态属性和静态方法可以被继承。如果B中有这个方法,那么访问的是B中的方法,如果B中没有这个方法,访问的是从A中继承的这个方法。如果B中有这个方法,那么访问的是B中的方法,如果B中没有这个方法,访问的是从A中继承的这个方法。(1)当我们父类A中和子类B中有相同的静态属性,或者非静态属性名称的的时候,如果我们这样调用。原创 2024-02-23 22:47:52 · 958 阅读 · 0 评论