自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 问答 (1)
  • 收藏
  • 关注

原创 SpringBoot自动配置机制

SpringBoot框架最重要的目标之一就是简化基于Spring的开发,因此SpringBoot提供了一系列的特性来实现这个目的,其中比较重要的有自动配置机制,日志和属性配置等。

2022-12-30 09:32:07 228 2

原创 Web应用三层架构和Java后端(应用层)三层架构

2.接口层(API层):该层用来对接UI层,为UI层提供数据集业务处理接口,一般将其称为Controller。此外,现在的应用开发一般会对接多种用户端UI层,所以尝尝这里使用Rest方式提供API接口,供各个应用端使用,因此也可以称之为API层。1.业务逻辑层:该层主要承担两大职责,一是定义业务领域对象,或称为业务实体,二是业务逻辑的具体实现。2.应用层:是系统核心价值部分,其关注业务规则的制定和业务流程的实现,负责与UI层进行交互及数据存储的处理,常称为后端。上述三层应用架构指的是整个应用架构上的划分。

2022-12-29 10:05:42 2900

原创 Spring5—IOC控制反转、注解开发

这段代码的原理:把全类名和id配置在beans.xml文件中,然后ClassPathXmlApplicationContext容器会读取这个beans.xml配置文件,通过反射去创建全类名的对象,把id作为key和发射创建出来的对象作为value存进beanMap中,我们要使用的时候通过getBean()方法传入id,就能获取到对应的对象啦,简单地实现了解耦。Spring的IOC原理也是如此,控制反转,之前对象的控制权在类手上,我们要亲自去new出来,现在反转后到了Spring容器手上。

2022-12-18 17:02:44 159

原创 一、vue基础(中)

使用这些API:push(),shift(),unshift(),splice(),sort(),reverse()如果不存在对数据的逆序添加,逆序删除等破坏顺序操作,仅用于渲染列表用于展示,使用index作为key是没有问题的。key是虚拟DOM对象的标识,当数据发生变化时,Vue会根据新数据生成新的虚拟DOM。的函数(定时器的回调函数、promise的回调函数ajax的回调函数等),最好写成。备注:使用v-if的时候,元素可能无法获取到,而使用v-show一定可以取到。(key的内部原理)

2022-12-17 21:13:47 103

原创 一、vue基础(上)

学习路线:vue基础 —>2.vue-cli —>3.vue-router —>4.vuex —>5.element-ui —>6.vue3

2022-12-16 09:06:25 116

原创 学习Java第二十三天(二):1、JDK动态代理 2、CGlib代理

CGlib是一个第三方的开发包,用的时候需要自己事先下载导入到项目中(cglib-nodep-3.2.6.jar)通过java.lang.reflect Class Proxy类来创建代理类对象。只能为实现过某个接口(这里指售票接口)的java类提供代理对象。所有的java类提供代理类对象(可以弥补JDK代理的缺点)总结:JDK动态代理与CGlib动态代理区别。推荐书籍:大话设计模式(java版)

2022-12-15 18:12:52 91

原创 学习Java第二十三天:1、学习设计模式 2、单例模式(懒汉式、饿汉式)

设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的实验和错误总结出来的。当类被频繁与销毁的时候,我们使用单例模式,这样可以减少了内存的开销,避免对资源的多重占用。设计模式是一套被反复使用的,多数人知晓的,经过分类编目的,代码设计经验的总结。使用设计模式是为了重用代码,让代码更容易被他人理解,保证代码可靠性。常见的设计模式有23种(单例模式,工厂模式,代理模式......)(因为懒,只有用的时候,才new )设计模式的作用是什么?

2022-12-15 18:11:29 99

原创 学习Java第二十二天:1、认识JSON 2、生成JSON 3、解析JSON

jackson第三方的开发包生成json数据(jackson-core-2.13.4.jar、jackson-databind-2.13.4.jar、json-simple-1.1.jar)jackson第三方的开发包解析json数据(jackson-core-2.13.4.jar、jackson-databind-2.13.4.jar、json-simple-1.1.jar)我们以后所面临的json数据都是互相嵌套的,json数组中有json对象,json对象中有json数组。JSON的作用是什么?

2022-12-14 12:56:42 216

原创 学习Java第二十一天(一):1、基于UDP协议的通信程序

