自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Bean的作用域和生命周期

变量的作用域是指一个变量生效的范围,作用的范围。比如定义了一个类变量,就意味着类里面的所有方法都可以使用;如果变量定义在方法里面,就称为方法变量,方法变量只能在方法里面去使用。

2023-09-13 23:45:06 162

原创 如何简单的获取Bean对象?

(因为构造方法注入可以不依赖@Autowired,在所有的类里面都是要这样去写构造方法的,构造方法在new类的时候,必须要传值,传值要么是个人去传,要么是IoC框架去传,传完值之后就可以使用了,所以构造方法注入的通用性是最好的)。可以看到有多个构造方法时,代码报错了,因为有多个构造方法时,就不确定到底哪个构造方法需要注入,哪个构造方法不需要注入。采用属性注入只需要声明一个类类型的变量,并在前面加上 @Autowired,这样就可以获得对象。构造方法注入,就是生成当前类的构造方法,然后进行注入。

2023-09-13 14:17:59 219

原创 ApplicationContext和BeanFactory有什么区别?

相同点:都是容器管理对象,都可以获取Bean对象。那么他们有什么相同点和区别呢?

2023-09-09 19:51:56 305

原创 Spring基础及IoC容器的理解

容器是用来容纳某种物品的装置,在之前的学习中,我们接触到的容器有List/Map(数据存储容器)Tomcat(Web容器)。Spring就是一个IoC容器,IoC(Inversion of Control)翻译成中文就是“控制反转”的意思,也就是说,Spring是一个“控制反转”的容器。

2023-09-08 13:35:44 143

原创 JSP--Java的服务器页面

jsp的主要作用是代替Servlet程序回传html页面的数据,因为Servlet程序回传html页面数据是一件非常繁琐的事情,开发成本和维护成本都非常高。jsp的全称是Java server pages,翻译过来就是java的服务器页面。

2023-08-01 19:40:50 594

原创 Servlet技术及代码实现

重点实现Service方法,因为Service方法是专门用来处理请求和响应的。首先要新建一个JavaEE动态的Web工程。

2023-05-16 14:50:21 503

原创 JavaScript相关知识总结

顾名思义就是JavaScript和查询(Query),JQuery是辅助JavaScript开发的js类库。(使用的时候加载JQuery库)xml是可扩展的标记型语言。用来保存数据,而且这些数据具有自我描述性。它还可以作为项目或者模块的配置文件。还可以作为网络传输数据的格式(现在以JSON为主)。

2023-05-15 18:08:51 388

原创 IDEA和Tomcat服务器的整合

IDEA工程部署到Tomcat上运行

2022-10-22 17:11:01 2104

原创 关于TCP和IP的网络知识总结

一、网络原理1.层次划分(TCP/IP):应用层–>传输层–>网络层–>数据链路层2.局域网内,数据如何通信:数据的广播的特性(MAC地址),冲突域3.局域网内,应用层和应用层之间如何通信:从上往下,不断封装;从下往上,不 断解包,不断分用(分用决定了这份数据到底给谁,tcp?udp?哪个进程?)4.跨局域网的情况下,应用层和应用层如何通信:跨局域网应用层之间通信...

2020-02-14 16:53:29 293

原创 测试类型

按研发划分的四个测试阶段一、 单元测试(模块测试)概念:对模块(软件设计的最小单位)进行测试,具体是对模块里面的代码进行测试,即对接口,以及路径是否完全覆盖,数据结构,错误处理,边界进行测试。测试对象:模块测试人员:白盒测试工程师或研发人员测试阶段:编码后或编码前(TDD测试驱动开发,研发人员依照测试用例写代码)测试方法:白盒测试(对代码进行测试,要求测试人员具备对代码的开发能力 )...

2020-02-11 12:27:05 533

原创 编写测试用例的七种方法

