自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【SpringCloud】注册中心和Ribbon负载均衡

实际部署中服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,希望性能好的机器承担更多的用户请求,但默认情况下NacosRule是同集群内随机挑选,不会考虑机器性能的问题。Ribbon默认采用的是懒加载,即第一次访问时才会去创建LoadBalanceClient,请求时间会很长,而饥饿加载会在项目启动时创建,降低第一次访问的耗时,可配置饥饿加载。这些实例分布雨全国各地的不同机房,Naocs将统一机房内的实例划分为一个集群,一个服务可以包含多个集群,每个集群下可以有多个实例,形成分级模型。

2023-11-28 16:42:32 369 1

原创 【SpringCloud】认识微服务、服务拆分以及远程调用

分析:需要在order-service中向user-service发起一个http请求,调用http://localhost:8081/user/{userId}接口。分布式架构虽然降低了服务耦合,但是服务拆分时也有很多问题需要思考:服务拆分的粒度、服务之间调用、服务之间调用关系的管理,需要制定一套行之有效的标准来约束分布式架构。**案例需求:**修改order-service中的根据id查询订单业务,要求在查询订单的同时,根据订单中包含的userId查询出用户信息,一起返回。架构简单,部署成本低。

2023-11-22 17:40:53 709

原创 【MybatisPlus】简介与使用

MyBatisPlus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生官网:https://baomidou.com/无侵入:只做增强不做改变,不会对现有的工程产生影响强大的CRUD操作:内置通用Mapper,少量配置即可实现单表CRUD操作支持Lambda:编写查询条件无需担心字段写错支持主键自动生成内置分页插件开发方式单独使用MyBatis-Plus基于Spring使用MyBatis-Plus。

2023-11-22 16:40:51 634

原创 Linux基础

编辑模式:在命令模式下按下键盘a、i、o键进入编辑模式(–INSERT–插入),当编辑完成后需要通过ESC键重新回到命令模式。①在命令模式下按下键盘的/进入到搜索末行模式,可以在/后输入要搜索的内容按回车出现高亮【自动回到命令模式】②目标目录不存在的情况,将目标文件复制一份放到指定的目录中名字就是目标路径中的名字(改名)③目标目录存在,可以通过声明的方式只将源目录的内容复制到目标目录,源目录本身不参与复制。命令模式:当基于vim打开了文件,默认就是命令模式,可以基于键盘的上下左右键阅读文件。

2023-11-16 17:35:59 118

原创 SpringBoot框架原理

当被@Bean标记的方法在执行的过程中需要其他Bean才可以完成构建,直接在方法的形参上声明即可,Spring会自动在执行该方法的时候去容器中找满足形参类型的Bean注入,如果没有就报错。依赖的提供者编写一个注解,在注解上开启只能够标记在类上/存活到运行期/@Import注解引入要注入的Bean/配置类。在配置类中编写一个方法,将要加载的Bean的类型作为方法的返回值声明,方法名称就是Bean在容器中的名称。依赖的提供者编写一个配置类,将所有要注入到容器中的第三方Bean在配置类中进行声明。

2023-11-14 21:24:54 94

原创 MyBatis的使用(XML映射文件)

可以随着条件的改变随之发生改变的SQL语句就是动态SQL,在MyBatis中只有XML映射文件的方式支持动态SQL动态SQL使用-IF< if >标签的核心功能对条件进行判断,当条件为true,则标签中的内容参与SQL拼接,否则不参与if标签中有一个核心属性test,基于test传递条件可以进行判断(1)在test条件中可以直接获取本次参数的内容并且不需要加#{}(2)test条件中可以基于=、!=、>、>=、<、<=对数据进行判断,并且可以基于and或者or进行多条件连接</

2023-10-28 17:08:30 658

原创 MyBatis的使用(注解方式)

{}和#{}在MyBatis中取值的优缺点对比。

2023-10-28 16:23:06 128

原创 【数据库开发】DQL操作和多表设计

用来查询数据库表中的记录,查询操作分为两部分,单表操作和多表操作,针对于查询而言(相较于增删改更加的灵活)基于目标分析条件转换为SQL语句。

2023-10-08 14:44:35 982

