- 博客(28)
- 收藏
- 关注
原创 SpringBoot创建和使用
什么是Spring Boot?Spring Boot 是一个为了快速开发和使用 Spring 的脚手架。Spring Boot 的诞⽣是为了简化 Spring 程序开发的。Spring Boot 优点快速集成框架,Spring Boot 提供了启动添加依赖的功能,用于秒级集成各种框架。内置运行容器,无需配置 Tomcat 等 Web 容器,直接运行和部署程序。快速部署项目,无需外部容器即可启动并运行项目。可以完全抛弃繁琐的 XML,使用注解和配置的方式进行开发。
2023-10-07 13:53:49
70
原创 Spring的创建和使用
其中 BeanFactory 提供了基础的访问容器的能⼒,⽽ ApplicationContext 属于 BeanFactory 的⼦类,它除了继承了 BeanFactory 的所有功能之外,它还拥有独特的特性, 还添加了对国际化⽀持、资源访问⽀持、以及事件传播等⽅⾯的⽀持。ApplicationContext 和 BeanFactory 效果是⼀样的,ApplicationContext 属于 BeanFactory 的⼦ 类,它们的区别如下。
2023-10-03 16:48:43
72
原创 Spring 核⼼与设计思想
⽤⼀句话概括 Spring:Spring 是包含了众多⼯具⽅法的 IoC 容器。什么是容器容器是⽤来容纳某种物品的(基本)装置。我们想想,我们接触的容器有哪些?List/Map -> 数据存储容器Tomcat -> Web 容器什么是IoCSpring 也是⼀个容器,Spring 是什么容器呢?Spring 是⼀个 IoC 容器。IoC = Inversion of Control 翻译成中⽂是“控制反转”的意思,也就是说 Spring 是⼀个“控制反转”的容器传统程序开发。
2023-10-02 21:22:03
76
原创 单元测试框架——Junit
接下来我们用Junit的方法,这样我们就不用创建 main 方法,就能将测试用例创建出来。这里比较特殊,需要加上 static ,因为它们是针对这个类的。创建驱动,打开网页,放到 BeforeAll 里面;我们先引入 Junit 的 Maven 依赖。可以看到执行时自动忽略Test03()了。关闭浏览器放到 AfterAll 里面。这里不用加static。
2023-09-22 02:40:02
48
原创 软件测试的相关概念
可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成 的任务。该需求一般比较简略。或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能。大多数公司在进行软件开发的时候会把转化为,开发人员和测试人员工作的直接依据就是。。测试用例软件生命周期是指。如果把软件看成是有生命的事物,那么软件的生命周期可以分成6个阶段,即。(此处注意区分和软件测试的生命周期)瀑布模型的每一个阶段都只执行一次,因此是进行的软件开发模式。:每个阶段做什么,产出什么清晰明确。
2023-09-17 01:45:55
46
1
原创 多线程——死锁详解
死锁是指两个或两个以上的进程在执⾏过程中,由于竞争资源或者由于彼此通信⽽造成的⼀种阻塞的现象,若⽆外⼒作⽤,它们都将⽆法推进下去。(也就是两个线程拥有锁的情况下,⼜在尝试获取对⽅锁,从⽽造成程序⼀直阻塞的情况。
2023-08-30 15:35:57
992
原创 MySql设置默认支持中文(修改配置文件my.ini)
使用 show variables like 'character%';现在我们通过修改MySql的配置文件my.ini来修改默认字符编码。2.重启MySql服务器。(重启就是让服务器重新加载配置文件)注意:有些配置文件是隐藏的,需要手动打开隐藏选项。我们直接用记事本打开编辑,找到这样的代码。此时再次查看字符编码,就修改好了。1.先保存文件(ctrl+s)
2023-08-23 16:02:35
1403
原创 流对象操作文件内容
针对文件内容,使用“流对象”进行操作Java标准库的流对象,从类型上分为两个大类:1.字节流——操作二进制数据的2.字符流——操作文本数据的这些类的使用方式是非常固定的,核心就是四个操作:1)打开文件(构造对象)2)关闭文件(close)3)读文件(read)——针对InputStream和Reader4)写文件(write)——针对OutputStream和Writer我们可以看到,read有三个版本:1)read无参数版本:一次读一个字节。
2023-07-26 13:22:23
85
1
原创 文件操作 —— IO
我们可以注意到,不同的文件扩展名(后缀)都不同,不同的后缀往往用代码不同的文件格式定义,起到不同的作用。:泛指计算机中的很多 软硬件资源,操作系统中,把很多的硬件设备和软件资源抽象成了文件,按照文件的方式来统一管理(如操作系统把网卡也当成了一个文件)。这里绝对路径和相对路径都行,在new File对象时,构造方法参数中,可以指定一个路径,此时File对象就代表这个路径对应的文件。字符串,是由字符构成的,每个字符,都通过一个数字来表示,文本文件里存的数据,一定是合法的字符,都是在指定字符编码的码表内的数据。
2023-07-17 17:49:02
22
原创 包装类——拆箱和装箱
通过源码可以看出:Integer是有范围的[-128,127],在此范围内直接输出cache这个数组里的内容,超过这个范围就new新对象。这样做的好处:就是这些频繁使用到的小的数据,不需要每次都进行new了。很多人第一反应想到的是常量池的概念,但此处和它是没有关系的!给每个基本类型都对应了 一个包装类型。装箱:将基本数据类型变成对应的包装类型。拆箱:将包装类型变成对应的基本数据类型。,为了在泛型代码中可以支持基本类型,下列代码输出什么,为什么?中,由于基本类型不是继承自。为什么答案会不同呢?
2023-07-15 17:03:53
50
1
原创 Java 中的泛型
泛型,其实就是对类型进行参数化实现一个类,类中包含一个数组,使得数组中可以存放任何类型的数据普通方法:我们把数组定义为Object——因为所有类默认继承Object//1.存放元素的时候,任何类型的数据都可以存放//2.取出元素的时候,你得自己判断后强转问题:以上代码实现后 发现任何类型数据都可以存放1号下标本身就是字符串,但是确编译报错。必须进行强制类型转换所以,泛型的主要目的:就是指定当前的容器,要持有什么类型的对象。让编译器去做检查。此时,就需要把类型,作为参数传递。
2023-07-15 03:17:54
48
1
原创 Java多线程之阻塞队列介绍
这里解释一下“解耦”:“耦”就是我们通常所说的“高内聚,低耦合”的耦合,写代码时,要追求两个模块间的关联性小,,不会因为一个模块发生的变化很大影响另一个模块,这就是低耦合。消息队列,也是特殊的队列,相当于在阻塞队列的基础上,加了个“消息的类型”,按照指定类别进行先进先出。阻塞队列的一个典型应用场景就是“生产者消费者模型”,这是一种非常典型的开发模型。生产者消费者模型,能给我们的程序带来两个非常重要的好处!阻塞队列能是一种线程安全的数据结构,阻塞队列是一种特殊的队列,继续入队列就会阻塞,继续出队列也会阻塞,
2023-07-14 17:49:47
229
1
原创 多线程知识点简单总结
本质是让当前sleep线程,暂时不参与CPU的调度执行(把这个线程PCB放到了一个阻塞队列中),等到sleep时间到了,操作系统会把这个PCB拿回到就绪队列中。1)一个线程,一把锁,连续加锁两次,如果锁是不可重入锁,就会死锁,幸运的是,synchronized是可重入锁,这种情况不会产生死锁。2)两个线程,两把锁,线程1获取锁A,线程2获取锁B,此时线程1在尝试获取锁B,线程2再尝试获取锁A。加锁,核心是把一组不是原子的操作,变成了原子操作,这是解决线程安全问题的核心手段。
2023-07-14 15:38:13
36
1
原创 单例模式:懒汉模式和饿汉模式
(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。问:怎么保证实例唯一的?1.static 这个操作,是让当前instance属性是类属性。
2023-07-13 02:06:12
112
1
原创 线程安全问题的原因和解决方案
我们的预期是,当t2修改了flag的值之后,使flag不再为0,此时跳出循环,线程t1结束。这里我们也发现,说是保证原子性,不是让这里的三个操作一次执行完成,也不是这三步操作过程中不进行调度,而是让其他想操作的线程阻塞等待了。根据比较结果,来进行下一步的操作。总的来说,就是wait和notify规定了t1和t2线程的执行顺序,因此也就使t1和t2的执行有了顺序,解决了抢占式执行,随机调度。我们要注意的是,虽然我们的wait是阻塞在了synchronized代码块里了,但是实际上,这里的阻塞是释放了锁的。
2023-07-11 00:12:59
501
原创 Java 线程的状态
线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态(ready)。2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。4. 等待(WAITING):进入该状态的线程需要等待其他线程做出一些特定动作(通知或中断),等不到就死等。1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。
2023-07-10 00:18:26
106
1
原创 什么是线程?线程概念及方法详细讲解
对于 CPU 的 ⼀个核⽽⾔,某个时刻,只能执⾏⼀个线程,⽽ CPU 的在多个线程间切换速度相对我们的感觉 要快,看上去就是在同⼀时刻运⾏。:是指⼀个内存中运⾏的应⽤程序,每个进程都有⼀个独⽴的内存空间,⼀个应⽤程序可以同时运⾏多个进程;:线程是进程中的⼀个执⾏单元,负责当前进程中程序的执⾏,⼀个进程中⾄少有⼀个线程。优先让优先级⾼的线程使⽤ CPU,如果线程的优先级相同,那么会随机选择⼀个(线程随机性), Java使⽤的为抢占式调度。简⽽⾔之:⼀个程序运⾏后⾄少有⼀个进程,⼀个进程中可以包含多个线程。
2023-07-09 00:09:54
155
1
原创 Thread 类的基本用法
System.out.println("线程t1正在运行");try {});t1.start();//在主线程里可以随时通过flag变量的取值,来操作t线程是否结束自定义变量这种方式,不能及时响应尤其是在sleep休眠时间比较长的时候。
2023-07-08 23:47:50
52
1
原创 进程与线程之间的区别及联系
1、进程:进程是一个具有独立功能的程序关于某个数据集合的以此运行活动。是系统进行资源分配和调度的独立单位,也是基本的执行单元。是一个动态的概念,是一个活动的实体。它不只是程序的代码,还包括当前的活动。进程结构特征: 由程序、数据和进程控制块三部分组成。具有 独立性、并发性、异步性和动态性的特点。第一,进程是一个实体。
2023-06-25 15:44:22
122
原创 Java中设置Path、classpath、JAVA_HOME的作用?
Java中设置Path、classpath、JAVA_HOME的作用?
2022-11-19 19:00:20
362
1
原创 VS中加入 #define _CRT_SECURE_NO_WARNINGS 方法
VS中加入 #define _CRT_SECURE_NO_WARNINGS 方法
2022-09-25 22:27:04
9298
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人