Java 类和对象
文章目录
- 类和对象
- 实例化对象
- this
- 构造和初始化
- 封装
- 访问修饰限定符
- 包
- 自定义包
- static
- 代码块
类和对象
- Java当中一切皆对象
- 对象是什么呢?
比如是一个人,手机等 - 怎么描述对象呢?
可以用类描述对象,可以理解类为一个模版,用这个模版存储对象的属性 - Java中只能有一个public类,其他为普通类
- 面向对象的核心:
找对象
创建对象
使用对象 - 什么是面向对象?
面向对象是一种解决问题的思想,主要通过对象之间的交互完成一件事情,不用考虑细节问题,只关注对象本身 - 什么是面向过程
面向过程需要考虑细节和中间的每一步
// 语法
class 类名
{}// 类名都用大驼峰
class Ast
{// 普通成员变量public String name;public int age;// 静态成员变量 属性 字段// 静态成员变量不在对象当中public static int a =- 10;// 普通成员方法 行为public int func(){}// 静态成员方法public static int func2(){}
}public static void main(String[] args){// 用类实例化出一个对象Ast p = new Ast();
}
每一个类都会产生一个字节码文件
实例化对象
- 什么叫做实例化对象
用一个类类型创建一个对象的过程就叫类的实例化
2. 每一个对象都会存对应的变量,而方法存在于方法区,可以用new 关键字实例化出多个对象,实例化出的对象才实际占用物理空间
3. 通过点访问对象的属性,调用对象的方法
public class test666 {public static void main(String[] args) {Dog dog = new Dog();dog.name = "小七";dog.color = "红色";dog.print();dog.name = "小八";dog.color = "黄色";dog.print();}}class Dog{public String name;public String color;public void print(){System.out.println(name + " ");}
}
this
- this用来确定是哪个对象,才好给对象进行调用赋值
- 成员方法中有隐藏的this
局部变量会给局部变量自己赋值,局部变量优先,变量名一样的,不知道是给对象赋值的,所以建议都加上this
class Date{// 形参名和成员变量名相同了public void setDate(int year,int month,int day){this.year = year;this.month = month;this.day = day;}
}
- this代表当前对象的引用,this引用的是调用成员方法的对象,this只能在成员方法中使用
class Date{public int year;public int month;public int day;public void setDate(Date this,int year,int month,int day){this.year = year;this.month = month;this.day = day;}
}class public void main(String[] args){Date date1 = new Date();date1.setDate(1900,10,1);// this对当前对象进行使用Date date2 = new Date();date2.setDate(2000,10,1);
}
构造和初始化
- 就地初始化,不显示地给值的话,都使用张三和9
class Date{// 就地初始化int year = 1900;int month = 10;int day = 1;public void print(){System.out.println("年 " + year + " 月 " + month + " 日 " + day);}
}public class test {public static void main(String[] args) {Date date = new Date();date.print();}
}
2. 成员变量不初始化的时候给定一个默认值,引用类型为null,boolean类型为false,其他基本类型为0值
- 构造方法进行初始化
没有返回值
方法名和类名相同
class Student{public String name;public int age;// 构造方法public Student(){this.name = "鼠标";this.age = "10";System.out.println("Student()");}public Student(String name,int age){this.name = name;this.age = age; }
}public static void main(){Student student = new Student();
}
-
构造方法是如何被调用的呢?
在进行new对象的时候就调用构造方法进行初始化对象的属性
-
显示写了构造方法就不会提供默认构造的方法
-
构造方法只有在实例化对象的时候才会被调用,因此生命周期内只调用一次
-
构造方法有什么作用呢?
构造方法对对象中的成员进行初始化,不开辟空间,空间在构造之前就开辟好了 -
调用其他构造方法,只能在构造方法当中写,下图中this表示的就是Student,并且这个构造方法只能出现在该构造方法的第一行,还有就是this()这会报错,自己调用自己
9. this表示当前对象的引用,在分配完内存之后就产生了这个this,就可以使用这个this了,而不是在初始化对象完之后产生
10. 调用不能成环
封装
- 什么是封装?
封装是数据和操作数据的方法的有机结合,隐藏对象的属性和实现的细节,仅对外公开接口和对象进行交互
访问修饰限定符
- 封装在语法层面:被private修饰的成员方法和成员变量只能在当前类中使用
class Person{private String name;private int age;public Person(){}public Person(String name,int age){this.name = name;this.age = age;}// 利用方法隐式地设置对象的属性和或得对象的属性public String getName(){return this.name;}public void setName(String name){this.name = name;}
}public static void main(){Person person = new Person();person.setName("张三");System.out.println(person.getName());
}
- 包访问权限,也叫default(什么修饰符也不写的,默认的)
包
- 包:其实是为了更好地组织和管理类的,让类不那么混乱,包可以理解为文件夹
- 包是对类和接口封装的体现,是一种对类和接口等很好的组织方式
- 为了更好的管理类,把多个类收集在一起成为一组,称为软件 包
- 在同一个工程中允许存在相同名称的类,只要处在 不同的包中即可
5. 导入包中的类,例如可以导入日期类
public static void main(String[] args){java.util.Date date = new java.util.Date();System.out.println(date.getTime());
}
这样还是太麻烦了,可以用import导入包
import java.util.Date;
public static void main(String[] args){Date date = new Date();System.out.println(date.getTime());
}
如果要使用java的其他类可以使用
import java.util.*;
有时需要显示地写出要使用的类,避免冲突,两个包下有相同名字的类
import java.util.*;
import java.sql.*;
public class Test {public static void main(String[] args) {
// util 和 sql 中都存在一个 Date 这样的类, 此时就会出现歧义, 编译出错Date date = new Date();System.out.println(date.getTime());}
}
在这种情况下需要使用完整的类名
import.java.util.*;
import.java.sql.*;
public class Test{public static void main(String[] args){java.util.Date date = new java.util.Date();System.out.println(date.getTime());}
}
可以使用 import static 导入包中静态的方法和字段。
import static java.lang.Math.*;
public class Test {public static void main(String[] args) {double x = 30;double y = 40;// 静态导入的方式写起来更方便一些.//double result = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));double result = sqrt(pow(x, 2) + pow(y, 2));System.out.println(result);}
}
总结:包就是一个文件夹,文件夹下面有很多类,类里面有方法
和C语言的头文件不同,C语言是把所有的头文件导过来生成点i文件,java使用哪个类就导哪个类
自定义包
- 包一般是小写,通常会用公司的域名的颠倒形式 (com.baidu.www)
- 新建一个包
- 在包下面新建一个类
4. 包名要和代码路径相匹配 . 例如创建 com.baidu.www 的包 , 那么会存在一个对应的路径 com/baidu/www 来存储代码 .
5. 如果一个类没有 package 语句 , 则该类被放到一个默认包中(例如src就是一个默认的包)
static
- 静态成员变量不属于我们的对象,静态成员变量为同一份,是所有对象共享的,是类方法
- 可以通过对象调用,也可以通过类名 . 静态方法名 (…) 方式调用,更推荐使用后者
- 静态成员变量存在方法区当中
- 生命周期:类加载就有了,类卸载就销毁
class Student{public static String classRoom = "333";
}public static void main(String[] args){Student student = new Student();System.out.println(Student.classRoom);
}
- 静态方法中不包含this,this属于对象的引用,而静态方法不需要对象,能用类名直接访问
- 不能在静态方法中直接访问任何非静态成员变量
代码块
-
使用 {} 定义的一段代码称为代码块
-
普通代码块
构造块
静态块
同步代码块 -
静态代码块
class Student{public static String classRoom;
}// 静态代码块进行初始化静态成员
// 类加载的时候静态代码块就被调用了
static{classRoom = "333";
}// 调用静态成员,即可调用静态代码块
public static void main(String[] args) {System.out.println(Student.classRoom);
}
- 实例代码块/构造代码块
public class Student{//实例成员变量private String name;private String gender;private int age;private double score;public Student() {System.out.println("I am Student init()!");}//实例代码块,对实例成员进行初始化{this.name = "bit";this.age = 12;this.gender = "man";System.out.println("I am instance init()!");}public void show(){System.out.println("name: "+name+" age: "+age+" sex: "+gender);}
}
5. 普通代码块
public class Main{public static void main(String[] args) {//普通代码块{int x = 10 ;System.out.println("x1 = " +x);}int x = 100 ;System.out.println("x2 = " +x);}
}
相关文章:
Java 类和对象
文章目录 类和对象实例化对象this构造和初始化封装访问修饰限定符包自定义包 static代码块 类和对象 Java当中一切皆对象对象是什么呢? 比如是一个人,手机等怎么描述对象呢? 可以用类描述对象,可以理解类为一个模版,用…...
湖北理元理律师事务所:科学债务管理模型构建实录
债务问题本质是资源错配问题。湖北理元理律师事务所基于400案例的司法大数据,提炼出一套“三阶九步”债务管理模型,本文从技术视角解析其运作逻辑与实操价值。 模型架构:从诊断到执行的全周期管理 阶段一:债务体检(1…...
JavaScript vs Python 用于 Web Scraping(2025):终极对比指南
1. 引言 在不断发展的 Web Scraping 领域,选择合适的编程语言对于项目的成功至关重要。虽然 JavaScript 和 Python 在 2025 年仍然是 Web Scraping 领域的热门选择,但它们各自具备不同的优势和挑战。 本指南将深入分析 JavaScript 和 Python 的核心特性…...
数据结构day3
一、gdb调试 gcc -g main.c linklist.c // 对两个.c文件进行编译,生成 a.out 文件 gdb a.out //调试可执行文件 a.out b linklist.c:36 // 在该.c文件第 36 行设置断点 r // 运行程序,但会在断点前停…...
VSCode launch.json 配置参数详解
使用 launch.json 配置调试环境时,会涉及到多个参数,用于定义调试器的行为和目标执行环境。以下是一些常用的配置参数: 1、"type" :指定调试器的类型,例如 "node" 表示 Node.js 调试器࿰…...
[已解决] LaTeX “Unicode character“ 报错 (中文字符处理)
问题: 写 LaTeX 文档,特别是包含中文时,经常遇到类似下图的 “Unicode character XXXXXX” 报错 (X) Unicode character 本 (U672C) LaTeX [行 xx, 列 x] (X) Unicode character 报 (U62A5) LaTeX [行 xx, 列 x] ...这通常意味着我们的 LaTe…...
c++成员函数返回类对象引用和直接返回类对象的区别
c成员函数返回类对象引用和直接返回类对象的区别 成员函数直接返回类对象(返回临时对象,对象拷贝) #include <iostream> class MyInt { public:int value;//构造函数explicit MyInt(int v0) : value(v){}//加法操作,返回对象副本&…...
python项目参考文献
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...
Go语言实现链式调用
在 Go 语言中实现链式调用(Method Chaining),可以通过让每个方法返回对象本身(或对象的指针)来实现。这样每次方法调用后可以继续调用其他方法。 示例:实现字符串的链式操作 假设你想对一个字符串连续执行…...
深入解析SpringMVC:从入门到精通
上文了解到SpingBoot的相关知识,此文开启Sping家族下的新篇章 1. 什么是SpringWebMVC? 官方对于SpringMVC的描述是这样的: 什么是Servlet呢? Servlet 是⼀种实现动态页面的技术.准确来讲Servlet是⼀套JavaWeb开发的规范,或者说…...
Java-Collections类高效应用的全面指南
Java-Collections类高效应用的全面指南 前言一、Collections 类概述二、Collections 类的基础方法2.1 排序操作2.1.1 sort方法2.1.2 reverse方法2.1.3 shuffle方法 2.2 查找与替换操作2.2.1 binarySearch方法2.2.2 max和min方法2.2.3 replaceAll方法 三、Collections 类的高级应…...
微软家各种copilot的AI产品:Github copilot、Microsoft copilot
背景 大家可能听到很多copilot,比如 Github Copilot,Microsoft Copilot、Microsoft 365 Copilot,有什么区别 Github Copilot:有网页版、有插件(idea、vscode等的插件),都是面向于程序员的。Mi…...
JAVA EE_HTTP
为什么意气风发的少年,总是听不进去别人的劝解。 ----------陳長生. ❀主页:陳長生.-CSDN博客❀ 📕上一篇:JAVA EE_网络原理_数据链路层-CSDN博客 1.HTTP 1.1.HTTP是什么 H…...
SEO 优化实战:ZKmall模板商城的 B2C商城的 URL 重构与结构化数据
在搜索引擎算法日益复杂的今天,B2C商城想要在海量信息中脱颖而出,仅靠优质商品和营销活动远远不够。ZKmall模板商城以实战为导向,通过URL 重构与结构化数据优化两大核心策略,帮助 B2C 商城实现从底层架构到搜索展示的全面升级&…...
使用HtmlAgilityPack采集墨迹天气中的天气数据
需要解析对应的HTML源码: <div class"left"><div class"wea_alert clearfix"><ul><li><a href "https://tianqi.moji.com/aqi/china/jiangxi/hukou-county" >< span class"level level_2&qu…...
广和通L610模块通过AT指令访问服务器方案:嵌赛使用
实现步骤及关键点: 网络连接配置 ATCGDCONT1,"IP","APN名称" // 设置APN ATCGACT1,1 // 激活PDP上下文 ATCGATT1 // 附着GPRS网络 HTTP协议支持验证 L610支持HTTP客户端功能,关键指…...
nodejs快速入门到精通1
参考 nodejs快速入门到精通 菜鸟教程-nodejs nodejs官方文档 原因 视频免费 资料收费 笔记还是自己写吧 安装 nodejs官网 windows下: #查看nodejs版本 node -v #查看npm版本 npm -v #设置npm为淘宝镜像源 npm config set registry https://registry.npmmirror.…...
Linux下软件安装
一、软件安装方式 在 Linux 系统中,常见的软件安装方式有以下几种: 包管理器安装(如 yum、apt) 这是最便捷的安装方式,通过系统自带的包管理器从官方软件源下载并安装软件。 # CentOS/RHEL系统使用yum安装 yum insta…...
React Fiber 架构深度解析:时间切片与性能优化的核心引擎
文章目录 前言一、Fiber 架构的诞生背景二、Fiber 架构的核心概念1. Fiber 节点2. Fiber 节点的结构3. 双缓存机制4. 增量渲染与优先级调度 三、时间切片技术详解1. 时间切片的定义与原理2. 时间切片与 JavaScript 事件循环3. 时间切片的实现方式4. 时间切片的优势 四、Fiber 架…...
mcp学习笔记
MCP(Model Context Protocol)是一种由Anthropic推出的开放协议,旨在统一大型语言模型(LLM)与外部数据源/工具之间的交互。其核心组件包括 MCP Client、MCP Server 和 Function Calling 机制,三者协…...
鸿蒙北向源码开发: 检查应用接口dts文件api规范性
开源鸿蒙5.0.2对应的api版本是14 5.0社区仓有工具检查接口规范性报告工具: interface/sdk-js/build-tools/api_check_plugin api_check_plugin是什么? 在解释api_check_plugin是什么之前得先知道 应用调用的api接口都是文件名后缀为.d.ts的文件,这些文件内部声明了arkts的a…...
Redis设计与实现——分布式Redis
Redis Sentinel(哨兵) Sentinel 的工作机制 故障检测(Failure Detection) 主观下线(Subjective Down):单个 Sentinel 实例检测到主节点在30 秒内无响应,标记其为 SDOWN。 客观下线…...
【Redis】Hash 哈希
文章目录 常用命令hsethgethmgethexistshkeyshvalshgetallhdelhlenhsetnxhincrbyhincrbyfloat 内部编码应用场景 Redis 存储键值对,也就是 key - value,不过同时也允许 value 也为键值对,但此时为了避免冲突,为 field - value PS…...
【matlab技巧】通过手绘的方法设计二维运动轨迹,附MATLAB程序
代码提供了一种直观的方式来使用鼠标在图形窗口中绘制线条,同时能够记录并显示用户绘制的轨迹坐标。用户通过左键点击绘制点,右键点击结束绘制,适合用于简单的图形交互和数据可视化。 文章目录 代码作用运行MATLAB源代码代码详解 代码作用 这…...
游戏引擎学习第290天:完成分离渲染
game_sim_region.cpp:在BeginSim中移除EntityOverlapsRectangle调用 现在我们接近一个关键点,虽然还没完全结束,但我们已经把所有东西迁移到了一个新概念上——即那些临时创建的控制器结构,称为“脑”(brains…...
uniapp-商城-61-后台 新增商品(添加商品到数据库)
完成商品的布局,完成商品的属性添加,最后的目的还是要完成数据添加,将我们前台的数据添加后台的数据库。 1、界面 2、点击提交完成商品添加 点击下方的提交按钮,将数据添加到数据库。 onSubmit 使用该函数---见3 <view cla…...
深入浅出IIC协议 - 从总线原理到FPGA实战开发 -- 第一篇:I2C总线协议深度解剖
第一篇:I2C总线协议深度解剖 副标题 : 两根线如何征服千亿设备?详解硬件工程师必须掌握的通信奥义 1. 为什么I2C仍是嵌入式经典? 1.1 总线拓扑的哲学 拓扑对比图 SPI需4线N片选 vs I2C仅2线级联 UART点对点 vs I2C多主从架构 成本控制实…...
QT之LayOut布局
文章目录 QFormLayoutQGridLayoutQFormLayout、QGridLayout、QHBoxLayout、QVBoxLayout综合案例用QFormLayout 代替 界面左边部分的QGridLayout QFormLayout #include "widget.h"#include <QFormLayout> #include <QLineEdit>Widget::Widget(QWidget *p…...
ubuntu 24.04安装ros1 noetic
为了后续能够找到安装方法,记录一下: 参考如下链接安装: https://www.reddit.com/r/ROS/comments/158icpy/compiling_ros1_noetic_from_source_on_ubuntu_2204/ 安装步骤如下: 1.获取apt 包 sudo apt-get install python3-ros…...
动态规划-64.最小路径和-力扣(LetCode)
一、题目解析 从左上角到右下角使得数字总和最小且只能向下或向右移动 二、算法原理 1.状态表示 我们需要求到达[i,j]位置时数字总和的最小值,所以dp[i][j]表示:到达[i,j]位置时,路径数字总和的最小值。 2.状态转移方程 到达[i,j]之前要先…...
Python爬虫(29)Python爬虫高阶:动态页面处理与云原生部署全链路实践(Selenium、Scrapy、K8s)
目录 引言:动态爬虫的技术挑战与云原生机遇一、动态页面处理:Selenium与Scrapy的协同作战1.1 Selenium的核心价值与局限1.2 Scrapy-Selenium中间件开发1.3 动态分页处理实战:京东商品爬虫 二、云原生部署:Kubernetes架构设计与优化…...
FauxGen:一款由 CodeBuddy 主动构建的假数据生成器
我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 在前端开发中,经常需要一些「假数据」来模拟真实接口,便于开发阶段的界面构建和功能测试…...
chrome 浏览器插件 myTools, 日常小工具。
1. 起因, 目的: 比如,chatgpt, google, 打开网页,就能直接输入文字,然后 grok 就不行,必须用鼠标点一下,才能输入文字。 对我而言,是个痛点!写个插件,自动点…...
从代码学习深度学习 - 词嵌入(word2vec)PyTorch版
文章目录 前言1. 为什么需要词嵌入?2. 早期尝试:独热向量 (One-Hot Vectors)独热向量的局限性3. 自监督的 word2vec4. 跳元模型 (Skip-Gram Model)4.1. 训练5. 连续词袋 (CBOW) 模型5.1. 训练总结前言 自然语言处理(NLP)是人工智能领域中一个充满活力和挑战的分支。要让计…...
手写tomcat:基本功能实现(4)
逻辑架构 HTTP 请求与 Socket: 左侧的 “HTTP 请求” 箭头指向 “socket”,表示客户端发送的 HTTP 请求通过 socket 传输到服务器。Socket 负责接收请求,并提取出其中的 请求路径(如 /first)和 请求方法(如…...
String的一些固定程序函数
append reverse length toString...
SECERN AI提出3D生成方法SVAD!单张图像合成超逼真3D Avatar!
SECERN AI提出的3D生成方法SVAD通过视频扩散生成合成训练数据,利用身份保留和图像恢复模块对其进行增强,并利用这些经过优化的数据来训练3DGS虚拟形象。SVAD在新的姿态和视角下保持身份一致性和精细细节方面优于现有最先进(SOTA)的…...
windows触摸板快捷指南
以下是结构化整理后的触控手势说明,采用清晰的层级划分和标准化表述: **触控手势操作规范****1. 单指操作****2. 双指操作****3. 三指操作****4. 四指操作** **优化说明:** 触控手势操作规范 1. 单指操作 手势功能描述等效操作单击滑动选择…...
Mipsel固件Fuzzing小记
Mipsel固件Fuzzing小记 0x01 准备 1.1 安装必要工具链 首先需要安装 MIPS 交叉编译工具链和相关依赖: sudo apt-get install -y gcc-mipsel-linux-gnu g-mipsel-linux-gnu binwalk qemu-user-static afl这些工具分别用于:交叉编译、固件解包、二进制…...
边缘计算:物联网的“加速器”与“守护者”
引言 随着物联网(IoT)的快速发展,越来越多的设备接入网络,产生了海量的数据。传统的云计算架构面临着延迟高、带宽不足、数据安全等问题。边缘计算作为一种新兴技术,正在成为解决这些问题的关键手段。本文将探讨边缘计…...
简单网络交换、路由-华三RRPP以太环网
1、RRPP简单介绍 RRPP用来组建环网的链路层协议,工作在二层,比STP收敛更快,同时与STP、Smart-link互斥。很多企业很少应用环网组网,但是小编所在工业生产制造企业在特定工艺的区域对环网应用颇多,RRPP小编还是推荐网工…...
Kotlin变量与数据类型详解
Kotlin 变量与基本数据类型详解 一、变量声明 1. val vs var val:不可变变量(只读),类似 Java 的 finalvar:可变变量 val name "Kotlin" // 类型推断为 String var age 25 // 类型推断为 I…...
【Redis】List 列表
文章目录 初识列表常用命令lpushlpushxlrangerpushrpushxlpop & rpoplindexlinsertllen阻塞操作 —— blpop & brpop 内部编码应用场景 初识列表 列表类型,用于存储多个字符串。在操作和实现上,类似 C 的双端队列,支持随机访问(O(N)…...
React中useState中更新是同步的还是异步的?
文章目录 前言一、useState 的基本用法二、useState 的更新机制1. 内部状态管理2. 状态初始化3. 状态更新 三、useState 的更新频率与异步行为1. 异步更新与批量更新2. 为什么需要异步更新? 四、如何正确处理 useState 的更新1. 使用回调函数形式的更新2. 理解异步更…...
Python语法强化
在正式编写第一个Python程序前,我们先复习一下什么是命令行模式和Python交互模式。 命令行模式 在Windows开始菜单选择“Terminal”,就进入到PowerShell命令行模式,它的提示符类似PS C:\>: ┌───────────────…...
FastMCP:为大语言模型构建强大的上下文和工具服务
FastMCP:为大语言模型构建强大的上下文和工具服务 在人工智能快速发展的今天,大语言模型(LLM)已经成为许多应用的核心。然而,如何让这些模型更好地与外部世界交互,获取实时信息,执行特定任务&am…...
TC3xx学习笔记-UCB BMHD使用详解(二)
文章目录 前言Confirmation的定义Dual UCB: Confirmation StatesDual UCB: Errored State or ECC Error in the UCB Confirmation CodesECC Error in the UCB ContentDual Password UCB ORIG and COPY Re-programming UCB_BMHDx_ORIG and UCB_BMHDx_COPY (x 0-3)BMHD Protecti…...
【Docker】docker compose和docker swarm区别
Docker Swarm 和 Docker Compose 的核心区别: 1. 定位不同 Docker Compose 单机多容器编排:在单个主机上管理多个容器,适合本地开发、测试环境。单节点部署:所有容器运行在同一 Docker 引擎实例上。 Docker Swarm 集群管理工具&…...
Power BI Desktop开发——矩阵相关操作
本篇文章使用2025年5月17日从微软商店下载的最新版Power BI Desktop 目录 1.设置矩阵网格整体大小 2.设置矩阵网格行高 3.设置矩阵网格列宽 4.隐藏矩阵网格的某一列 5.隐藏矩阵网格的某一行 6.设置矩阵网格居中展示 7.号图表的显示设置 8.调整行标题的缩进 9.设置矩阵…...
系统架构设计(九):分布式架构与微服务
基础定义 架构类型定义分布式架构指将系统部署在多个服务器节点上,通过网络协作完成整体功能。强调物理上的分布与任务协作。微服务架构一种分布式架构模式,将系统按照业务维度拆分为多个小型自治服务,每个服务可独立开发、部署、伸缩。 核…...