DatagramPacket(byte[] buf,int length,InetAddress address,int port)构造用于发送长度的分组的数据报包lenght,指定主机上到指定的端口号。(打包被发送的数据/接收发来的数据)通过调用接收数据的DatagramSocket对象的receive方法接收数据报包到空的数据报包。int getPort()返回发送数据报的远程主机上的端口号,或从中接收数据报的端口号。int getLength()返回要发送的数据的长度或接收的数据的长度。

2022-12-13 21:15:00 169

原创 学习Java第二十一天(二):使用多线程+TCP实现简单聊天程序

【代码】学习Java第二十二天:使用多线程+TCP实现简单聊天程序。

2022-12-13 17:05:50 517

原创 学习Java第二十天:建立基于TCP的网络通讯程序----示例演示

示例三:完成客户端持续向服务器发送数据,还能接收服务器返回的信息,服务器持续接收到客户端发送来的数据,还可以向客户端返回信息。示例二:完成客户端持续想服务器发送数据,服务器持续接收客户端发送来的数据。示例一:完成客户端想服务器发送数据,服务器接收到客户端发送来的数据。服务器端接收到的数据 Hello,World!示例四:多客户端,配置一台服务器,独立运行。客户端发送数据 Hello,World!---手动分割线------手动分割线------手动分割线---

2022-12-12 19:45:00 251

原创 学习Java第十九天(二):1、Java中的网络编程

第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入established状态,完成三次握手,随后Client与Server之间可以开始传输数据了。URI是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,是绝对的。URL是URI的一个子集。

2022-12-11 20:57:10 288

原创 学习Java第十九天(一):1、Java中的网络编程

我们通过ip可以找到网络中具体那个通信终端的设备,而具体需要访问这个设备中的那个资源(软件)信息,这是由于设备中运行的资源(软件)肯定很多,这时每个资源(软件)必须在给一个唯一的编号(标识)。所有的网卡都有一个唯一的物理地址,但是这个地址非常的不好记,于是给每个网卡又分了一个逻辑(IP)地址,这个逻辑地址就是ip地址。端口是一个设备(电脑,手机等)上某个应用程序(软件)的唯一标识,设备中运行的任何一个软件,只要启动,就肯定会有一个唯一的编号与其整个软件绑定。它有一个对应的默认的域名:localhost。

2022-12-11 14:25:22 242

原创 学习Java第十八天:1、Java中的多线程

进程:在操作系统中运行的某个软件/某个程序任何软件/程序要运行都要被加载到内存中,而内存负责运行这个软件/程序所需要的那些内存空间,就被成为当前软件在内存你中的一个进程。进程需要依赖于操作系统进程就是在操作系统中动态运行的静态代码。

2022-12-10 20:34:57 94

原创 学习Java第十七天:1、序列化和反序列化

作业2:复制文件:D:\image-20221204205705789.png ---copy--->E:\20220202\image-20221204205705789.png。不实现此接口的类将不会使任何状态序列化或反序列化,可序列化类的所有子类型都是可序列化的。为被序列化的java对象的生成类实现一个序列化接口(Serializable)Reader结尾的是字符输入流,将读取的数据保存给String/字符数组。反序列化---将二进制流数据转换成java对象的过程。特殊---该接口一个方法都没有。

2022-12-09 15:02:06 84

原创 学习Java第十六天:Java中的输入流和输出流

答:因为Scanner对象在创建的时候使用过了System.in,System.in默认就是键盘输入,只要在创建BufferedReader对象的时候,使用System.in就可以完成键盘输入,BufferedReader(Reader in)参数是Reader字符输入流,System.in是InputStream类型字节输入流。FileOutputStream(File file,boolean append) --- 通过File对象创建一个是否追加的字节输出流。

2022-12-08 21:55:43 907

原创 学习Java第十五天:1、文件操作

文件---把数据持久化到磁盘的载体文件的组成:文件的基本属性(文件名称,文件类型,文件的创建时间,文件的大小......)文件中的内容(数据)我们要想通过java提供的输入输出流读写文件中的内容就得先学会操作文件。Java中为我么提供了一个专门操作文件的java类---java.io.File类File类的对象创建和常用方法File类的定义 public class FileFile类的静态成员变量:static String pathSeparator 与系统相关的路径分隔符字符,为方便旗舰,表示为字符串

