Java面试知识点精讲
文章平均质量分 82
Java精讲知识点,让您深入了解Java编程语言的细节,掌握Java的核心概念和核心技术,让Java成为您在竞赛、入职、升职中的得力助手。无论您是初学者还是有一定经验的Java开发人员,我们为您提供全面的Java知识体系和深入的实践经验,使您更好地应用Java语言解决实际问题,开拓自己的职业发展道路
呆萌宝儿姐
CSDN专家博主、阿里云开发者社区专家博主、51CTO社区专家博主、360书馆认证博主、知乎掘金B站等平台受邀作者。
如遇开发、程序等需求,博客首页下拉加入公众号,私信博主
展开
-
场景应用面试题:微服务金融项目,如果从A账户扣钱,转给B,需要考虑哪些问题
在微服务架构下进行资金转账是一个复杂的任务,需要仔细考虑事务性、并发性、安全性、容错性、监控性能、合规性和数据一致性等多个方面。通过采用适当的解决方案和最佳实践,可以确保资金转账操作在微服务环境中顺利执行,为用户提供安全、可靠的服务。在这种背景下,资金转账是一个常见的业务场景,需要考虑多个关键问题,以确保操作的安全性、可靠性和性能。在微服务架构中,资金转账通常涉及多个服务,例如扣款服务和存款服务。如果转账过程中的一个服务失败,必须回滚所有相关操作,以防止数据不一致。在分布式环境中,数据一致性是一个挑战。原创 2024-01-02 09:38:51 · 583 阅读 · 0 评论 -
二叉树三种遍历(动态图+代码深入理解)
文章目录一、图示理解(图片是一位前辈所留,在此感谢)1、先序遍历2、中序遍历3、后序遍历4、层序遍历二、深入理解三种遍历让我们来理解一下绕着外围跑一整圈的真正含义是:遍历所有结点时,都先往左孩子走,再往右孩子走。下面做一个实例吧三、代码实现加以理解以下是C语言全部代码实现下面是同样的例子用c++实现,大家可以参考一下一、图示理解(图片是一位前辈所留,在此感谢)1、先序遍历先序遍历可以想象成,...原创 2020-04-29 13:10:07 · 35315 阅读 · 54 评论 -
Java中DTO和VO的使用指南
在Java中,DTO和VO是常见的设计模式,它们分别用于数据传输和表达业务概念。在实际项目中,根据业务需求,我们可以巧妙地使用DTO和VO,使得代码更加清晰和易于扩展。通过这种设计,我们可以更好地处理不同层次之间的数据传递和业务展示,提高代码的质量和可读性。原创 2023-12-29 15:57:39 · 1555 阅读 · 0 评论 -
Swagger报错:Caused by: java.lang.NullPointerException: null at springfox.documentation.spring.web
因为 Springfox 使用的路径匹配是基于AntPathMatcher 的,而 Spring Boot 2.6.X等低版本使用的是 PathPatternMatcher。在yml(yaml)里添加如下配置,重写匹配一下路径。原创 2023-11-18 10:23:19 · 1185 阅读 · 0 评论 -
Mybaits快速入门(包米豆版)
通过以上几个简单的步骤,我们就实现了 User 表的 CRUD 功能,甚至连 XML 文件都不用编写!创建一个空的 Spring Boot 工程(工程将以 H2 作为默认数据库进行演示)非常的简单,只需要引入 starter 工程,并配置 mapper 扫描路径即可。本笔记使用的软件版本如下,其他软件版本可能会有部分差异。在 Spring Boot 启动类中添加。方法的参数为 MP 内置的条件封装器。从以上步骤中,我们可以看到集成。UserMapper 中的。,所以不填写就是无任何条件。原创 2023-10-10 13:21:01 · 559 阅读 · 0 评论 -
Netty高并发网络编程讲解(附Netty+WebSocket实战)
Netty 是一个广泛使用的 Java 网络编程框架,它提供了一个易于使用的 API 客户端和服务器,它活跃和成长于用户社区,像大型公司 Facebook 以及流行 开源项目如 Infinispan, HornetQ, Vert.x, Apache Cassandra 和 Elasticsearch 等,都利用其强大的对于网络抽象的核心代码。原创 2023-10-10 10:17:16 · 558 阅读 · 0 评论 -
理解 Facade 模式:简化复杂系统的门面设计模式
Facade 模式,又称为门面模式,是一种结构性设计模式,旨在为客户端提供一个简化的接口,以便访问复杂系统的一组子系统。这个模式属于 GoF(Gang of Four)设计模式之一,它的核心思想是将系统的复杂性封装在一个外观(Facade)类中,使客户端可以通过与外观类交互来访问系统的功能,而不必了解底层子系统的复杂性。简而言之,Facade 模式的目标是简化客户端的使用方式,提供一个更高级别的接口,同时隐藏系统的复杂性。原创 2023-09-26 15:24:33 · 937 阅读 · 2 评论 -
MyBatis:resultMap中查不到的property会设置为null
在这个示例中,如果查询结果中的 “some_column” 无法映射到 “someProperty”,则 “someProperty” 的值将被设置为 “default_value”。如果查询结果中的列或字段与您的结果映射不匹配,MyBatis 会尝试将这些未映射的列或字段设置为对应的属性,如果属性不存在或无法自动转换为目标类型,将设置为。在MyBatis中,如果在结果映射(resultMap)中未定义的属性或字段出现在查询结果中,MyBatis 通常会将其值设置为。,可以在结果映射中使用。原创 2023-09-15 11:45:40 · 1285 阅读 · 0 评论 -
场景应用:列举常见的运行时异常 RuntimeException
(根据里氏代换原则 [ 能使用父类型的地方一定能使用子类型 ],抓取 ExampleA 类型异常的 catch 块能够抓住 try 块中抛出的 ExampleB 类型的异常),第一层finally抛出Annoyance异常,根据里氏替换原则:能使用父类型的地方一定能使用子类型,这里也能替换为子类型异常,也能被捕获,然后打印。Java 编译器要求方法必须声明抛出可能发生的受检异常,但是并不要求必须声明抛出未被捕获的运行时异常。catch块,能捕获到Sneeze异常,不再向外抛出、然后打印。原创 2022-10-16 15:36:12 · 1580 阅读 · 0 评论 -
接口中不能有方法体吗?1.8以后可以了
3、如果子类继承父类,父类中有b方法,该子类同时实现的接口中也有b方法(被default修饰),那么子类会继承父类的b方法而不是继承接口中的b方法。以前在比较接口与抽象类区别的时候,接口中不能有方法体是接口的一个特点。而最近的学习改变了这一特点。是因为,类在继承接口中的default方法时,不知道应该继承哪一个接口中的default方法。1、实现类会继承接口中的default方法。转载 2022-09-25 18:06:31 · 276 阅读 · 0 评论 -
数据结构:图解归并过程
现在我们可以总结出归并排序的算法思路了,那就是在将整个数组进行不断划分,知道划分的每个字数组的长度为0或者为1,这是每个字数组统统都是有序数组,这是再按照有序数组的拼接算法,对每个子数组进行拼接,这样就能保证每次的拼接结果都还是有序的最终拼接成一个之后,整个数组便都是有序的,而数组的排序也宣布完成,关于这个字数组的划分,实际上是通过递归实现的逻辑上的划分。我们首先来详细说说归并排序的算法思路,归并排序的算法思路并不复杂,其主要是一个拆分与合并的过程,接下来我们用图解来看看归并排序究竟是如何排序的。原创 2022-10-17 16:08:01 · 1524 阅读 · 0 评论 -
分布式共识算法——Paxos算法(图解)
准备阶段:Proposer负责接收 client 请求并产生提案,必须由多数派 Acceptor 批准通过提案接受阶段:提案通过后,再将要执行的修改操作广播给 Acceptor,这次仍然多数派通过,此修改才能生效,可以返回响应给客户端。原创 2022-11-06 10:18:50 · 6547 阅读 · 2 评论 -
SOA架构和微服务架构的区别(转载)
Java EE部署架构,通过展现层打包WARs,业务层划分到JARs最后部署为EAR一个大包,而微服务则打开了这个黑盒子,把应用拆分成为一个一个的单个服务,应用Docker技术,不依赖任何服务器和数据模型,是一个全栈应用,可以通过自动化方式独立部署,每个服务运行在自己的进程中,通过轻量的通讯机制联系,经常是基于HTTP资源API,这些服务基于业务能力构建,能实现集中化管理(因为服务太多啦,不集中管理就无法DevOps啦)。是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件。转载 2022-09-18 19:05:55 · 1706 阅读 · 0 评论 -
场景应用:Java 出现 Out Of MemoryError(OOM 错误)的原因有哪些?出现 OOM 错误后,怎么解决?
错误原因:此 OOM 是由于 JVM 在 GC 时,对象过多,导致内存溢出,建议调整 GC 的策略,在一定比例下开始 GC 而不要使用默认的策略,或者将新代和老代设置合适的大小,需要进行微调存活率。解决方法:如果 JVM 内存调的过大或者可利用率小于 20%,可以建议将 heap 及 perm 的最大值下调,并将线程栈调小,即-Xss 调小,如:-Xss128k。显示的是提示分配失败的源模块的名称,所以有必要查看日志文件,如 crash 时的 hs 文件。解决方法:调高 heap 的最大值,即。原创 2022-10-16 09:02:59 · 1744 阅读 · 0 评论 -
图解字符串匹配算法:从Brute-Force到KMP,一下子就整明白了
分析如下:假设模式串的前 m-1 个字符序列和主串的相应字符序列比较总是相等,而模式串的第 m 个字符和主串的相应字符比较总是不相等,此时,模式串的 m 个字符序列必须和主串的相应字符序列块一共比较 n-m+1次,每次比较 m 个字符,总共需比较m×(n- m+1)次,因此,其时间复杂度为O(nm)。比如ABCDABD,ABCD的匹配值均为0,但是A与前缀ABCD中的A相同,故匹配值为1,AB与前缀ABCD中的AB相同,故B的匹配值为2,ABD没有与之相同的前缀,故D为0。i 为主串当前比较字符的下标;原创 2022-09-21 19:03:52 · 1550 阅读 · 0 评论 -
utf-8编码下,一个字符最多占几个字节?
2,带有变音符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文等字母则需要2字节编码(Unicode范围由U+0080~U+07FF)。Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。中文标点占两个字节,英文标点。3,其他语言的字符(包括中日韩文字、东南亚文字、中东文字等)包含了大部分常用字,使用3字节编码。1,一个US-ASCIl字符只需1字节编码(Unicode范围由U+0000~U+007F)。一个英文字符等于一个字节,英文标点占一个字节。原创 2022-09-26 22:45:05 · 3527 阅读 · 0 评论 -
完全二叉树为什么最适合顺序存储结构(转载)
如果从根结点开始从1 挨个编号,然后在存进一维数组中,那么有些结点可能没有孩子,那么它原本的孩子在数组中的位置就会被后面上来的的结点占据,这样在数组中再拿着2i或者2I+1找到的结点就不是实际情况下树中结点的左右孩子(实际情况下树中该结点可能甚至都没有孩子)。我们可以根据数组的下标i也能找到左孩子(2i)和右孩子(2I+1),前提是数组下标 i=0位丢弃不用,从i=1开始存储树的编号为1的根结点,以此类推。如果2i+1>n, 则结点i无右孩子, 否则其右孩子rchild (i) 是结点2i+1。转载 2022-09-27 11:19:33 · 306 阅读 · 0 评论 -
图的最小生成树算法(图解+代码)| 学不会来看我系列
普里姆(Prim)算法,也是求加权连通图的最小生成树的算法。基本思想对于图G而言,V是所有顶点的集合;现在,设置两个新的集合U和T,其中U用于存放G的最小生成树中的顶点,T存放G的最小生成树中的边。从所有的 u∈U ,v∈(V-U)(V-U表示除去U的所有顶点)的边中选取权值最小的边(u,v),将顶点v加入U中,将边(u,v)加入集合T中,如此不断重复,直到U=V为止,最小生成树构造完毕,此时集合T中包含了最小生成树中的所有边。克鲁斯卡尔(Kruskal)算法,是用来求加权连通图的最小生成树的算法。原创 2022-09-17 20:17:04 · 6044 阅读 · 0 评论 -
分布式共识算法——Gossip协议(图解)
过程是种子节点会把所有的数据都跟其他节点共享,以便消除节点之间数据的任何不一致,它可以保证最终、完全的一致。如果把两个节点数据同步一次定义为一个周期,则在一个周期内,Push 需通信 1 次,Pull 需 2 次,Push/Pull 则需 3 次。整个传播过程可能需要一定的时间,由于不能保证某个时刻所有节点都收到消息,但是理论上最终所有节点都会收到消息,因此它是一个最终一致性协议。Gossip 协议的消息传播方式有两种:Anti-Entropy(反熵传播)和Rumor-Mongering(谣言传播)。原创 2022-11-06 14:35:04 · 1406 阅读 · 0 评论 -
Java8新特性:Lambda表达式、函数式接口以及方法引用
Lambda 是一个匿名函数(Lambda 表达式简化了匿名内部类的形式,并且可以达到同样的效果,当然Lambda 要优雅得多),我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码 像数据一样进行传递)。如果函数式接口的实现恰好可以通过调用一个类的构造方法来实现(比如说接口方法与这个构造方法的参数个数、参数类型和返回值都对的上),那么就可以使用构造方法引用。Java 8为了使现有的函数更加友好地支持Lambda表达式,引入了函数式接口的概念。可以写成``I05 i05 = a -> 1;原创 2022-09-15 13:32:40 · 1351 阅读 · 0 评论 -
分布式共识算法——Raft算法(图解)
Paxos 和 Raft 都是分布式一致性算法,这个过程如同投票选举领袖(Leader),参选者(Candidate)需要说服大多数投票者(Follower)投票给他,一旦选举出领袖,就由领袖发号施令。Paxos 和 Raft 都是分布式一致性算法,这个过程如同投票选举领袖(Leader),参选者(Candidate)需要说服大多数投票者(Follower)投票给他,一旦选举出领袖,就由领袖发号施令。在 Raft 算法中充当逻辑时钟的作用,使得服务器节点可以查明一些过期的信息(比如过期的 Leader)。原创 2022-11-06 14:04:11 · 2246 阅读 · 0 评论 -
图解 PRC 原理
比如,我们开发电商系统,需要拆分出用户服务、商品服务、优惠券服务、支付服务、订单服务、物流服务、售后服务等等,这些服务之间都是相互调用,这时内部调用最好使用 RPC ,同时每个服务都可以独立部署,独立上线。当我们的应用访问量增加和业务增加时,发现单机已无法承受,此时可以根据不同的业务(划分清楚业务逻辑)拆分成几个互不关联的应用,分别部署在不同的机器上,此时可能也不需要用到 RPC。随着我们的业务越来越多,应用也越来越多,应用与应用相互关联调用,发现有些功能已经不能简单划分开,此时可能就需要用到 RPC。原创 2022-09-03 20:54:13 · 8729 阅读 · 0 评论 -
个人算法重刷记录
代码如下:实现拷贝数组函数代码如下:写一排序算法,输入 10 个数字,以逗号分开,可根据参数选择升序或者 降序排序,须注明是何种排序算法代码如下:代码如下:已排好序的数组 A,一般来说可用二分查找可以很快找到,现有一特殊数组 A,它是循环递增的,如 a[]={17, 19 ,20, 25, 1, 4, 7, 9},在这样的数组中找一元素,看看是否存在。请写出你的算法,必要时可写伪代码,并分析其空间,时间复杂度**思路说明:**循环递增数组有这么一个性质:以数组中间元素将循环递增数组划分为两部原创 2022-09-21 21:06:46 · 4878 阅读 · 0 评论 -
Springboot配置返回日期格式化五种方法详解
在yml中添加如下配置:或者OK了,你后端全统一了,应急的同志们就这样就行了,不用学下面的扩展知识,想学习的可以先收藏(建议别收藏,收藏了也不看,要不一口气看完点个赞,要不别收藏来欺骗自己了)系统的知识1.前端时间格式化(不做无情人)前端工程时间格式化方法,实现代码如下。方法调用:但是我们能对前端小姐姐这么残忍吗?????就像下面的前端小姐姐这么可爱,你忍心?????不,我们不能,坚决在后端改!!!!!!使用 SimpleDateFormat 来进行时间格式化,它也是 JDK 8 之前重要的原创 2022-07-03 15:22:54 · 3984 阅读 · 3 评论 -
Java开发神器Lombok安装与使用
文章目录安装Idea插件的安装maven中pom文件的导入使用val@Data@Getter/@Setter@Log4j@AllArgsConstructor@NoArgsConstructor@EqualsAndHashCode@NonNull@RequiredArgsConstructor@Cleanup@ToString@Value@SneakyThrows@Synchronized@Builder安装Lombok的安装分两部分:Idea插件的安装和maven中pom文件的导入。Idea插件的安原创 2022-02-22 20:41:56 · 2137 阅读 · 0 评论 -
SpringSecurity 认证详解
当什么也没有配置的时候,账号和密码是由 Spring Security 定义生成的(如下图密码)。但是在实际项目中账号和密码都是从数据库中查询出来的。所以我们要通过自定义逻辑控制认证逻辑。如果需要自定义逻辑时,只需要实现 UserDetailsService 接口即可。}// 获取所有权限 Collection原创 2022-09-17 22:23:04 · 2779 阅读 · 0 评论 -
postman 中 body的form-data,x-www-form-urlencoded,raw,binary含义
文章目录body1、form-data2、x-www-form-urlencoded3、raw4、binarybody1、form-data等价于http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息。由于有boundary隔离,所以multipart/form-data既可原创 2022-03-14 10:10:03 · 6050 阅读 · 0 评论 -
数据库篇复习篇
读到其它事务未提交的数据(最新的版本)错误现象:有脏读、不可重复读、幻读现象两个账户都为 10001号账户2000, 2号账户1000读到其它事务已提交的数据(最新已提交的版本)错误现象:有不可重复读、幻读现象使用场景:希望看到最新的有效值两个账户都为 10001号账户2000, 2号账户1000在事务范围内,多次读能够保证一致性(快照建立时最新已提交版本)错误现象:有幻读现象,可以用加锁避免使用场景:事务内要求更强的一致性,但看到的未必是最新的有效值存在 1,2 两个账户。...转载 2022-08-07 17:17:17 · 151 阅读 · 0 评论 -
SpringBean生命周期——refresh源码解读
ApplicationContext没有Bean初始化,依赖注入等功能他都没有,他得简介的调用BeanFactory 来对Bean进行管理,ApplicationContext委托给BeanFactory 来干这些活,ApplicationContext做的是扩展的活,Bean的核心功能是在BeanFactory 中。下面我们深入探究下里面的ResourceEditorRegistrar资源类型转化器,我们可以看到不同的资源类型用不同转化器转化。我们在prepareRefresh();原创 2022-11-01 10:43:11 · 1227 阅读 · 0 评论 -
limit 与offset的用法(转载)
在mysql中一般使用limit来实现分页1、LIMIT后面跟一个参数,表示要提取的数量。如 : 指提取前三条数据,类似sqlServer的top语法。2、LIMIT后面跟两个参数时,第一个参数是指第几行,第二个参数是取几条数据。如: 这个SQL是指从第二行的下一行开始向下取3条数据。(即取:3,4,5行的三条数据)3、LIMIT和OFFSET组合使用时,LIMIT后面只能有一个参数,表示要提取的数量,offset后面的数字则表示第几行。如:这个SQL是指从第二行的下一行开始向下取3条数据。(即取:3,4,转载 2022-07-07 15:44:33 · 4923 阅读 · 0 评论 -
Java 封装HTTP返回结果类
Java封装HTTP返回结果类。原创 2022-07-20 00:07:16 · 2084 阅读 · 0 评论 -
Union-Find算法详解
原文地址:https://www.jianshu.com/p/5f0db63ba54b今天讲讲 Union-Find 算法,也就是常说的并查集算法,主要是解决图论中「动态连通性」问题的。名词很高端,其实特别好理解,等会解释,另外这个算法的应用都非常有趣。说起这个 Union-Find,应该算是我的「启蒙算法」了,因为《算法4》的开头就介绍了这款算法,可是把我秀翻了,感觉好精妙啊!后来刷了 LeetCode,并查集相关的算法题目都非常有意思,而且《算法4》给的解法竟然还可以进一步优化,只要加一个微小的修改就可转载 2022-06-01 10:57:36 · 3690 阅读 · 0 评论 -
ORM 对象关系映射
ORM概念ORM 就是通过实例对象的语法,完成关系型数据库的操作的技术,是"对象-关系映射"(Object/Relational Mapping) 的缩写。ORM可理解成一种规范,它概述了这类框架的基本特征,完成面向对象的变成语言到数据库的映射。ORM 把数据库映射成对象。将数据库的表(table)映射为:类(class)记录(record,行数据)映射为:对象(object)字段(field)映射为:对象的属性(attribute)举例来说,下面是一行 SQL 语句。SELECT i转载 2022-03-13 23:28:44 · 1467 阅读 · 0 评论 -
SpringBean的生命周期——doGetBean函数探究
要点总结dependsOn 时的 bean 初始化顺序dependsOn 用在非显式依赖的 bean 的创建顺序控制@Conditional 的解析时机@Conditional 由 ConditionEvaluator 解析看是否满足装配条件beanName 的解析时机。原创 2022-11-01 10:30:48 · 1428 阅读 · 0 评论 -
SpringBoot 启动打印 Banner:佛祖保佑,永无BUG!
在Resources目录下的 application.yml 中添加以下配置。修改 application.yml 指定banner打印文件。在Resources目录下新建 banner.txt。打印完了,一点bug不出,果然,程序的尽头是玄学。原创 2023-02-21 19:53:45 · 3634 阅读 · 1 评论 -
Spring中Bean及@Bean的理解
文章目录一、Bean是啥二、注解分为两类:三、@Bean是啥?1、原理是什么?2、@Bean示例总结Bean在Spring和SpringMVC中无所不在,将这个概念内化很重要,下面分享一下我的想法:一、Bean是啥1、Java面向对象,对象有方法和属性,那么就需要对象实例来调用方法和属性(即实例化);2、凡是有方法或属性的类都需要实例化,这样才能具象化去使用这些方法和属性;3、规律:凡是子类及带有方法或属性的类都要加上注册Bean到Spring IoC的注解;4、把Bean理解为类的代理或代言人转载 2022-03-28 11:41:25 · 783 阅读 · 1 评论 -
SpringSecurity简介及其入门案例
Spring Security bean 的核心类核心类说明提供对 SecurityContext 的访问持有 Authentication 对象和其他可能需要的信息其中可以包含多个 AuthenticationProvider对象为 AuthenticationManager 接口的实现类主要用来进行认证操作的类 调用其中的 authenticate()方法去进行认证操作Spring Security 方式的认证主体对认证主题的应用层面的授权,含当前用户的权限信息,通常使用角色表示。原创 2022-09-17 21:33:35 · 1469 阅读 · 0 评论 -
HTTP 请求header信息讲解
文章目录HTTP请求header信息讲解1、HTTP请求方式2、Host3、User-Agent4、Accept5、Accept-Lanuage6、Accept-Encoding7、Accept-Charset8、Content-Type9、Keep-Alive10、Response部分HTTP请求header信息讲解HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。HTTP的头域包括通用头,请求转载 2022-03-14 09:54:46 · 12632 阅读 · 0 评论 -
SpringBoot web静态资源映射
我们需要建立自定义配置类,配置类实现WebMvcConfigurer中的addResourceHandlers方法,即可进行自定义资源映射路径的添加// 添加自定义资源映射路径 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) {原创 2022-09-12 17:23:04 · 2494 阅读 · 0 评论 -
流程图基本图形的含义
大家在绘制流程图时,有各种各样的形状,有圆形、菱形、矩形等等,他们都代表什么概念呢?如果我们画的流程图用错图形,发给别人看,那是一件很尴尬的事。重要的事说三遍,不要用错图形符号!不要用错图形符号!不要用错图形符号!掌握并熟练使用各种流程图图形,才能让我们的流程图显得更加清晰、易读,显得我们更加专业。1,开始形状/结束形状,“跑道圆”形状代表开始或者结束。2,处理过程,“矩形”这里可以写一些“工序”“处理过程”3,判断,“菱形”判断是流程图中经常用到的判断是否判断条件4,文原创 2022-05-22 07:43:40 · 20958 阅读 · 0 评论