Java
踏着七彩祥云的小丑
这个作者很懒,什么都没留下…
展开
-
Java 单测—static方法
单测—private方法私有方法的单测私有方法的单测方法上加注解@PrepareForTest({静态方法所在的类.class})调用测试方法前先要mock出类。@Beforepublic void setUp() throws Exception { PowerMockito.mockStatic(类名.class);}单测方法中直接使用静态方法 when(类名.方法名(参数1, 参数2)).thenReturn(想要返回的结果);...原创 2022-03-17 16:58:08 · 1293 阅读 · 0 评论 -
Java集合——HashMap底层实现(学习分享)
文章目录HashMap介绍HashMap简介?继承关系基本属性构造函数方法HashMap和HashTable的区别HashMap介绍HashMap简介?基于哈希表的Map实现;存储键值对映射。允许null键、null值。键不能重复。无序,不能保证存入元素的顺序。线程不安全。默认的初始容量16,负载因子0.75,阈值12。2倍扩容。散列表(也叫哈希表):是依据关系码值(key value)来直接进行访问的数据结构。通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。映原创 2020-12-19 09:49:25 · 93 阅读 · 0 评论 -
Java集合——HashMap源码解析(转)
文章目录HashMap源码解析HashMap源码解析HashMap就是一个散列表,它是通过“拉链法”解决哈希冲突的。影响HashMap性能的有两个参数:初始容量(initialCapacity) 和加载因子(loadFactor)。容量 是哈希表中桶的数量,初始容量只是哈希表在创建时的容量。加载因子 是哈希表在其容量自动增加之前可以达到多满的一种尺度。当哈希表中的条目数超出了加载因子与当前容量的乘积时,则要对该哈希表进行 rehash 操作(即重建内部数据结构),从而哈希表将具有大约两倍的桶数。转载 2020-12-19 09:48:08 · 74 阅读 · 0 评论 -
Java中的事务(学习分享)
文章目录事务介绍什么是事务?为什么使用事务?事务有那些特性(ACID原则)事务并发处理可能出现的问题事务的类型JDBC事务事务介绍什么是事务?一般是指要做的或所做的事情。在计算机中是指:访问并可能更新数据库中各种数据项的程序执行单元(unit)。事务通常是由数据库操纵语言或者编程语言(如SQL、Java、C++)书写的用户程序执行所引起的。事务的组成:事务开始(begin transaction)和事务结束(end transaction)之间执行的全部操作。通常是以begin t原创 2020-12-19 09:23:18 · 190 阅读 · 0 评论 -
Java事务 API——JTA事务(学习分享)
文章目录JTA事务介绍什么是JTA事务什么是XA规范常见的JTA实现JTA的架构UserTransaction接口(面向开发人员的接口)Transaction 接口(面向提供商的接口)TransactionManager接口(面向提供商的接口)实例JTA事务处理过程本地事务处理实例JTA事务处理实例(分布式事务处理)补充JTA事务和JDBC事务的区别JTA事务介绍什么是JTA事务JTA:(Java Transaction API)Java事务API。是一个Java企业版的应用程序接口,在Java程原创 2020-12-19 09:21:19 · 2013 阅读 · 0 评论 -
JDBC事务(学习分享)
文章目录JDBC事务什么是JDBC事务JDBC进行事务管理的三个方法保存点(SavePoint)事务的隔离级别JDBC操作流程是什么获取JDBC连接数据库Statement创建(预编译SQL)执行SQL处理结果关闭资源JDBC连接数据库实例:为什么要用连接池?JDBC事务什么是JDBC事务JDBC是Java数据库连接相关的API,所以Java的事务管理也是通过这个API进行的。JDBC的核心是Connection接口。JDBC的事务管理是基于Connection接口来实现的,通过Connect原创 2020-12-18 09:03:03 · 228 阅读 · 0 评论 -
JDBC数据库连接池(学习分享)
文章目录数据库连接池为什么要用数据库连接池?特点常用的数据库连接池C3P0 (速度较慢,稳定性还可以)DBCP(速度比C3P0快,存在bug)Proxool (可监控连接池转台,性能较c3p0差点)BoneCPDruid(德鲁伊)数据库连接池为什么要用数据库连接池?用户每次请求都需要向数据库获取连接,而数据库创建连接需要耗费较大的资源。所以可以设置一个连接池,在程序启动时就初始化一批连接,在程序中共享,需要连接时从连接池获取,用完之后再还给连接池,这样就大大减少了连接的创建和销毁次数,提高程序的效原创 2020-12-18 09:01:53 · 178 阅读 · 0 评论 -
Java中常见数据类型转换
文章目录数据类型转换什么是数据类型数据类型的作用数据类型分类基本数据类型引用数据类型数据类型转换直接量基本类型转换自动类型转换(小容量到大容量)强制类型转换(大容量到小容量)实例数据溢出:损失精度:强制类型转换(溢出、损失精度)定义变量的类型转换数据运算时的转换基本类型的包装类型转换常用方法静态方法 valueOf()静态方法parseXXX(String str)非静态方法XXXValue()自动拆箱与装箱数据类型转换什么是数据类型简单来说就是数据的类型;数据类型限定了分配的内存空间大小。程原创 2020-12-18 08:52:39 · 277 阅读 · 0 评论 -
Java中的引用数据类型(学习分享)
文章目录引用数据类型介绍什么是引用数据类型引用数据类型的作用常见数据类型转换基础类型转stringstring转intstring转floatstring转datedate转stringBigDecimal与string互转string和stringBuffer相互转化string和char相互转化类和对象的实例基本数据类型和引用数据类型的区别引用数据类型介绍什么是引用数据类型简单说,引用就像是一个对象的名字或者别名。由类型的实际引用(类似于指针)表示的数据类型。引用类型的变量将引用(指向)原原创 2020-12-18 08:50:57 · 517 阅读 · 0 评论 -
java基础——枚举(自学分享)
文章目录枚举介绍什么是枚举声明枚举特点常用方法应用场景常见用法错误码实例枚举介绍什么是枚举是一个被命名的整型常数的集合。声明一组带有标识符的常数。日常生活中很常见:表示星期几——SUNDAY(周天)、MONDAY(周一)、TUESDAY(周二)、WEDNESDAY(周三)、THURSDAY(周四)、FRIDAY(周五)、SATURDAY(周六)就是一个枚举。JDK1.5才出现的特性。可以看成一种受限制的类,有自己的方法。将有关联关系的常量组织起来,使代码更加易读、安全。声明枚举原创 2020-12-18 08:44:20 · 107 阅读 · 0 评论 -
Java基础——正则表达式(学习分享)
文章目录正则表达式介绍什么是正则表达式特点编写规则基本书写符号元字符限定符常用的正则表达式Pattern类和Matcher类Pattern类Matcher类正则表达式介绍什么是正则表达式也叫做规则表达式。是对字符串操作的一种逻辑公式。事先定义好的一些特定字符串、以及这些特定字符的组合。本质上就是一种过滤逻辑。是一种文本模式。特点灵活性、逻辑性和功能性非常强。可以迅速用极其简单的方式达到字符串的复杂控制。初学者比较吃力。编写规则基本书写符号符号描述原创 2020-12-18 08:42:40 · 138 阅读 · 0 评论 -
Java基础——修饰符(学习分享)
文章目录修饰符介绍什么是修饰符分类访问权限修饰符非访问修饰符修饰符介绍什么是修饰符一般用来定义类、方法、变量,通常在语句的最前端。修饰符决定了一个类、方法、变量的可使用程度。分类访问修饰符非访问修饰符访问权限修饰符可以用来保护对类、变量、构造方法、普通方法的访问。public(公有访问修饰符)可以修饰类、变量、构造方法、接口、普通方法。同一包内的类之间共享。不同包之间导包后也可共享。继承关系能共享。//public修饰类public class T原创 2020-12-18 08:41:49 · 126 阅读 · 0 评论 -
Java基础——数组(自学分享)
文章目录数组介绍什么是数组特性分类一维数组声明数组初始化数组获取元素二维数组声明二维数组初始化二维数组获取元素快速打印输出二维数组多维数组声明多维数组初始化多维数组遍历冒泡排序Arrays工具类常见面试题打印输出一个数组判断输出的顺序去重数组中的最大值最小值删除数组中的元素数组介绍什么是数组是一种引用数据类型。是一种常见的数据结构,存储相同数据类型的数据。使用一个统一的数组名和不同的下标来唯一确定数组中的元素。是在内存中存储相同数据类型的连续空间。简单的线性序列,访问速度快。元素在数组中原创 2020-12-18 08:40:43 · 293 阅读 · 0 评论 -
Java基础——接口(学习分享)
文章目录接口介绍什么是接口接口特性接口的声明接口介绍什么是接口在Java中是一个抽象类型,是抽象方法的集合。接口通常以interface声明。类通过继承(implements)接口进而继承接口的抽象方法。类要定义接口中的所有方法。(抽象类除外)接口无法实例化,但是可以被实现。接口特性接口中的每一个方法都是隐式抽象的,接口中的方法会被隐式指定为public abstract修饰。接口中的变量会被隐式指定为public static final变量。接口中的方法不能在接口中实现,原创 2020-12-18 08:38:51 · 70 阅读 · 0 评论 -
Java基础——类(学习分享)
文章目录类介绍什么是类什么是对象类的定义类的命名规则类的生命周期类的加载过程类的基本结构类的属性类的方法构造方法类的程序块(代码块)类中结构的加载顺序Java类详解类介绍什么是类类是一个模板,描述一类对象的行为和状态。类是对象的抽象集合。比如:男孩。女孩。汽车。什么是对象对象是类的一个实例,包括状态和行为。比如:狗的状态:名字、颜色、品种;行为:吃、跑、睡、叫。类的定义访问权限修饰符 修饰符 class 类名()extends /implements 类名{}原创 2020-12-18 08:37:47 · 233 阅读 · 0 评论 -
Java中常见的转义符
文章目录转义符介绍什么是转义符怎么使用转义符常见的转义符表转义符介绍什么是转义符在计算机中,某些特殊的字符是无法直接用字符表示的,但是可以通过转义符(加反斜杠 \)的方式表示,其实就是将原字符的含义转变成其他含义。怎么使用转义符Java中使用转义符来表示特殊的字符。一个转义字符以反斜杠(\)开始。例如:String str = "good luck,小明\”"//要输出一个带右双引号的字符串常见的转义符表转义符描述\b退格(BS),将当前位置退原创 2020-12-07 14:37:14 · 330 阅读 · 0 评论 -
Java关键字——&——final
文章目录final修饰类修饰方法修饰变量final修饰参数面试常见问题final变量和普通变量的区别?final修饰的引用变量的内容可以改变吗?final、finally、finalize 的区别final可以用来修饰类、方法和变量。修饰类类不能被继承。final类中的所有成员方法都会被隐式的指定为final方法。修饰方法方法不能被重写。子类中不能存在与父类一摸一样的方法。但是如果方法是被private修饰的,子类就继承不到该方法,那么子类中存在的与父类相同的方法就是自定义的方法,也原创 2020-11-25 10:21:25 · 100 阅读 · 0 评论 -
抽象类是什么东西?
文章目录类什么是类什么是抽象类类什么是类什么是类?类是一个模板,描述了一类对象的行为和状态。什么是对象?对象是类的实例,具有行为和状态。例如:一只猫就是一个对象,他有品种、颜色、性别等状态;会叫、跑、吃等行为。类的基本结构:[修饰符] class 类名{ 0到多个构造器 0到多个成员变量 0到多个方法 0到多给初始化块}修饰符可以写public final abstract或者不写。java类名要用大驼峰写法。一个java源文件(也就是文件后缀名为.j原创 2020-11-18 14:48:38 · 170 阅读 · 0 评论 -
Java开发中maven的使用是啥样的?
文章目录Maven什么是MavenMaven的特点Maven构建生命周期Maven的常用命令Maven的常见问题pom.xml详解Maven什么是MavenMaven 翻译为"专家"、“内行”,是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Sc原创 2020-11-18 08:52:11 · 93 阅读 · 0 评论 -
Spring MVC你该知道的干货
文章目录Spring MVCMVC 介绍MVC 特点MVC 工作原理DispatcherServlet介绍实例描述父子上下文(WebApplicationContext)MVC的配置文件讲解Spring MVC和Spring的区别Spring MVC和Struts2的区别拦截器与过滤器的区别Spring MVC框架搭建实例教程Spring MVCMVC 介绍MVC :(Model View Controlelr)是一种提供给web应用的软件设计的框架模式,采用模型(model)-视图(view)-控制原创 2020-11-16 14:24:37 · 116 阅读 · 0 评论 -
JVM体系结构——之运行时数据区
文章目录JVM运行时数据区概念区域分类方法区运行时常量池堆年轻代年老代虚拟机栈栈帧局部变量表操作数栈动态链接本地方法栈程序计数器(PC寄存器)JVM运行时数据区概念Java虚拟机在执行Java程序的过程中会把它管理的内存分成若干个不同的数据区域,这些区域都有各自的用途以及创建和销毁的时间,有的区域时跟随虚拟机的启动而存在,有些区域则依赖于线程的启动和结束建立和销毁。区域分类上图中堆和方法区属于线程共享区域,虚拟机栈、本地方法栈和程序计数器(PC计数器)属于线程私有区域方法区作用:用于原创 2020-11-16 14:23:40 · 81 阅读 · 0 评论 -
Java体系结构——之运行时数据区——堆
文章目录JVM堆分代新生代老年代永久代堆内存常用参数垃圾收集器常用参数垃圾回收算法(Garbage Collection:GC)引用计数法标记清除法标记压缩法复制算法分代算法垃圾收集器新生代收集器Serial收集器ParNew 收集器Parallel Scavenge 收集器老年代收集器Serial Old收集器Parallel Old收集器CMS收集器G1收集器常见问题汇总JVM堆Java中最大的一块空间,存放对象实例和数组。也根据不同的版本号存放静态变量和字符串常量等。分代分代概念:新生成原创 2020-11-16 14:23:23 · 161 阅读 · 1 评论 -
JVM体系结构——之执行引擎
文章目录JVM执行引擎介绍分类字节码执行机制帧的组成部分1、局部变量表2、操作数栈(表达式栈)3、动态连接(链接)4、方法返回地址(方法出口)JVM执行引擎介绍执行引擎负责字节码指令的执行,方法的字节码流由一系列有序指令组成,指令又由一个单字节的操作码 + 0个或多个操作数组成。操作码表示需要执行的操作,操作数表示操作的数据,一般来源于当前栈桢中的局部变量或当前Java栈桢中操作数栈的顶部,至于操作数的个数,由操作码决定(操作码本身就决定了它是否需要操作数,以及操作数的形式等等)。分类一次原创 2020-11-16 14:22:58 · 99 阅读 · 0 评论 -
JVM体系结构——之类加载器
文章目录JVM的类加载器介绍种类虚拟机自带的加载器用户自定义的加载器class文件的寻址(双亲委派机制(沙箱安全机制))类的生命周期JVM的类加载器介绍负责查找和解析class文件,将class文件字节码内容加载到内存中,并将这些内容转换成方法区中的运行时数据结构,这个时候ClassLoader只负责class文件的加载,由Execution Engine决定是否可以运行。举例:上图中,Car.class 是由 .java 文件经过编译而来的 .class文件,存在本地磁盘Class原创 2020-11-16 14:22:23 · 75 阅读 · 0 评论 -
JVM自学整理——2020
文章目录JVM基本感念什么是JVMJVM运行过程(简述)JVM作用JVM体系结构类加载器(classLoader)执行引擎运行时数据区程序计数器(PC寄存器)补充的知识点JDK、JRE、JVM之间的联系Java源文件生成字节码文件与底层计算机交互的过程:JDK、JRE、JVM之间的区别JVM基本感念什么是JVMJVM是Java Virtual Machine(Java虚拟机)的缩写,一种用计算机设备的规范,是一个虚构出来的计算机,是通过实际的计算机上仿真模拟各种计算机功能来实现的。JVM运行原创 2020-11-16 14:22:04 · 83 阅读 · 0 评论 -
Java数据类型——你可知道?
文章目录Java数据类型介绍分类基本数据类型数值型整数型浮点型字符型布尔型字节大小引用数据类型基本类型和引用类型的区别Java数据类型介绍用来定义数据的类型。分类基本数据类型引用数据类型基本数据类型数值型1、整数型2、浮点型List item字符型布尔型数值型整数型byte、short、int、longbyte8位 ,有符号的,以二进制补码表示的整数。最小值是-128(-2^7)最大值是128(2^7-1)默认值是0在大型数组中节约空间,主原创 2020-11-13 14:09:02 · 100 阅读 · 0 评论 -
Spring你真的了解吗?
文章目录spring介绍Spring体系结构介绍主要模块介绍spring的好处Spring 入门(IoC/DI:控制反转/依赖注入)Spring AOP(面向切面编程)spring介绍开源框架,为了解决企业应用程序开发复杂性而创建的。J2EE应用程序框架,轻量级(非侵入式的)的IoC和Aop的容器框架。主要针对JavaBean的生命周期进行管理。可单独使用,也可配合其他框架使用,像struts、ibatis、hibernate、mybatis等。分层架构。Spring体系结构介绍1、Data原创 2020-11-13 14:08:27 · 205 阅读 · 0 评论 -
Java小白之变量
文章目录Java变量前言:介绍命名规则种类1、局部变量(本地变量)2、实例变量(成员变量)3、类变量(静态变量)Java变量前言:学习Java变量之前我们先来了解一下Java的数据类型吧!!!Java数据类型——你可知道?介绍在程序的运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元被称为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。命名规则名称必须以字母、下划线或$符号开头,不能数字开头。避原创 2020-11-13 14:06:25 · 96 阅读 · 0 评论 -
Java小白之函数(方法)
文章目录Java函数(方法)和变量函数什么是函数函数的特点函数的格式Java函数(方法)和变量函数什么是函数在Java中习惯将函数叫做方法,就是定义在类中的具有特定功能的一段独立的代码块。函数的特点提高代码的复用性。函数只有被调用的时候才会执行。函数都是在栈内存中运行。运行的函数处在栈顶。函数的格式//[]中的参数是可选项,即参数不是必须的修饰符 返回值类型 函数名([参数类型1 参数名1, 参数类型2 参数名2 ....]){ 执行语句 //返回值得类型必须与返回值类型一致原创 2020-11-13 14:06:10 · 68 阅读 · 0 评论 -
Spring AOP就是这么容易
文章目录原创 2020-11-13 14:03:46 · 149 阅读 · 0 评论 -
Spring IoC入门就是这么简单
文章目录Spring IOC什么是IOC获取对象的方式什么是DISpring IOC原理Spring IOC是如何实现的?Spring依赖注入的方式Spring IOC什么是IOC(Inversion of Control)控制反转也可叫依赖倒置,是一种设计思想。将对象的创建权交给spring。DI:Dependency Injection(依赖注入)是实现IOC的一种方法。前提必须要有IOC环境。在没有IOC的程序中,我们使用面向对象编程,对象的创建与对象间的依赖关系完全硬编码在程序中,对象的创原创 2020-11-13 14:03:20 · 89 阅读 · 0 评论 -
Spring AOP的底层实现是怎样的?
文章目录Spring AOP底层实现静态代理动态代理1、JDK动态代理(必须有接口)实例:2、CGLIB动态代理(不需要类继承任何接口,字节码技术)实例:Spring AOP底层实现代理设计模式:将委托类融入到代理类中。静态代理一个接口,两个实现类,代理实现类组合真实实现类一种根据上面的理论,很自然会想到的一种不依赖于其他技术的代理模式实现方式。而他的实现过程如下图。动态代理动态代理的动态, 就是可以动态的切换真实实现类, 也就是说可以一个代理类(相同的代码, 相同的增强操作)应对一堆不确定原创 2020-11-13 13:31:44 · 275 阅读 · 0 评论 -
Spring IOC是如何实现的
文章目录原创 2020-11-13 13:31:27 · 131 阅读 · 0 评论 -
Spring 三种对象的创建方式都是什么呢?
文章目录Spring 三种对象的创建方式1、空参数构造(重要)2、静态工厂创建(调用静态方法创建)3、实例工厂创建(调用非静态方法创建)Spring 三种对象的创建方式1、空参数构造(重要)2、静态工厂创建(调用静态方法创建)调用UserFactory类的静态createUser方法创建名为user的对象,放入容器。<bean name="user" class="cn.itcats.UserFactory" factory-method="createUser"></bean原创 2020-11-13 13:30:27 · 122 阅读 · 0 评论 -
Spring依赖注入的方式自己整理的
文章目录Spring依赖注入的方式1、setter方法注入2、构造器注入3、基于注解的注入4、静态工厂的方法注入5、实力工厂的方法注入总结Spring依赖注入的方式Spring依赖注入(DI)有三种方式:- 接口注入- Setter方法注入- 构造方法注入1、setter方法注入最简单的注入方式。假设有一个SpringAction,类中需要实例化一个SpringDao对象,那么就可以定义一个private的SpringDao成员变量,然后创建SpringDao的set方法(这是IOC的注入入原创 2020-11-13 13:29:37 · 306 阅读 · 0 评论 -
Spring MVC框架搭建实例教程——你值得一看
文章目录Spring MVC的项目初体验准备工作创建一个spring MVC的项目Spring MVC的项目初体验准备工作jdk1.8tomcat7eclipse开发工具jar包下载 springMVC框架所需的jar包下载地址创建一个spring MVC的项目jdk的安装不作描述。首先就是打开eclipse,左侧项目目录栏右键→new→other(或者使用快捷键,我的快捷键是ctrl+N),弹出如下对话框:文件类型的输入框中选择输入web,选择临时的web项目,然后点击n原创 2020-11-06 15:35:10 · 283 阅读 · 0 评论 -
Server springMVC-test failed to start.
文章目录spring MVC项目启动时报Server springMVC-test failed to start.错误spring MVC项目启动时报Server springMVC-test failed to start.错误解决:双击上图,在打开的页面中找到下图红框中的内容,勾选即可。:...原创 2020-11-06 15:37:08 · 106 阅读 · 0 评论 -
springMVC报No mapping for GET错误
文章目录SpringMVC项目启动时浏览器访问报No mapping for GET错误错误检查1:web.xml文件中的servlet-mapping标签配置错误检查2:mvc配置文件中的自动扫描配置错误检查3:web.xml文件中index.jsp的位置SpringMVC项目启动时浏览器访问报No mapping for GET错误错误检查1:web.xml文件中的servlet-mapping标签配置"/*"的写法是不可以滴。错误检查2:mvc配置文件中的自动扫描配置错误检查3:web.原创 2020-11-06 12:54:16 · 23922 阅读 · 4 评论 -
Failed to start component [StandardEngine[Catalina].StandardHost[localhost]
文章目录tomcat启动springMVC项目时报Failed to start component [StandardEngine[Catalina].StandardHost[localhost]错误tomcat启动springMVC项目时报Failed to start component [StandardEngine[Catalina].StandardHost[localhost]错误错误原因:出现错误的原因是tomcat的版本太高,与其配套的servlet-api.jar不匹配,或者项目原创 2020-11-06 12:40:10 · 3287 阅读 · 0 评论 -
String StringBuilder StringBuffer的区别
文章目录StringString源码解读StringString源码解读源码地址:安装的jdk的目录下有个src的zip压缩包。解压后找:\src\java\lang\String.javaString类是被final修饰的:public final class String implements java.io.Serializable, Comparable<String>, CharSequence{ /** The value is used for c原创 2020-10-28 09:42:15 · 70 阅读 · 0 评论