2022-12-07 22:55:25 103

原创 学习Java第十四天:实战开发——打怪功能实现,架构师使用策略模式实现一刀掉999HP

需求:角色对怪物实施攻击,一次攻击后,怪物损失部分HP,当HP损失完后,怪物死亡。角色可装备不同武器,目前有木剑、铁剑、魔剑三种。木剑每次攻击,怪物损失20HP,铁剑每次攻击,怪物损失50HP,魔剑每次攻击,怪物损失100HP,并有50%的概率出现暴击*(暴击伤害加一倍,怪物损失200HP)。需求分析:HP是怪物的一个属性成员,武器是角色的一个属性成员,类型使用字符串描述角色所装备的武器。角色类有一个攻击方法,以被工具怪物为参数,当实施一次攻击时,攻击方法被调用,这个方法首先判断角色拿的什么武器,据此对被攻

2022-12-07 09:10:07 406

原创 学习Java第十三天:1、集合框架

Java中集合框架的体系结构集合 --- “存放一堆乱七八糟的数据”框架 --- Java做好的类库java中的集合框架总体被分为2个大部分第一个大部分是用来处理单列数据的集合,最大的接口是Collection接口例如:100 “hello"Collection接口之下有两个子接口:List接口/Set接口List接口是用来处理有序的单列数据,可以有重复的元素。ArrayList类用来处理有序的单列数据,可以有重复的元素。添加的元素会自动扩展。动态数组结构,查询速度快,添加删除速度慢。LinkedList类

2022-12-06 21:20:46 96

原创 学习Java第十二天:1、时间日期的操作类 2、常用类--Math类 3、常用类--Scanner类

1. Calendar日历类 Calendar类在使用的时候不是通过new + 构造方法创建出来的对象。 定义:public abstract class Calendat 构造方法: protected Calendar() 构建具有默认时区和默认的FORMAT语言环境的日历。 protected Calendar(TimeZone zone,Locale aLocale)构造具有指定时区和区域设计的日历。 创建Calendar类的对象需要使用它提供的静态方法: static

2022-12-05 17:30:09 104

原创 学习Java第十一天:1、Java中的字符串操作类String 2、Java中的操作字符串类StringBuilder,StringBuffer

String类如何创建对象,有哪些常用方法?String类 --- java的JDK提供好的开发类。(java.lang包不用import)String类 --- 使用final修饰符修饰的,说明它没有子类,不可被继承。String类创建对象 --- 构造方法1.String()创建一个空字符串对象2.String(byte[] bytes,int offset,int length)字节数组转换成字符串3.String(char[] value,int offset,int count)字符数组转换成字符

2022-12-04 15:17:06 148

原创 学习Java第十天:1、文件上传 2、文件上传优化

【客户端】输入流,从硬盘读取文件数据到程序中。【客户端】输出流,写出文件数据到服务端。【服务端】输入流,读取文件数据到服务端程序。【服务端】输出流,写出文件数据到服务器硬盘中。2、文件上传优化 文件名称写死的问题服务端,保存文件的名称如果写死,那么最终导致服务器硬盘,只会保留一个文件,建议使用系统时间优化,保证文件名称唯一,代码如下:FileOutputStream fis = new FileOutputStream(System.currentTimeMillis()+&quot

2022-12-03 23:12:16 451

原创 学习Java第九天:TCP通信协议

TCP通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client)与服务器端(Server)。两端通信时步骤:服务端程序,需要事先启动,等待客户端的连接。客户端主动连接服务器端,连接成功才能通信,服务端不可以主动连接客户端。在java中,提供了两个类用于实现TCP通信程序:客户端:java.net.socket类表示。创建Socket对象,向服务端发出连接请求,服务端响应请求,两者建立连接开发通信。服务端:java.net.ServerSoket类表示。

2022-12-02 23:35:33 824

原创 学习Java第八天:Java网络编程

由于互联网的蓬勃发展,IP地址的需求量愈来愈大,但是网络地址资源有限,使得IP的分配越发紧张,为了扩大空间,拟通过IPv6重新定义地址空间,采用128位地址长度,每16个字节一组,分成8组十六进制数,表示成ABCD:EF01:2345:6789:ABCD:EF01:2345:6789,号称可以为全世界的每一粒沙子编上一个网址,这样就解决了网络地址资源数量不够的问题。两种架构各有优势,但是无论哪种架构,都离不开网络的支持,网络编程,就是在一定的协议下,实现两台计算机的通信的程序。

