自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 JVM(类加载器)

一、JVM内置的类加载器BootstrapClassLoader(启动类加载器):用于加载/lib目录下的jar包和类,用C++编写的。 ExtensionClassLoader(扩展类加载器):用于加载/lib/ext目录下的jar包和类,用Java编写,继承自于java.lang.ClassLoader类。 AppClassLoader(启动类加载器):用于加载当前classpath下的所有jar包和类,用Java编写,继承自于java.lang.ClassLoader类。二、双亲委派机制

2021-07-17 15:32:03 139

原创 JVM(类加载)

一、类加载过程:一个类的生命周期如下:其中类加载过程是“加载->连接->初始化” ,连接又分为“验证->准备->解析”。二、加载加载这部分又分成3个步骤:通过全类名获取该类的字节码。 将类的静态存储结构转化为方法区的运行时数据结构。 在内存中生成该类的class对象,作为方法区数据的入口。三、验证对文件格式、元数据、字节码和符号引用等验证正确性,确保被加载类的正确性,不会危害到虚拟机的安全。四、准备在方法区中为类变量分配内存并设置

2021-07-16 17:04:44 137

原创 JVM(垃圾回收)

一、堆内存分配策略对象优先在Eden区分配内存给对象分配内存时,都会优先在Eden区分配,当Eden区满了的时候,就会发起一次Minor GC。大对象直接分配在老年区大对象是指需要大量连续空间的对象,这么做是为了避免给大对象分配内存因分配担保机制带来的复制而降低效率。长期存活的对象会分配到老年区Eden中的对象经过一次Minor GC,幸存的对象会转到Survivor区,并将对象的年龄设为1,之后在幸存者区中每经过一次Minor GC,幸存者的年龄都会加1,当对象的年龄达到年龄.

2021-07-16 16:11:19 142

原创 JVM(内存区域)

一、运行时数据区Java虚拟机在运行Java程序的时候,会把内存区域划分为多个区域,称为运行时数据区。jdk1.8以前jdk1.8后线程私有的:程序计数器 虚拟机栈 本地方法栈线程共享的:堆 方法区 直接内存 (非运行时数据区的一部分)程序计数器程序计数器是用来记录当前线程的执行位置,以便于从别的线程切换回来时,能回到正确的位置,继续完成剩余的操作。同时,字节码编译器会通过改变程序计数器来依次执行指令,从而实现代码的流程控制。程序计数器不会产生StackO

2021-07-15 15:51:26 111

原创 Java并发(二)

