自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringJdbcTemplate 操作数据库

目录1.添加2.修改和删除3.查询1、对应数据库创建实体类2、编写 service 和 dao (1)在 dao 进行数据库添加操作 (2)调用 JdbcTemplate 对象里面 update 方法实现添加操作 。update方法有两个参数 第一个参数:sql 语句 第二个参数:可变参数,设置 sql 语句值。例:2.修改和删除例:修改例:删除3.查询①查询返回某个值1、查询表里面有多少条记录,返回是某个值2、使用 JdbcTemplate 实现查询返回某个值代码 queryFo

2022-06-19 20:31:37 162

原创 Spring应用上下文(未完)

刷新阶段- ConfigurableApplicationContext#refresh(启动阶段- ConfigurableApplicationContext#tstart()停止阶段- ConfigurableApplicationContext#stop()关闭阶段- ConfigurableApplicationContext#close(refresh执行完成后Spring应用上下文从广义上来说已经启动了,start回调用LifeCycleProcessors的start方法,可以理解re

2022-06-19 20:31:36 227

原创 Spring 常见问题

目录1.BeanFactory与FactoryBean的区别?2.什么时Beandifinition?3.BeanDefinition的常见读取器?4.BeanDefinition是如何存放的?5.BeanPostProcessor的使用场景有哪些?6.BeanFactoryPostProcessor与BeanPostProcessor的区别BeanFactory是loC底层容器FactoryBean是创建Bean的一种方式,帮助实现复杂的初始化逻辑简单说就是对Bean信息的定义。描述一个bean的全部信

2022-06-19 20:00:39 222

原创 Spring解析xml

首先把一个配置文件封装成一个Resource对象,然后获取Resource对象的输入流,转换成InputSource对象,最后解析成Document对象。applicationContext.xml配置文件解析成Document对象。bean标签的解析,就是默认的处理方法。获取bean标签的id,并且把beanName赋值为id,设置别名。新建AbstractBeanDefinition对象,通过反射设置beanClass,解析property属性名称和值。 注册BeanDefinition对

2022-06-19 20:00:36 668

原创 Spring扩展接口

spring常见扩展接口

2022-06-19 20:00:00 202

原创 Spring IOC的启动过程

Spring IOC的启动过程

2022-06-19 20:00:00 2599

原创 Java反射机制原理

Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是谁。第一种是从reflectionData直接取,reflectionData是弱引

2022-06-19 19:25:24 932

原创 xml文件中Bean标签的属性

xml文件中Bean标签的属性

2022-06-19 18:35:45 568

原创 Spring常用注解

目录1、声明bean的注解2、注入bean的注解3、Java配置类相关注解4、切面(AOP)相关注解@Component:泛指各种组件(@Controller、@Service、@Repository都可以称为@Component)@Controller:控制层@Service:业务层@Repository:数据访问层@Autowired:由Spring提供@Qualifier:根据名称进行注入@Resource:可以根据类型注入,可以根据名称注入@Value:注入普通类型属性@Configuration:

2022-06-19 17:21:45 65

原创 Spring IOC容器的刷新容器

spring IOC容器的刷新过程

2022-06-19 16:29:54 151

原创 Java形参和实参

目录变量的赋值值传递机制Java语言中一个方法可以是无参的,也可以是有参的,而参数又分为了形参和实参。形参:用来接收调用方法时传递的参数,只有在被调用时才分配内存,一旦调用结束,就释放内存空间。因此仅在方法内有效。实参:在调用方法时,实际上传给形参的数据。在说参数前我们先来说一下关于变量的赋值如果变量是基本数据类型,此时赋值的是变量所保存的数据值。如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。public class ValueTransfer

2022-04-23 16:50:21 5883

原创 ReentrantLock类的方法

