自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring-Spring、IoC、DI、注解开发

Spring是一个低侵入降低组件之间的耦合解耦面向切面编程依赖反射以前所有东西都是由程序去进行控制创建,耦合性太高(模块与模块之间的依赖性太强,需求改一个模块,实际需要改好几个模块),而现在是由我们自行控制创建对象 , 把主动权交给了调用者。程序不用去管怎么创建,怎么实现了。它只负责提供一个接口问题:耦合度高解决办法:使用对象时,在程序中不要主动使用new产生对象,转换由外部提供对象。

2024-07-11 21:10:09 690 1

原创 SpringBoot项目——送水管理系统

需要用到一些mybatisPlus没有的方法,需要在mapper下写需要的方法,具体实现在resources/com/example/HistoryMapper.xml。然后在业务层完成业务,controller层完成,controller层有一个数据回显的功能模块。在mapper下创建SalaryMapper(用@Repository注解)在service层提供登录方法,分为接口和接口实现。需要tb_customer表。需要tb_history表。需要tb_history表。需要tb_worker表。

2024-07-08 16:05:11 949

原创 spring-AOP

匹配,例如getByld书写成getBy。匹配,例如UserService书写成。

2024-06-24 09:54:29 388

原创 spring-注解开发

注解开发定义beanXML配置比对注解配置

2024-06-22 17:18:44 297

原创 spring-依赖注入DI

2、简单类型:在bean中定义引用类型属性并提供可访问的set方法,在配置中使用property标签value属性注入简单数据类型。1、引用类型:在bean中定义引用类型属性并提供可访问的set方法,配置中使用property标签ref属性注入引用类型对象;4、如果有必要可以两者同时使用,使用构造器注入完成强制依赖的注入,使用setter注入完成可选依赖的注入。1、强制依赖使用构造器进行,使用setter注入有概率不进行注入导致null对象出现。2、可选依赖使用setter注入进行,灵活性强。

2024-06-22 16:49:06 368

原创 Spring-bean

解决方案:使用对象时,在程序中不要主动使用new产生对 象,转换为由外部(核心容器:core container)提供对象。),无参构造方法如果不存在,将抛出异常BeanCreationException。解决问题(代码耦合度高——模块与模块之间的依赖程度)3、实例工厂.先造出工程实例对象。3.执行属性注入( set操作)4.执行bean初始化方法。1.创建对象〔内存分配)1.执行bean销毁方法。

2024-06-22 15:35:31 396

原创 软件测试、测试模型、测试用例

局限性:需求、设计、编码等活动被视为串行的;无法支持敏捷开发模式。软件测试的生命周期:需求分析→测试计划→ 测试设计、测试开发→ 测试执行→ 测试评估。特点:是瀑布模型的变种,明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系。特点:测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进行的;(2)要从“黑盒”的角度,设计出充分并且必要的测试集,以保证设计和代码都能完全符合需求。局限:仅仅把测试作为在编码之后的一个阶段,未在需求阶段就进入测试。

2024-05-31 16:51:56 1102

原创 MySQL索引

B树或者B+树。

2024-05-30 16:21:12 307

原创 网络、HTTP、HTTPS、Session、Cookie、UDP、TCP

应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。

2024-05-28 20:11:52 1305

原创 多线程、进程、线程五种状态、synchronized、volatile、Lock、CAS、死锁、ThreadLocal

的保证,确保一个线程的修改对于其他线程是可见的。被volatile修饰的共享变量,当它被修改时,可以将修改的值立即更新到主内存中,其他线程需要读取时,重新去主内存中读取新值volatile可以保证可见性和禁止重排序,但不能保证原子性;synchronized涉及到用户态和内核态的切换,在1.6之前,锁都是重量级锁,即我们不管什么线程来操作资源,都要进行加锁释放锁,如果有多线程,还要等待之类的,很浪费资源,1.6之后引入了偏向锁与轻量锁来减小获取和释放锁所带来的性能消耗。)、可多条件队列的锁操作。

2024-05-24 21:57:13 1106

原创 Map遍历、反射、GC

用foreach遍历。

2024-05-23 15:35:07 777

原创 七大排序算法

交换排序:1、冒泡排序;2、快速排序选择排序:3、选择排序;4、堆排序插入排序:5、直接插入排序;6、希尔排序归并排序:7、归并排序。

2024-05-21 21:00:41 670

原创 类加载、happens-before