一、ThreadLocal一般来说,变量在线程之间都是共享的,怎么让线程拥有自己的变量呢?ThreadLocal就可以做到,线程拥有自己的变量,不与其他线程共享。ThreadLocal中有一个静态内部类ThreadLocalMap,ThreadLocalMap的key是ThreadLocal,value是Object对象。ThreadLocal的get()、set()、remove()方法本质上就是对ThreadLocalMap进行操作。set()设置ThreadLocalMap的值 get(

2021-07-14 14:51:01 121

原创 Java并发(一)

一、进程进程是程序的一次执行过程,是系统运行程序的基本单位,程序的运行就是进程从创建、运行到消亡的过程;在Java中,运行main函数其实就是在运行一个JVM进程,main函数所在的线程就是该进程的线程之一,也是主线程。二、线程线程是比进程更小的单位,一个进程在运行中会产生多个线程,同一个进程的线程共享堆和方法区,但不同线程都有自己的程序计数器、虚拟机栈。本地方法栈,不与其他线程共享。总的来说,线程是进程划分成更小的部分,进程间是相互独立的,但线程不一定,线程很可能会相互影响,线程

2021-07-12 17:14:19 83

原创 学习笔记(Java集合)

一、Java集合概述只有map机器相关的类不继承自Collection,其余都是

2021-07-09 17:10:59 146

原创 学习笔记整理(Java基础三)

一、try-catch-finally和try-with-resourcestry-catch-finally一个try可以有零个或若干个catch,零个或一个finally,若没有catch,则一定要有一个finally。 无论有无捕获或解决异常,finally都会执行,若是try-catch中有renturn语句,则finally会在return之前执行;如果try-catch-finally中都有return,finally中return会覆盖try-catch中的return语句。

2021-07-02 17:34:56 73

原创 学习笔记整理(Java基础二)

一、在静态方法内调用一个非静态成员为什么是非法的?静态方法是属于类的,在类加载的时候就会产生,而非静态成员属于实例对象,只有在对象实例化之后才能存在,然后通过类的实例对象去访问;所以调用静态方法是,还没给非静态成员分配内存,故为非法。二、方法重载与重写重载:在一个类中,一个方法可以在其方法名不变的情况下,对参数个数、类型、顺序,返回类型,权限修饰符进行修改从而生成多个同名的方法,可通过传入的参数来进行相应的逻辑处理。(发生在编译期) 重写:重写就是子类对父类中可访问(父类中权限修饰符为pr

2021-06-30 22:01:03 133

原创 学习笔记整理(Java基础一)

一、Java语言有什么特点Java是一门面向对象的语言; Java是一门解释型语言,具有平台无关性,利用JVM运行字节码,编译后的程序在多个平台或系统都可运行,具有很好的可移植性。 提供了对web开发的支持; 有较好的安全性和可靠性,提供了异常处理和垃圾回收机制。二、简述JVMJava Virtual Machine(JVM),Java虚拟机是用来运行Java字节码的虚拟机,使得代码可以在多个系统或平台上运行,达到“一次编译,多处运行“的效果。三、 JDK和JRE的区别J

2021-06-29 20:55:50 181

原创 spring5学习笔记(事务管理 + 日志)

1、事务 (1)事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果有一个失败所有操 作都失败 (2)典型场景:银行转账 * lucy 转账 100 元 给 mary * lucy 少 100,mary 多 100 2、事务四个特性(ACID) (1)原子性 (2)一致性 (3)隔离性 (4)持久性...

2021-06-03 20:48:37 386

原创 spring5学习笔记(JdbcTemplate)

1、 JdbcTemplateSpring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作

2021-06-03 16:08:34 149

原创 spring5学习笔记(AOP)

1、什么是 AOP(1)面向切面编程(方面),利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得 业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。(2)通俗描述:不通过修改源代码方式,在主干功能里面添加新功能...

2021-06-03 14:22:45 126

原创 spring5学习笔记(IOC容器)

Spring5 框架概述 1、Spring 是轻量级的开源的 JavaEE 框架2、Spring 可以解决企业应用开发的复杂性3、Spring 有两个核心部分:IOC 和 Aop(1)IOC:控制反转,把创建对象过程交给 Spring 进行管理(2)Aop:面向切面,不修改源代码进行功能增强4、Spring 特点(1)方便解耦,简化开发(2)Aop 编程支持(3)方便程序测试(4)方便和其他框架进行整合(5)方便进行事务操作(6)降低 API 开发难度...

2021-06-02 18:59:21 153

原创 JavaWeb学习笔记整理3

Servlet杂谈

2021-05-25 15:35:54 209

原创 JavaWeb学习笔记整理2

Dao持久层BaseDao抽象类

2021-05-25 10:52:44 347

原创 JavaWeb学习笔记整理1

123

2021-05-24 23:33:33 216

原创 jstl 运行jsp报错java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator解决方式

JavaWeb的学习中,学到了JSTL,在网上找了几个相应的包后,一直在报错java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagLibraryValidator,经过多番努力后才发现是因为我用的Tomcat10.0,用的jakarta.*软件包而不是javax.*软件包,故类似下图的jstl包是用不了的,下面的包是javax,用Tomcat10.0服务器运行的话,就会显示找不到包要用下图的包才有效下载地址如下:ja.

2021-05-11 23:39:49 16967 57

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除