Java
文章平均质量分 75
有关Java中的一些知识点
一枚coin
这个作者很懒,什么都没留下…
展开
-
Java中的值传递
Java 中将实参传递给方法(或函数)的方式是值传递如果参数是基本类型的话,很简单,传递的就是基本类型的字面量值的拷贝,会创建副本。如果参数是引用类型,传递的就是实参所引用的对象在堆中地址值的拷贝,同样也会创建副本。t=O83A。原创 2024-10-20 16:59:13 · 688 阅读 · 0 评论 -
Java中的泛型
Java 泛型(Generics)是 JDK 5 中引入的一个新特性。使用泛型参数,可以增强代码的可读性以及稳定性。编译器可以对泛型参数进行检测,并且通过泛型参数可以指定传入的对象类型。比如这行代码就指明了该ArrayList对象只能传入Person对象,如果传入其他类型的对象就会报错。并且,原生List返回类型是Object,需要手动转换类型才能使用,使用泛型后编译器自动转换。原创 2024-10-20 16:21:55 · 404 阅读 · 0 评论 -
Java中的异常Throwable
原文链接。原创 2024-10-20 16:11:22 · 970 阅读 · 0 评论 -
抽象类和接口的共同点和区别
方法用于提供接口方法的默认实现,可以在实现类中被覆盖。这样就可以在不修改实现类的情况下向现有接口添加新功能,从而增强接口的扩展性和向后兼容性。方法通常用于定义一些通用的、与接口相关的工具方法,一般很少用。方法无法在实现类中被覆盖,只能通过接口名直接调用(方法可以用于在接口内部共享代码,不对外暴露。这些方法让接口的使用更加灵活。Java 9 允许在接口中使用。),类似于类中的静态方法。Java 8 引入的。Java 8 引入的。原创 2024-10-20 14:52:46 · 379 阅读 · 0 评论 -
Java中的枚举(Enum)
枚举类除了可以实现接口外,还可以在枚举类中定义抽象方法,这样每个枚举的对象只要分别实现了此抽象方法即可。RED{public String getColor(){//枚举对象实现抽象方法return "红色";},GREEN{public String getColor(){//枚举对象实现抽象方法return "绿色";},BLUE{public String getColor(){//枚举对象实现抽象方法return "蓝色";//定义抽象方法。原创 2024-05-31 00:30:00 · 339 阅读 · 0 评论 -
Cookie和Session的区别
4、生命周期:Cookie可以设置过期时间,如果设置了过期时间,即使关闭浏览器,Cookie也会保存在本地硬盘中,直到过期时间到达才会被删除。5、数据类型:Cookie和Session都是key-value结构,但Cookie的value只能是字符串类型,而Session的value是object类型,可以存储更复杂的数据结构。而Session数据存储在服务器上,没有敏感信息泄漏的风险,安全性较高。1、存储位置:Cookie数据存放在客户的浏览器上,而Session数据放在服务器上。原创 2024-05-14 00:30:00 · 317 阅读 · 0 评论 -
Mybatis中的缓存机制
MyBatis 中的缓存机制包括一级缓存(Local Cache)和二级缓存(Global Cache),用于提高查询性能和减少数据库访问次数。原创 2024-05-07 00:30:00 · 785 阅读 · 0 评论 -
Mybatis中的动态SQL
if标签可通过test属性中的表达式进行判断,若表达式的结果为true,则标签中的内容会执行;反之标签中的内容不会执行。在where后面添加一个恒成立条件1=1,这个恒成立条件并不会影响查询的结果这个1=1可以用来拼接and语句,例如:当empName为null时如果不加上恒成立条件,则SQL语句为,此时where会与and连用,SQL语句会报错如果加上一个恒成立条件,则SQL语句为,此时不报错,并且查询结果跟我们预想的也并无差别。原创 2024-05-06 09:38:51 · 702 阅读 · 0 评论 -
Integer中的缓存机制
所以这就解释了为什么a==b是true而c==d是fasle,当Integer值在[-128, 127]范围时,都是从缓存中拿的同一个对象,使用==比较地址自然相同,所以返回true;为什么明明都是同一个数字进行==比较,当数字等于127的时候,两个Integer类型的变量进行==比较是相同的,数字式128的时候就不同了呢?首先我们需要明确==和equals方法的区别,==比较两个对象的地址是否相同,equals比较两个对象的值是否相同。的时候就已经完成了,所以后面需要的时候直接拿的缓存中的对象。原创 2024-05-02 19:07:19 · 203 阅读 · 0 评论 -
Java中的反射
反射机制是什么Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是谁。原创 2024-03-18 18:44:35 · 1123 阅读 · 0 评论 -
ThreadLocal原理
ThreadLocal,即线程本地变量。一个共享变量存进该容器相当于在线程内部拷贝了一个副本。ThreadLocal里面的变量都是存在当前线程的。当操作ThreadLocal里面的变量时,实际操作的是存在自己线程的那个变量副本,该变量副本对于每一个线程都是独立的,从而实现了变量的隔离性,保证了线程安全。原创 2024-03-17 16:18:28 · 948 阅读 · 1 评论 -
Java中的死锁
在 Java 中,死锁是指两个或多个线程无限期地等待对方持有的锁而无法继续执行的情况。通常发生在多个线程同时持有一些共享资源的锁,并且每个线程都在等待获取其他线程持有的锁,导致所有线程都无法继续执行。往往我们在生产环境中锁编写的代码都是很多的,如果出现死锁现象,我们往往无法及时的知道是哪里的代码产生了死锁,那么这个时候,我们就可以通过java自带的诊断工具来诊断java代码中哪里出现了死锁问题。使用方法:第1步:使用 jps 命令查看当前运行的线程第2步:使用jstack查看线程运行的情况。原创 2024-03-11 19:27:46 · 1109 阅读 · 0 评论 -
Iterator 的 fail-fast、fail-safe 机制
其原因是因为CopyOnWriteArrayList使用的是"读写分离"的思想,遍历和修改操作分别作用在不同的list容器,如果在容器中添加一个元素,则首先将当前容器复制一份,然后在新副本上执行写操作,结束之后再将原容器的引用指向新容器。举例:使用CopyOnWriteList在迭代的时候添加数据,不会报错,会按照原集合中的数据进行迭代,迭代完成后,将修改后的数据同步到原集合中。:在迭代过程中,即使集合被修改,也不会抛出异常,迭代器会正常进行遍历,并且不会受到修改的影响。异常,以避免对集合造成损坏。原创 2024-03-04 20:50:58 · 436 阅读 · 0 评论 -
JDK、JRE、JVM之间的区别
我们写java代码,用记事本txt就可以写,但是写出来的java代码想要运行,就需要先编译成字节码,那这就需要编译器,而JDK中就包含了编译器javac,编译之后的字节码,想要运行,就需要一个可以执行字节码的程序,这个程序就是JVM,专门用来执行Java字节码的。另外,JVM在执行java字节码时,需要把字节码解释为机器指令,而不同的操作系统的机器指令是有可能不一样的,所以就导致不同操作系统上的JVM是不一样的,所以我们在安装JDK的时候要选择操作系统。JDK中包含了JRE,JRE中包含了JVM。原创 2024-03-09 21:13:47 · 337 阅读 · 0 评论