2022-12-01 22:27:48 172

原创 学习Java第六天:1、Java中的抽象类 2、Java中的接口

抽象类实际上就是提供同一种类型事物的公共内容,由抽象类的子类根据自身的实际情况,来实现这个抽象类提供的公共内容,这样子类就需要创建这个公共内容,只需要继承来重写一下就好。我们可以理解为汽车就是一个抽象类,出租车/公交车都是汽车的子类,出租车/公交车就会从汽车中继承来收费功能然后在根据自身的实际情况,重写收费功能就可以得到属于自己的收费功能实现。抽象类对象可以访问抽象类中的实例变量,类变量,构造方法,实例方法,类方法(抽象方法实际上是子类重写以后的方法)

2022-11-29 22:32:10 111

原创 学习Java第五天:1、Java的继承特征 2、java中的包 3、Java中的权限修饰符 4、方法重写

总结:创建子类对象需要子类的构造方法, 通过子类构造方法创建子类对象是默认会调用父类的无参数构造方法,当父类没有无参构造方法时,我们应该在子类的构造方法中的第一行通过super(参数),调用父类有参数的构造方法来完成子类对象的创建。子类对象创建 --- 子类的构造方法中会默认调用父类的无参数构造方法(没有父就没有子)如果一定要访问父类有参数的构造方法,就需要在子类的构造方法中的第一行通过“super(参数值)”,就可以指定调用父类的任意一个构造方法。现有的类叫父类(超类、基类),构建出来的新类叫子类。

2022-11-28 19:39:05 138

原创 学习Java第四天:1、Java中的类 2、Java中类的变量 3、Java中类的方法 4、方法重载 5、同一个类中方法与变量的调用关系 6、Java中的对象

在同一个类中成员变量与某一个方法中的局部变量名称相同,这时我们在方法中使用这个成员变量的时候,得到的结果是局部变量的值,此时就是方法中的局部变量将类中的成员变量的值隐藏了,这就是成员变量的隐藏。注意:方法重载与方法的返回值类型没有关系,与方法的参数列表有关,方法的名称相同,方法的参数个数、参数类型、参数顺序不同构成方法重载。有返回值,方法体中的最后一句是return,返回的数据值要与方法的返回值类型匹配,调用有返回值的方法需要定义变量来接受方法的返回值。

2022-11-27 16:37:33 131

原创 学习Java第三天:1、Java中的语句 2、Java中的数组

顺序结构(代码从上往下一行一行的逐条执行)选择结构(if语句 , switch语句) 循环结构(for循环,while循环,do...while循环)学习的关键:语法格式,执行过程总结:比较三个循环的区别?应用的场景。for循环有定义循环增量/减量具体位置,需要明确循环次数。while循环和do...while循环没有定义循环增量/减量具体位置,往往都是自己定义在循环体中的最后一句,不需要考虑循环次数。 break语句与continue语句的用法和区别break语句--

2022-11-26 10:31:34 170

原创 学习Java第二天:1、Java的注释 2、创建一个名字叫Hello的java类,加入注释 3、Java的标识符 4、Java的关键字 5、Java中的变量 6、Java中的数据类型

算术运算符: + , - , * , / , %(求余/取模),++(变量++:先用后加1,++变量:先加1后用),--(变量--:先用后减1,--变量:先减1后用)。上面的例子中我们认识了一些java中的元素,例如java类,方法,数组这些元素都有自己的名称,这些名称在java中就被认为是标识符。关键字 --- java程序语言为一些单词赋予了特殊的含义,这些被赋予特殊含义的单词就是关键字,被java程序语言占用。变量的初始值 --- 默认的,也可以自己赋一个初始值,要和数据类型匹配。

2022-11-25 14:10:15 153

原创 学习Java第一天:1、Java是什么?2、面向对象的编程思想的特点 3、Java的开发工具 4、安装JDK和配置环境变量 5、Java程序的运行过程 6、Java语言的特点

java是一门面向对象的程序设计语言。面向对象是一个编程思想,思想只可意会,不可言传。

2022-11-24 17:39:11 642 2

空空如也

空空如也

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

TA关注的人

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