加载:获取二进制字节流验证:保证不会危害虚拟机准备:分配内存空间,设置变量初始值解析:常量池中的符号引用转换成直接引用的过程初始化:初始化类变量和其他资源。

2024-05-20 17:52:22 677

原创 字符串转int数组(Java实现)

【代码】字符串转int数组(Java实现)

2024-05-09 16:15:58 218 1

原创 单链表——Java

单链表的定义:class ListNode{ public int data; public listNode next; public ListNode(int data){ this.data=data; this.next=null; }}class MysingalList{ public ListNode head; public MysingalLis...

2019-11-12 17:06:38 192

原创 图书管理系统——C语言版

图书管理系统:只是一个简易版的、只是完成一些简单的增删改查的功能。设计要求把图书表抽象成一个线性表,每本图书(包括ISBN、书名、定价)作为线性表中的一个元素。在图书信息管理信息系统中要求实现查找,插入,删除,修改和计数功能。设计思路创建书籍结构体首先,需要创建一个结构体来存储图书信息,结构体中包含ISBN、书名和定价;其中ISBN和书名可以用char类型的数组来存储,而定价因为可能有...

2019-11-01 17:02:02 16303 7

原创 类和对象、static修饰、this关键字、构造函数

面向对象三大特性:封装,继承,多态类的定义类其实是一种自定义类型,和int,char一样,可以使用类来定义变量,这种类型的变量统称为引用变量。即,所有类都是引用类型。类是某一批对象的抽象,可以理解为类是一种概念:对象是一个具体存在的实体面向对象就是用代码(类)来描述客观世界的事物的一种方式. 一个类主要包含一个事物的属性和行为用类类型创建对象的过程,称为类的实例化类只是一个模型一样的...

2019-10-24 18:16:20 706

原创 数组、数组中的内存、参数传递、数组的工具类:Arrays

数组类型数组:相同类型数据的集合,内存是连续的一个数组只能储存一种数据类型,而不能储存多种数据类型。Java中的数组既可以储存基本数据类型的数据,也可以储存引用数据类型的数据,只要所有的数据都具有相同的数据类型即可。其实,数组也是一种数据类型,本身是一种引用类型。如:int是一种基本类型,int[]就是一种引用类型,可以使用int[]来定义变量,或者来进行类型转换定义数组有两种语法格式...

2019-10-21 19:13:00 260

原创 运算符

Java中的运算符分为:算术运算符赋值运算符比较运算符逻辑运算符位运算符类型相关运算符算术运算符用于基本的数学运算:加、减、乘、除和求余7个基本的运算符+:加法运算符除执行基本的加法操作外,+还可以作为字符串的连接运算符System.out.println("hello"+"world");-:减法运算符执行基本的减法操作*:乘法运算符执行基本的乘法操作/:...

2019-10-14 16:33:24 178

原创 数据类型、类型转换

Java是强类型语言,含义为:所有的变量必须先声明、后使用指定类的变量只能接受类型与之匹配的值Java语言的类型有两类:基本类型(内置类型)和引用类型基本类型包括boolean类型和数值类型。数值类型包含整数类型和浮点类型。整数类型包括byte,short,int,long,char,浮点类型包含float和double引用类型包含类,接口和数组类型,还有一种null类型。整型(i...

2019-10-12 21:59:37 455

原创 main方法是static的、JDK和JRE和JVM

main方法是static的Java中main方法是static,为什么?static是静态的意思,如果main不是static的,那么在调用时必须先对main进行实例化,main是程序的入口,不可能被实例化,用static修饰后,可以直接用类.main()进行调用,不需要进行实例化JDK,JRE和JVM联系和区别简单来说就是JDK包含JRE,JRE包含JVMJDK是面向开发人员的,包含...

2019-09-28 21:45:44 257

原创 结构体、单链表

结构体结构体和数组一样,都是聚合类型,在进行整体初始化的时候只有一次机会,就是在定义的时候(但是可以局部初始化)typedef与结构体不加typedef时定义结构体:struct Student{ char name[10]; int age;}student1; //student1是结构体的一个结构体变量,且student未定义,而结构体的名字叫做St...

2019-09-16 18:59:52 687

原创 指针数组、数组指针

首先,数组名表示的是数组首元素的地址。int main(){ int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }; int *p = arr; //指针存放数组首元素的地址 int sz = sizeof(arr) / sizeof(arr[0]); int i = 0; for (i = 0; i<sz; i++) { print...

2019-09-11 21:26:02 165

原创 移位运算符、整形提升

移位运算符移位运算符:<<(左移操作符)和>>(右移操作符).<<:当使用左移操作符时,将左边的抛弃,右边补00000 0000 0000 0000 0000 0000 0000 0101——50000 0000 0000 0000 0000 0000 0000 1010——10...

2019-09-07 17:38:19 720

原创 小项目——三子棋

三子棋小项目实现一个三子棋的项目先来走走流程,看有些什么流程:1、首先打印一个开始游戏的菜单,如下这个很好实现,不同的选项用switch case语句实现2、然后进入游戏,需要打印一个棋盘此处棋盘打印是用二维数组的方式实现,先需要一个3*3的二维数组,将所有元素都先置为空格然后在特定的位置上打印横线和竖线就可以,第一行打印出来 | | ,然后第二行打印—|---|—,第...

2019-07-29 17:43:41 230

原创 递归、斐波那契数、strlen的实现和青蛙跳台阶

递归递归的两个条件:1、调用自己本身2、有一个趋于终止的条件但是需要注意,递归的调用是在栈上执行(需要注意溢出的问题)斐波那契数指的是这样一个数列:1、1、2、3、5、8、13、21、……,斐波那契数列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。非递归的方法:#include<stdio.h>//斐波那契数,非递归int Fib(int n)...

2019-07-26 15:56:27 172

原创 求0——999999中的自幂数(水仙花数)、a+aa+aaa+aaaa+aaaaa前n项和

水仙花数求出0~999999之间的所有“水仙花数”并输出。思路:因为数的位数不同,不能按照3位的水仙花数那样求,我们先要求出数的位数,以便于最后进行运算,所以先用一个while循环来求出位数while(tmp /10){ count++; tmp = tmp/10;}得到位数之后,便要把数的每一位拿出来做次方运算,用一个while循环得到每一位再做pow(x,y)的运算pow(...

2019-07-22 17:12:22 587

原创 typedef与#define、static与extern的区别

typedef和#define的区别首先来清楚二者的用法:typedef (类型名称) (类型标识符);表示为一个现有的数据类型定义一个新的别名。例子:typedef int intname;表示为int这个数据类型定义了一个intname的别名而#define;#define int intname表示宏定义,在以后的程序中,会把intname替换为int;区别...

2019-07-19 15:44:28 523

原创 求1/1-1/2+1/3-1/4+.......+1/99-1/100的值

1/1-1/2+1/3-1/4+…+1/99-1/100求1/1-1/2+1/3-1/4+…+1/99-1/100的值思路:方法一:从题中观察得知,分母为奇数时,是加,分母为偶数时,是减,所以自然可以得到在总的相加之前,来进行奇偶数的判断,然后觉得是用加还是用减实现方法:#include<stdio.h>//计算1/1-1/2+1/3-1/4+.......+1/99-1/...

2019-07-18 15:35:30 2922

原创 交换数值、冒泡排序、最大公约数与素数

交换两个值(不引入第三个变量)现有两个值,要求不引入第三个变量的方法来交换两个数思路:两个数相加之后再去减掉另一个值实现方法:#include<stdio.h>//交换两个变量的值(不引入第三个变量)int main(){ int x = 10, y = 20; printf("x=%d,y=%d\n", x, y);//交换之前的值 x = x + y; ...

2019-07-16 16:33:54 223

原创 嗯,小杨同学上路了

我who I am?是的,是一名大学生,关于我学啥的?曾经有一位学长给我说,大学里有两种东西不好学,一种是力,一种是电,然后就巧了,我就学的是电。电子信息工程,这东西学出来到底能干啥?我至今也不是很清楚,但还是选了它。其实我最想读的专业并不是这个,想读的是同院的另一个专业,但是…但是没有但是了。并且,越到学到后面,觉得学这些还是有一些用的,嗯,也挺好的!然后就是我的编程了,这东西呢,确确实实相对...

2019-07-15 18:51:06 339

翻译 用C语言写一个简单的开机自启动关机小程序

用C语言写一个简单的开机自启动关机小程序对于我们这些刚学C语言的小白们来说,一个简单且有趣的小程序可以极大的提高我们对C语言的兴趣,而今天我学到了一个开机的时候自启动的一个关机小程序#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;string.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; int main() { char .

2018-11-08 21:31:50 2544

空空如也

空空如也

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

TA关注的人

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