java学习
文章平均质量分 70
花泽生菜.
努力拱白菜
展开
-
锁机制总结
轻量级锁在虚拟机内部,使用一个称为BasicObjectLock的对象实现,这个对象内部由一个BasicLock对象和一个持有该锁的Java对象指针组成。也就是说,若某一线程别锁获得后,就会进入偏向模式,当线程再次请求这个锁时,则无需进行相关的同步操作,从而节省了操作时间。若果复制成果,那么加锁成功,否则认为加锁失败,那么轻量级锁就可能被膨胀为重量级锁。可以使线程在没有获取锁时,不被挂起,而转而去执行一个空循环,在若干空循环后,线程若果可以获得锁,则继续执行,若线程依然不能获取锁,则被挂起。原创 2022-09-07 19:40:52 · 370 阅读 · 1 评论 -
JVM-垃圾回收
1.1.1垃圾标记阶段引用计数算法给对象中添加一个引用计数器,原创 2022-08-04 15:05:44 · 246 阅读 · 0 评论 -
JVM初识
运行时常量池常量池是.calss文件中,当该类被加载,她的常量池信息就会放入运行时常量池,并把里面的符号地址变为真实地址。常量池就是一张表,虚拟机指令根据这张常量池表,要找到执行的类名、方法名、参数类型、字面量等信息。方法区内存溢出1.8之前会导致永代区内存溢出1.8之后元空间内存溢出。每个栈由多个栈帧组成,对应着每次方法调用时所占用的内存。每个进程只有一个活动栈帧,对应着当前正在执行的那个方法。特点线程是私有,不会存在内存移除。栈帧每个方法运行时需要的内存。3、jconsole工具。...原创 2022-07-19 01:45:01 · 272 阅读 · 0 评论 -
Mybatis动态代理实现
动态代理存在的意义在三层架构中,业务逻辑层要通过接口访问数据访问层的功能,动态代理可以实现。动态代理实现规范:1)UsersMapper.xml文件与UsersMapper.java的接口必须同一个目录下2)UserMapper.xml文件与UserMapper.java的接口的文件名必须一致,后缀不管3)UserMapper.xml文件中标签的id值与UserMapper.java的接口中方法的名称完全一致4)UserMapper.xml文件中标签的paramType的属性值与UserMapper.jav原创 2022-06-21 17:52:29 · 340 阅读 · 0 评论 -
代理模式详解
加强对代理模式的理解原创 2022-06-21 01:15:00 · 122 阅读 · 0 评论 -
EL表达式 JSTL标签库
什么是EL表达式? 作用?全称是Expression Langue 是表达式语言EL表达式的作用主要是替代jsp页面中的表达式脚本在jsp页面中方进行输出,因为EL表达式在输出数据的时候,要比jsp的表达式脚本简洁得多。示例EL表达式的格式是:${表达式}EL表达式输出null值得时候,输出的是空串jsp表达式脚本输出null值的时候,输出的是null字符串EL表达式搜索域数据的顺序EL表达式主要是在jsp页面中输出数据主要是输出与对象中的数据顺序: pageContext、reques原创 2022-06-20 14:34:11 · 164 阅读 · 0 评论 -
javaweb复习
仅供个人复习原创 2022-06-20 00:41:47 · 121 阅读 · 0 评论 -
转发和重定向的区别
1. 重定向与转发的区别:1.重定向访问服务器两次,转发只访问服务器一次。2.转发页面的URL不会改变,而重定向地址会改变3.转发只能转发到自己的web应用内,重定向可以重定义到任意资源路径。4.转发相当于服务器跳转,相当于方法调用,在执行当前文件的过程中转向执行目标文件,两个文件(当前文件和目标文件)属于同一次请求,前后页 共用一个request,可以通过此来传递一些数据或者session信息,request.setAttribute()和 request.getAttribute()。而原创 2022-05-05 18:01:22 · 29627 阅读 · 3 评论 -
JAVA-反射学习
Reflection(反射)是Java被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API获得任何类的内部信息,并能直接操作任意对象的内部属性及方法。加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对量就包含了整个的类的结构信息,我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以我们形象的称之为:反射正常方式:引入需要的“包类名称”-->通过new实例化-->取得实例化对原创 2022-01-25 18:06:12 · 275 阅读 · 0 评论 -
JAVA泛型深入学习理解
1、为什么要有泛型集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.5之前只能把元素类型设计为Object,JDK1.5之后使用泛型来 解决。因为这个时候除了元素的类型不确定,其他的部分是确定的,例如关于这个元素如何保存,如何管理等是确定的,因此此时把元素的类型设计成一个参数,这个类型参数叫做泛型。Collection,Li...原创 2022-01-24 00:12:58 · 432 阅读 · 0 评论 -
JAVA多线程深度学习
线程与进程所有的操作系统都支持进程,当一个程序进入内存时就变成了一个进程。进程就是处于运行过程中的程序,并且具有一定的独立能力,进程是系统进行资源分配和调度的一个独立单元。进程包含如下3个特征:独立性:进程是系统中独立存在的实体,它可以拥有自己独立的资源,每一个进程都拥有自己私有的地址空间。在没有经过进程本身允许的情况下,一个进程不可以直接访问其他进程的地址空间。 动态性:进程与程序的区别在于,程序只是一个静态的指令集合,而进程是一个正在系统中活动的指令集合。进程具有自己的生命周期和各种不同的状原创 2022-01-21 20:08:46 · 1141 阅读 · 0 评论 -
多线程的创建
学习笔记来自某站up主KuangShen原创 2022-01-20 20:28:59 · 54 阅读 · 0 评论 -
ArrayList扩容机制
ArrayList:底层存储数据时,用object数组存储 transient object[] elementData; transient:短暂的;在序列化时,如果变量添加了tansient关键字,则反序列化时,不加这个属性,也无法恢复;ArrayList(); 在一开始会创建一个空的数组,当第一个元素添加进来时会把这个数组扩容到10个元素大小; 当这10个空间都满了的时候再次进行扩容,扩容到原来的1.5倍 JDK1.8ArrayList(in.原创 2022-01-18 14:38:21 · 424 阅读 · 0 评论 -
Java异常学习
如图所示,在JAVA中所有的异常都是继承了Throwable类 Error: 错误 .class 文件在JVM上解释运行, 如果咱们写的代码把JVM 搞塌了, 会产生Error, 只有改代码才能解决 StackOverflowError栈溢出 堆溢出ErrorException: RuntimeException:在运行时才会出现的异常, 在遇到异常之前, 都能正常运行, javac 在编译的时候, 不会出问题 ...原创 2022-01-13 21:30:48 · 247 阅读 · 0 评论 -
JAVA学习-重写与重载小结
方法重写:前提必须要存在继承关系[权限修饰符][返回值类型]方法名(参数列表){//代码块}1、必须是相同的方法名和参数列表2、重写的方法(子类中)中权限要大于等于被重写的方法(父类)中的权限3、返回值类型: 基本数据类型 引用数据类型 重写的方法的返回值类型 是 被重写方法的类型或者其子类类型 (1) 引用数据类型: 重写的方法的返回值类型 是 被重写方法的类型或者其子类类型 ...原创 2022-01-11 14:05:14 · 241 阅读 · 0 评论