目录统计线程个数getHoldCount()getQueueLength()getWaitQueueLength()判断线程状态hasQueuedThread()hasQueuedThreads()hasWaiters()判断锁状态isFair()isHeldByCurrentThread()isLocked()获取锁的方式lockinterruptibly()tryLock()tryLock(long timeout,TimeUnit uni

2022-04-17 09:09:53 303

原创 Java多线程-锁

锁有哪些种类 乐观锁/悲观锁 独享锁/共享锁 互斥锁/读写锁 不可重入/可重入锁 公平锁/非公平锁 分段锁 偏向锁/轻量级锁/重量级锁 阻塞/自旋锁 乐观锁和被悲观锁...

2022-04-16 23:17:21 400

原创 Java之volatile关键字

目录作用特性关键字synchronized和volatile的比较volatile非原子的特性变量在内存中工作的过程作用 关键字volatile的主要作用是使变量在多个线程间可见。(强制从公共堆栈中取得变量的值,而不是从线程私有数据栈中取得变量的值。)特性保证可见性 不保证原子性 禁止指令重排关键字synchronized和volatile的比较(1)关键字volatile是线程同步的轻量级实现,所以volatile性能肯定比synchronized要..

2022-04-10 14:08:35 422

原创 Java-多线程

目录进程:线程: 并行与并发: 线程安全: 同步:线程的生命周期:线程的优先级:创建一个线程:通过实现 Runnable 接口;通过继承 Thread 类本身;通过 Callable 和 Future 创建线程。对比:Thread 方法:进程: 在一个操作系统中,每个独立执行的程序都可称为一个进程,也就是“正在运行的程序”。目前,大部分计算机上安装的都是多任务操作系统,即能够同时执行多个应用程序,最常见的有Windows、L...

2022-04-03 11:34:13 655

原创 Java之StringBuffer的源码分析

定义:StringBuffer类被 final 所修饰,不能被继承。StringBuffer类实现了2个接口:①:Serializable 序列化接口,表示对象可以被序列化。②:CharSequence 字符序列接口,提供了几个对字符序列进行只读访问的方法,比如:length()、charAt()、subSequence()、toString()方法等。主要变量:private transient char[] toStringCache; //用来缓存toString()方..

2022-03-27 13:42:41 662

原创 Java中的HashMap源码分析

目录HashMap的继承体系什么是Map哈希表存储结构HashMap的属性Node内部类HashMap的构造方法数组容量的计算put( K key,V value)方法HashMap的扩容机制HashMap新的数组的填充HashMap的get操作HashMap 中的红黑树散列冲突解决方式HashMap的继承体系1.HashMap实现了Serializable接口,可以被序列化2.HashMap实现了Cloneable接口,可..

2022-03-27 11:03:59 633

原创 Java中的LinkedList源码分析

目录LinkedList的基本结构LinkedLisa的实现LinkedList的构造方法LinkedList 新增元素LinkedList 删除元素LinkedList 遍历元素LinkedList get方法LinkedList的基本结构1.7中的结构:1.6的结构LinkedLisa的实现LinkedList 是基于双向链表数据结构实现的,LinkedList 定义了一个 Node 结构,Node 结构中包含了 3 个部分:元素内容 i.

2022-03-26 23:15:10 1380

原创 Java中Arraylist源码分析

一:ArrayList的成员变量private static final long serialVersionUID = 8683452581122892189L; //序列版本号 private static final int DEFAULT_CAPACITY = 10;//默认数组元素的初始容量为10 private static final Object[] EMPTY_ELEMENTDATA = {};//空元素对象数组 private static fi

2022-03-26 12:22:15 1202

原创 File类

目录File类的常用方法:File示例-遍历目录打印文件名及大小java.io.File类,是文件和目录的抽象表示形式,代表硬盘上一 个文件或目录,它封装了一些与平台无关的文件操作,隔离 了操作系统底层的文件处理细节。 File类包含了文件或目录的相关信息,如文件名,创建时间等, 能创建、删除、遍历文件和目录,但不能读取文件内容。 要注意不同平台的文件路径的表示字符,路径分隔符使用 File.separatorFile类的常用方法:File示例-遍历目录打印文件名及大小

2022-03-19 11:31:57 675

原创 I/O流的概念以及输入流和输出流

什么是流?流是一组有序的,有起点和终点的字节组合,是对计算机中数据传输的总称或抽象。流的本质是设备间的数据传输。流的分类 按照流的传输方向不同 输入流-InputStream 输出流-OutputStream 按照处理的数据类型不同 字节流-InputStream/OutputStream字符流-Reader/WriterI/O类的体系:从处理的数据类型上,可分为两大类,字符流和字节流。输入流-In...

2022-03-19 11:18:20 478

原创 HashSet和TreeSet

目录Set接口常用方法:HashSet:HashSet的常见操作:TreeSet:TreeSet的基本操作:HashSet是哈希表结构,主要利用HashMap的key来存储元素;TreeSet是树结构,每一个元素都是树中的一个节点,插入的元素都会进行排序;Set接口常用方法:HashSet:HashSet实现Set接口,底层由HashMap来实现,新增元素相当于HashMap的key,value默认为一个固定的Object。HashSet相当于..

2022-03-18 22:18:49 437

原创 数组工具类 Array

Arrays.toString() 打印数组元素用法:int[] a1 = {1, 2, 3, 4, 5};System.out.println(Arrays.toString(a1)); //[1, 2, 3, 4, 5]Arrays.fill(); 数组填充Arrays.equals(); 判断两个数组元素是否相等Arrays.copyOf(); 数组拷贝

2022-03-18 21:32:43 59

原创 数组的遍历,拷贝

数组遍历:public static void foreach1(int[] arr) {for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}}数组拷贝:clone 方法 clone方法是从Object类继承过来的,基本数据类型和String类型可以直接复制。int 类型int[] arr = {1};int[] cloneArr = arr.clone();cloneArr[0] =