原创 【MySQL基础】概述、DDL和DML

安装商业版本(MySQL Enterprise Edition)该版本是收费的,可以使用30天。官方会提供对应的技术支持。社区版本(MySQL Community Server)该版本是免费的,但是MySQL不会提供任何的技术支持。官网下载地址:https://downloads.mysql.com/archives/community/连接MySQL服务器启动完毕后,然后使用指令,来连接MySQL服务器mysql -u用户名 -p密码 [-h数据库服务器的IP地址 -P端口号]

2023-10-08 10:58:52 134

原创 【Java高级技术】动态代理

通过invokehandler的invoke方法指定代理干的事,这个invoke会被代理的方法在底层回调,参数需要接收(被代理的对象,invoke调用者所需要的参数(数组形式)定义ProxyUtil类:提供静态方法创建代理,接收被代理对象(BigStar),多态返回代理对象Star。(2)重写后的invoke方法:用来指定代理对象的具体功能(回调方法:被sing和dance在底层调用)定义Star接口(保证代理的样子):提供抽象方法,表示需要代理的方法。对象有什么方法想被代理,代理就一定要有对应的方法。

2023-10-05 22:31:55 127

原创 【注解】注解解析与应用场景

定义若干个方法,只要加了MyTest注解,就会触发该方法执行。

2023-10-04 22:49:39 251

原创 【注解】概述、自定义注解以及元注解

注解(Annotation)就是Java代码里的特殊标记,比如:@Override、@Test等,作用是让其他程序根据注解信息来决定怎么执行该程序注意:注解可以用在类上、构造器上、方法上、成员变量上、参数上等位置处就是自己定义注解public @interface 注解名称public 属性类型 属性名() default 默认值;特殊属性名:value如果注解中只有一个value属性,使用注解时,value名称可以不用写注解原理。

2023-10-04 21:40:20 121

原创 【反射】获取类、构造器、成员变量、成员方法以及作用和应用场景

(3)Runtime运行阶段(手动new对象时)->Object提供的方法:public Class getClass();(2)源码阶段(还没有加载到内存)->调用Class提供的方法:public static Class forName(String package)反射(Reflection):加载类,并允许以编程的方式,解剖类中各种成分(成员变量、方法、构造器等)(1)Class对象阶段(已经加载到内存)->Class c1=类名.class。Class提供了从类中获取成员变量的方法。

2023-10-04 17:15:41 102

原创 【Java高级技术】单元测试——概述和快速入门

就是针对最小的功能单元(方法),编写测试代码对其进行正确性测试可以用来对方法进行测试,它是第三方公司开源出来的(很多开发工具已经集成了Junit框架,比如IDEA)优点(1)可以灵活的编写测试代码,可以针对某个方法执行测试,也支持意见完成对全部方法的自动化测试,且各自独立(2)不需要程序员去分析测试的结果,会自动生成测试报告出来。

2023-10-03 20:43:02 594

原创 【TCP和UDP通信】多发多收

(3)使用DatagramSocket对象的receive方法传入DatagramPacket对象。(2)使用while死循环不断的接收用户的数据输入,如果用户输入”886”则退出程序。(3)使用DatagramSocket对象的send方法将数据包对象进行发送。(1)创建DatagramSocket对象并指定端口(接收端对象)(2)创建DatagramSocket对象接收数据(数据包对象)(1)创建DatagramSocket对象(发送端对象)(1)客户端使用死循环,让用户不断输入消息。

2023-10-03 19:38:06 297

原创 【网络通信三要素】TCP与UDP快速入门

可以让设备中的程序,与网络上其他设备中的程序进行数据交互,从而实现网络通信的手段,java.net.*包下提供了网络编程的解决方案。

2023-10-03 18:25:50 1122

原创 【多线程】并发并行与生命周期

进程中的线程是由CPU负责调度执行的,但CPU能同时处理线程的数量有限,为了保证全部线程都能往前执行,CPU会轮询为系统的每个线程服务,由于CPU切换的速度很快,给我们感觉这些线程在同时执行,这就是并发(CPU单核)Java线程的状态:Java总共定义了6种状态,6种状态都定义在Thread类的内部枚举类中。也就是线程从生到死的而过程中经历的各种状态及状态转换。在同一时刻上,同时有多个线程在被CPU调度执行。

2023-09-07 18:08:58 113

原创 【线程池处理任务】Runnable任务和Callable任务

客户端每提交一个任务,线程池就会在核心线程池中创建一个工作线程来执行这个任务,当核心线程中的线程已满时,就会将任务存储到任务队列中,等待核心线程池中的空闲线程来执行,如果任务队列满了线程会在工厂创建临时线程来执行任务,直到当前线程池总线程数量超过最大线程数时就会执行拒绝策略。ExecutorService的常用方法。

2023-09-07 17:50:18 341

原创 【线程池】概述及创建

线程池就是一个可以复用线程的技术。

2023-09-07 17:10:47 169

原创 【多线程】线程安全与线程同步

多个线程同时操作同一个共享资源的时候,可能会出现业务安全问题取钱的线程安全问题场景:两个人他们有一个共同的账户,余额是10万元,如果两个人同时来取钱,并且2人各自都在取钱10万元,可能会出现什么问题?存在多个线程在同时执行同时访问一个共享资源存在修改该共享资源。

2023-09-07 16:10:47 185

原创 【多线程】Thread的常用方法

抢占式调度:优先级高的获取CPU时间相对长一些(不是绝对),如果优先级相同会随机选择,Java中线程的调度模型为抢占式调度,在同一时刻,线程抢夺CPU的执行权是随机的。public final void setDaemon(boolean on):设置当前线程为守护线程,当其他线程执行完毕了,守护线程也就跟着停止了,但不是立刻。public final void setPriority():设置线程优先级。public final int getPriority():获取线程优先级。

2023-09-07 15:14:01 227

原创 【多线程】概述及三种创建方式

线程是程序内部的一条执行流程,程序中如果只有一条执行流程,这个程序就是单线程的程序多线程是指从软硬件上实现的多条执行流程的技术(多条线程由CPU负责调度执行),例如:消息通信、淘宝、京东系统都离不开多线程技术。

2023-09-07 12:11:39 155

原创 【日志技术——Logback日志框架】

我们通常展示信息使用的是输出语句,但它有弊端,只能在控制台展示信息,不能灵活的指定日志输出的位置(文件,数据库),想加入或取消日志,需要修改源代码。③level:ALL为所有,OFF为关闭日志,还可以用来设置打印级别,大小写无关。(1)要使用Logback日志框架,至少需要在项目中整合三个模块。日志级别指的是日志信息的类型,日志都会分级别,优先级由低到高。日志接口:设计日志框架的一套标准,日志框架需要实现这些接口。需求:使用Logback日志框架,记录系统的运行信息。①对Logback日志框架进行控制。

2023-09-07 11:15:46 649

原创 【特殊文本文件——Properties和xml文件】

DTD文档,后缀必须是.dtd,例如book.dtd,在需要编写的XML文件中导入该DTD约束文档<!(5)如果一个文件中放置的是XML格式的数据,这个文件就是XML文件,后缀一般写成.xml。(4)xml中的标签可以自定义属性,属性和标签名用空格隔开,属性值必须用引号引起来。(3)DOM(文档对象模型)解析思想:将文档的各个组成部分看做是对应的对象。(2)xml中的标签可以自定义(可扩展),但必须正确的嵌套。(2)解析XML框架,最知名的是Dom4j(第三方)(1)就是使用程序读取XML文件中的数据。

2023-09-07 10:13:29 143

原创 序列化流与反序列化流

用一个字节序列可以表示一个对象,该字节序列包含该对象的数据、对象的类型和对象中存储的属性等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。public ObjectInputStream(InputStream is):创建对象字节输入流,包装基础的字节输入流。用一个ArrayList集合存储多个学生对象,直接对集合进行序列化即可,ArrayList集合已经实现了序列化接口。将字节序列从文件中读取回来,重构对象,对它进行反序列化。也就是将存储在文件中的Java对象,读入到内存中来。

2023-08-25 15:21:29 120

原创 【数据流】分类与使用

可以实现将数据和其类型一并读写,分为数据输出流DataOutputStream和数据输入流DataInputStream。数据输出流:DataOutputStream继承OutputStream,因此支持写字节的相关方法。数据输入流:DataInputStream继承InputStream,因此支持读字节的相关方法。

2023-08-25 14:37:27 174

原创 【打印流】常用方法以及应用场景

输出语句的重定向(指定打印数据的目的地),前面的代码目的地是控制台,如果项目上线就看不到了,可以使用打印流,指定打印目的地,实现输出语句的重定向。可以实现更方便、更高效地写数据,分为字节打印流PrintStream和字符打印流PrintWriter,使用方便,性能高效,底层封装了高效流。public PrintWriter(OutputStream/Writer/File/String):创建对象并关联对象。public void println(内容):打印任意类型数据。

2023-08-25 11:58:03 128

原创 【字符转换流】概述、使用以及应用场景

如果代码编码和被读取的文本文件的编码是一致的,使用字符流读取文本文件时不会出现乱码如果代码编码和被读取的文本文件的编码是不一致的,使用字符流读取文本文件时就会出现乱码。

2023-08-25 11:21:19 94

原创 【字符流】案例:点名器

我有一个文件里面存储了班级同学的姓名,每一个姓名占一行,要求通过程序实现随机点名器。

2023-07-23 18:13:20 151

原创 【字符流】案例:集合到文件(改进版)

把ArrayList集合中的学生数据写入到文本文件。要求:每一个学生对象的数据作为文件中的一行数据。​ 格式:学号,姓名,年龄,居住地。

2023-07-23 18:11:19 102

原创 【字符流】案例:文件到集合(改进版)

把文本文件中的数据读取到集合中,并遍历集合。要求:文件中每一行数据是一个学生对象的成员变量值。​ 举例:001,郝佳乐,20,西安。

2023-07-23 18:06:59 217

原创 【字符流】案例:集合到文件

把ArrayList集合中的字符串数据写入到文本文件。要求:每一个字符串元素作为文件中的一行数据。

2023-07-23 18:05:18 92

原创 【字符流】案例:文件到集合

把文本文件中的数据读取到集合,并遍历集合。要求:文件中的每一行数据是一个集合元素。

2023-07-23 18:02:45 104

原创 【字符缓冲流】复制Java文件

把模块目录下的“ConversionStreamDemo.java”复制到模块目录下的Copy.java。根据数据源创建字符缓冲输入流对象。根据目的地创建字符缓冲输出流对象。使用字符缓冲流特有功能实现。

2023-07-23 18:00:34 66

原创 【字符缓冲流】特有功能

【代码】【字符缓冲流】特有功能。

2023-07-23 17:58:35 28

原创 【字符缓冲流】定义与使用

BufferedWriter:将文本写入字符输出流,缓冲字符以提供单个字符,数组和字符串的高效写入,可以指定缓冲区大小或者可以接受默认大小。默认值足够大,可用于大多数用途BufferedReader:从字符输入流读取文本,缓冲字符以提供字符,数组和行的高效读取,可以指定缓冲区的大小或者可以使用默认大小。默认值足够大,可用于大多数用途。

2023-07-23 17:53:08 35

原创 【字符流】复制Java文件

数据源:基础语法\\ConversionStreamDemo.java- - -读数据- - -Reader- - -InputStreamReader- - -FileReader。目的地:基础语法\\Copy.java- - -写数据- - -Writer- - -OutputStreamWriter- - -FileWriter。转换流的名字比较长,常见的操作都是按照本地默认编码实现的,所以为了简化书写转换流提供列对应的子类。FileWriter:用于写入字符文件的便捷类。数据源和目的地的分析。

2023-07-20 18:57:58 163

原创 【字符流】读数据的两种方式

InputStreamReader(InputStream in):创建一个使用默认字符集的InputStreamReader。

2023-07-20 18:55:30 65

原创 【字符流】写数据的五种方式

OutputStreamWriter(OutputStream out):创建一个使用默认字符集编码的OutputStreamWriter。

2023-07-20 18:54:36 58

原创 【字符流】编码解码问题

【代码】【字符流】编码解码问题。

2023-07-20 18:09:39 109

空空如也

空空如也

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

TA关注的人

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