一、五种编写测试用例的方法:1.基于需求难点:读出需求以外的测试点2.等价类(输入)思想:减少测试用例,解决输入无穷问题使用场景:输入无穷概念:无穷的测试分为N个类,然后从类里面取一个数据测试,只要这一个数据通过测试,那么这一类数据全部通过3.边界值(输入和输出的边界值)注意:取值有规则(开区间和闭区间)闭区间(向外取值)【1,50】 0,1,50 ,51开区间(向内...

2020-02-11 09:51:25 6634

原创 俄罗斯方块游戏代码

/*俄罗斯方块游戏java代码这里由五个类组成,每个类一个文件,放在同一文件夹底下,运行ErsBlocksGame文件即可*/ import javax.swing.*;import java.awt.*;import java.awt.event.*; /** * 游戏主类,继承自JFrame类,负责游戏的全局控制。 * 内含 * 1, 一个G...

2020-01-03 11:44:19 1662

原创 软件测试基础知识总结

1. 软件测试的生命周期需求分析–>测试计划–>测试设计、测试开发–>测试执行、测试评估2.软件的生命周期需求分析 计划 设计 编码 测试 运行维护3.开发模型和测试模型:瀑布模型:特点:串行的,适合于需求比较稳定的项目缺点:测试阶段比较晚,发现缺陷的时机比较晚螺旋模型:特点:渐进式的,适合庞大,复杂,风险比较大的项目缺点:风险投入的时间,人...

2020-01-01 21:30:49 250

原创 网络编程套接字

预备知识:1. 源IP地址和目的IP地址在IP数据包头部中,有两个IP地址,分别叫做源IP地址和目的IP地址。只能将数据发送到对方的机器上并不能区分是哪个程序。2. 端口号端口号(port)是传输层协议的内容是一个32位的整数用来表示一个进程,告诉操作系统,当前的这个数据要交给哪一个进程来处理IP+端口号,标识网络上的唯一一台机器上的唯一进程一个端口号只能被一个进程占用注意:一...

2019-12-26 12:43:52 145

原创 通过udp协议实现简单客户端和服务器

首先我们要清楚:1.DatagramSocket 和 DatagramPacket 两个类是 基于UDP 协议进行通信的包装类。2.实现两个客户端通过 UDP协议通信,使用DatagramSocket 和 DatagramPacket类有如下几个步骤,分为客户端和服务端:客户端:1),实例化DatagramSocket类(带上指定端口),创建客户端2),准备数据,数据是以字节数组发送的...

2019-12-25 19:26:05 778

原创 计算机网络知识总结

计算机网络网络的发展网络协议– OSI– TCP/IP网络传输的基本流程一、网络的发展1.局域网(LAN Local Area Network)设备:交换机(switch)2.广域网(WAN Wide Area Network)设备:路由器(router)3.城域网(MAN Metropolitan)二、网络协议...

2019-12-25 14:03:30 185 2

原创 生产者消费者模型

利用阻塞队列实现的生产者消费者模型:import java.util.Random;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;public class UseBlockingQueue { /* 如果满了就不能再往里放了,如果空了就不能再往...

2019-12-04 20:48:30 81

原创 解决线程安全问题——同步代码块/同步方法/静态同步方法

当我们使用多个线程访问同一资源的时候,且多个线程中对资源有写的操作,就容易出现线程安全问题。要解决上述多线程并发访问一个资源的安全性问题:也就是解决重复票与不存在票问题,java中提供了同步机制(synchronized)来解决。为了保证每个线程都能正常执行原子操作java引入了线程同步机制有三种方法完成同步机制:1.同步代码块synchronized关键字可以用于方法中的某个区块中,表...

2019-12-03 21:56:57 467 1

原创 线程安全问题产生的原理

先来看一个实现卖票的程序:public class TicketSell { public static class RunnableIimpl implements Runnable { //定义一个多个线程共享的票源 private int ticket = 100; //设置线程任务:卖票 @Override ...

2019-12-02 23:36:48 136

原创 java中文件的相关操作总结

首先回顾冯诺依曼体系:输入 程序 输出键盘 屏幕文件 文件(硬盘)网络 网络1.如何从Input中把数据读到进程中来2.如何把数据输出到Output去程序设计中的分层问题1.继承/实现2.操作系统3.界面–操作–数据存储1.输入源可能很...

2019-11-29 20:25:58 320

原创 测试基础知识

一、测试模型:1.V模型2.W模型3.软件测试的生命周期需求分析----测试计划----测试设计、测试开发----测试执行----测试评估4.描述缺陷的要素版本、环境、步骤、数据、预期结果、实际结果、附件5.缺陷的级别崩溃 严重 一般 次要二、bug的生命周期New:新发现的bug,由测试人员发现Open:确认是bug,指派给相应的研发人员从New到Open都是有...

2019-11-28 20:45:40 139

原创 多线程知识点复习

一、进程和线程1.进程是系统进行资源分配的最小单位 ,线程是程序执行的小单位2.一个进程可以有一个或者多个线程3.线程的启动比进程轻量级,有时也把线程叫轻量级进程二、线程安全问题是如何引发的:1.基本条件是出现了数据共享了2.一般也是因为共享数据出现写的情况了,如果共享数据只是读取也不会出现线程安全问题3.三点(原子性,内存可见性,代码重排序)三、Java中有哪些机制保证线程安全:...

2019-11-26 13:24:39 77

原创 java中synchronized关键字的用法

Java中有哪些机制保证线程安全初阶阶段,只学习几个基本1.synchronized ——监视器锁 ——monitor lock2.volatile 关键字3.基本通信 wait/notify…synchronized语法:1.作为方法的一个修饰符2.作为代码块出现演示代码:public class SynchronizedDemo { public void met...

2019-11-10 15:39:18 122

原创 多线程

CPUcpu:中央处理器,对数据进行计算,指挥电脑中的软件和硬件干活cpu的分类: AMD Inter线程线程属于进程是进程中的一个执行单元,负责程序的执行多线程的好处:1.效率高2.多个线程之间互不影响线程调度:分时调度:所有线程轮流使用CPU,平均分配每个线程占用cpu的a时间强扎实调度:如果线程的优先级相同,那么会随随机选择一个(线程随机性),java使用的为抢占式调...

2019-11-09 18:56:14 77

原创 异常(受查异常,非受查异常)

2.异常: 1.作用 2.语法 1.抛出异常的语法 throw异常类型的对象 2.try - catch finally try{可能发生异常的操作} catch(异常类型 a){} finally{} 3.定义异常(定义一个类,全部来自Throwable接口(父类)下面的) ...

2019-11-05 18:34:03 343

原创 MySQL基本语法总结

数据库的创建及其操作1.创建数据库:语法:create database 数据库名;2.显示数据库:语法:show databases ;//显示当前有的数据库3.使用数据库:语法:use 数据库名;4.删除数据库:语法:drop database 数据库名:表的创建及其操作1.表的创建:语法:CREATE TABLE table_name (field1 ...

2019-10-28 17:26:51 95

原创 Java集合框架

import java.util.ArrayList;import java.util.Collection;/* JAVASE提供了满足各种需求的API(类和接口) 了解继承与接口操作架构 */public class DemoAPI { public static void main(String[] args) { //创建集合对象,可以使用对象 ...

2019-10-23 14:59:20 94

原创 StringBuilder类小结

StringBuilder类:字符串缓冲区public class StringDemo { /* StringBuilder类:字符串缓冲区 字符串是常量,他们的值在创建之后就不能更改,字符串的底层是一个被final修饰的数组,不能改变,是一个常量 进行字符串的额相加,内存中就会有多个字符串,占用空间,效率低下 String s="a"+"b"+"c"...

2019-10-23 11:25:15 156

原创 二分查找

首先要确定查找的区间:如下图:public class BinarySearch { int binarySearch(int array[],int size,int value){ int left=0; int right=size; while(left<right){ int m...

2019-10-18 16:20:50 128

原创 冒泡排序

冒泡排序:首先要确定比较的区间:对于黑色箭头来说比较的区间是[0,size-2-i],对于 绿色箭头来说比较的区间是[1,size-1-i]也可以写成黑色:[0,size-1-i),绿色:[1,size-i)public class BubbleSort { void BubbleSort(int array[],int size){ int isSorted;...

2019-10-18 16:04:01 68

原创 Map和Set的使用

自定义类型作为TreeMap的K自定义类型作为TreeSet的E要求:1.类型是Comparable的2.构造时传入Comparator泛型中的父子类型(重要)MyArrayList 不是 MyArrayList的父类型MyArrayList 也不是 MyArrayList的父类型需要使用通配符来确定父子类型MyArrayList<?> 是 MyyArrayList&l...

2019-10-13 14:13:33 116

原创 对象的向上转型和向下转型

1.对象的向上转型,其实就是多态写法:   格式:父类名称  对象名 = new  子类名称();             Animal   animal = new  Cat();  ...

2019-10-12 17:18:59 231

原创 多态的内容小结

多态中成员变量及成员方法的使用特点面向对象三大特征:封装性,继承性,多态性extends 继承或者 implements实现 是多态性的前提左父右子就是多态代码当中体现多态 ,其实就是一句话,父类引用指向子类对象格式:父类名称 对象=new 子类名称();【左父右子】或者:接口名称 对象名 =new 实现类名称();访问成员变量变量的两种方式:1.直接通过对象名称访问...

2019-10-12 16:37:42 112

原创 接口的内容小结

在Java 9+版本中,接口的内容可以有:1.成员变量其实是常量,格式:public static final 数据类型 常量名称=数据值;注意:常量必须进行赋值。而且一旦赋值不能改变,常量名称完全大写,用下划线进行分割2.接口中最重要的就是抽象方法,格式:public abstract 返回值类型 方法名称(参数列表);public 和 abstract都是可以省略的注意:实现...

2019-10-12 15:45:39 115

原创 搜索树

搜索树顾名思义就是二叉搜索树又称二叉排序树,或者是一颗空树,或者是具有以下性质的树:1.若它的左子树不为空,则左子树上所有节点的值都小于根节点的值2.若它的右子树不为空,则右子树上所有节点的值都大于根节点的值3.它的左右子树也分别为二叉搜索树搜索树的主要操作:查找 插入 删除== 查找==若根节点不为空:如果根节点key==查找key 返回true如果根节点key&...

2019-10-11 19:32:29 1338

原创 Java对象的比较

1.==和equals的区别:等号表示的是两个引用是否指向同一个对象。p.equals(q)表示的是p指向的对象和q指向的对象是否语义相等。2.关于对象值大于,等于,小于的比较—基于自然顺序。package demo2;import java.util.Comparator; class PersonNameComparator03 implements Comparator&l...

2019-10-07 22:32:55 80

原创 继承和抽象类

Java语言是单继承的一个类的直接父类只能有唯一一个。class A{}class B extends A {} //正确class C{}calss D extends A,C{} //错误Java语言可以多级继承一个子类的直接父类是唯一的,但是一个父亲可以拥有很多个子类class A{};class B extends A{} //正确class C ext...

2019-10-02 19:11:22 81

原创 继承中super和this关键字用法总结

继承中方法的覆盖重写重写(Override):在继承关系当中,方法的名称一样,参数列表【也一样】,覆盖,覆写。重载(Overload):方法名称一样,参数列表【不一样】方法的覆盖重写的特点:创建的是子类对象,则优先用子类方法方法覆盖重写的注意事项:1.必须保证父子类之间方法的名称相同,参数列表也相同@Override 写在方法前面用来检测是不是有效的正确覆盖重写(最好写上,更加安全)...

2019-10-02 11:39:59 399

原创 快速排序quickSort()

排序:重点–>稳定性:保证排序后相同的数据相对位置不变,则具备稳定性一次使得一个数据有序(减治排序)插入排序:在无序区间选择第一个数,在有序区间遍历,查找合适的位置插入选择排序:遍历无序区间,查找最大数的下标冒泡排序:遍历无序区间,通过两两比较,将最大的数挤到最后快速排序(重点)总览过程:1.在排序区间选择一个基准值2.遍历整个待排序区间,将比基准值小的(可能包含==)放在...

2019-09-26 21:02:49 95

原创 希尔排序

希尔排序法又称为缩小增量法,希尔排序的基本思想是:先选定一个整数(通常是gap/3+1),把待排序文件所有记录分成各组,所有的距离相等的记录分在同一组内,并对每一组内的记录进行排序,然后gap=gap/3+1得到下一个整数,再将数组分成各组,进行插入排序,当gap1时,就相当于直接插入排序。其实希尔排序是对直接插入排序的优化,直接插入排序组中记录的间隔是1,而希尔排序是取一个特定的整数,进行分组,...

2019-09-26 18:09:20 161

空空如也

空空如也

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

TA关注的人

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