2022-03-18 21:22:03 221

原创 认识数组名与实

理解数组的名与实●数组的“实”是一块地址连续的内存,就像是编号连续的一沓白纸。●数组的名,就是这个块连续内存的第一个内存的地址。●数组的变量和基本变量-样,本身是个地址。但是与基本变量不一样的是,这个地址的值,是数组的"名”, 也就是数组的第一个地址。数组=数组变量+数组的实体●数组变量[索引]就是在数组原有地址的基础上,加上索引,获得想要的元素●所以索引是从0开始的,因为数组变量的地址就是数组第一 个元素的地址...

2022-03-17 20:11:42 72

原创 什么是数组以及数组的语法

数组的特点是:●数组是相同类型的变量的集合,所有元素的类型都-样●可以指定数组包含的元素个数,最多为int的最大值个元素有固定的顺序●每个元素都有一 个固定的编号,称之为索引( index) ,从0开始递增,类型为int●可以像操作变量一样读写数组中的任何一个元素●如果说之前的变量是一-张有名字的纸 ,可以通过这个名字读写这个变量;数组则是一个有名字的本子。本子有一个名字,每领纸有一个页码。可以通过本子的名字和页码读写对应的数组元素创建和使用一个数组的语法数组元素类型[] 变量名=

2022-03-17 19:23:10 245

原创 什么是Java异常

1.什么是异常:异常是程序在运行过程中发生由于硬件 设备问题、软件设计错误等因素导致的 程序异常事件。2.异常的体系结构3.常见的Error类型4.异常的分类异常类Exception又分为运行时异常(RuntimeException)和非运行时异常(检查异常)。①运行时异常都是RuntimeException类及其子类异常,常见的运行时异常有:空指针异常 (NullPointerException)、下标越界异常(IndexOutOfBoundsExc

2022-03-11 23:17:08 2126

原创 ArrayList LinkedList

ArrayList底层是数组,查询快、增删慢;LinkedList底层是链表,查询慢、增删快。ArrayList特性①一个长度可变的数组。②查询快,增删慢。LinkedList的特性①一个双向循环列表。②查询慢,增删快。List集合的方法LinkedList增删元素的特有方法...

2022-03-11 23:01:10 271

原创 String StringBuffer StringBuilder的不同

1.Sting类表示的字符串是常量,一旦创建后, 内容和长度都是无法改变的。而SringBuider和SringBuffer表示字符容器,其内容和长度可以随时修改。在操作字符串时,如果该字符串仅用于表示数据类型,则使用String类即可;但是如果需要对字符串中的字符进行增加或删除操作,则应使用StingBufte 与StringBuilder类。如果有大量字符串拼接操作,在不要求线程安全的情况下,采用StringBuilder更高效;相反如果需要线程安全,则需要使用Stinguffere线程安全。2.

2022-03-11 22:39:25 251

原创 String StringBuffer StringBuilder

1.String的特性①字符串数据一旦初始化就不可以被改变了。②字符串数据都是一个对象。③字符串对象都存储在常量池中。String的方法2. StringBuffer(字符串缓冲区)StringBuffer的特性①长度是可变的。②StringBuffer(字符串缓冲区)是用来缓存数据的,类似一个字符容器。③提供了对容器中内容的操作方法。(四种:增删改查)。④想要使用容器中的数据,必须使用toStirng方法返回字符串。⑤该缓冲区中可以添加多种类型的元素,.

2022-03-11 22:35:24 63

原创 Java中的static关键字

static可以修饰属性,成员方法和代码块。1.static修饰属性,则称该属性为静态属性(全局属性),静态属性可以用类名直接访问。(类名.属性名)2.static修饰成员方法可以使用类名和对象访问。(类名.方法)(实例对象名.方法)3.static修饰代码块时,称被修饰的代码块为静态代码块。当类被加载时,静态代码块会执行一次。因为类只加载一次所以静态代码块也只执行一次。(在程序中通常使用静态代码块对类的成员变量进行初始化)...

2022-03-11 21:56:41 298

原创 Java中的final关键字

final关键字可以修饰类,方法,变量。使用final修饰的类不能有子类。使用final修饰的方法不能被子类重写。使用final修饰的变量(成员变量和局部变量)是常量,常量不可修改。

2022-03-11 21:29:54 42

原创 面向对象的特征

面向对象的三大特征是:封装,继承,多态。1.封装性封装是面向对象的核心思想,它有两层含义:一层含义是指把对象的属性和行为看成是个德可外的救体将这两者“封装”在一起(即封装在对象中);另一层含义是指“信息隐藏”将不想让外界知道的信息隐藏起来。例如,驾校的学员学开车,只需要知道如何操作汽车,无须知道汽车内部是如何工作的2.继承性继承性主要描述的是类与类之间的关系,通过继承,可以在无须重新编写原有类的情况下,对原有类的功能进行扩展。例如,有一个汽车类, 该类描述了汽车的普通特性和功能,进步再产生轿

2022-03-11 21:21:07 214

原创 什么是面向对象编程?

1.面向对象程序设计(Object Oriented Programming,OOP)是一种计算机编程架构。2.OOP的一条基本原则是计算机程序由单个能够起到子程序作用的单元或对象组合而成。OOP达到了软件工程的三个主要目标:重用性、灵活性和扩展性。OOP=对象+类+继承+多态+消息,其中核心概念是类和对象。3.对象是事物存在的实体,如,猪、狗,花等都是对象,对象由两部分组成。面向对象编程的三大特点:封装,继承,多态。类是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称为类。.

2022-03-11 21:08:50 3499 1

原创 什么是重载

在同一个类里,方法名字相同,而参数不同。返回类型可以相同也可以不同重载的规则• 被重载的方法必须改变参数列表(参数个数或类型不一样); •被重载的方法可以改变返回类型;• 被重载的方法可以改变访问修饰符;• 被重载的方法可以声明新的或更广的检查异常;• 方法能够在同一个类中或者在一个子类中被重载。• 无法以返回值类型作为重载函数的区分标准...

2022-03-11 20:50:07 108

原创 重写(Override)

重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。子类可以根据需要实现父类的方法重写的规则• 参数列表必须完全与被重写方法的相同。• 返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类(java5 及更早版本返回类型要一样,java7 及更高版本可以不同)。• 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为 public,那么在子类中重写该方法就不能声明为 protected。• 父类的成员方法只能

2022-03-10 20:00:16 125

空空如也

空空如也

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

TA关注的人

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