自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试被问离职原因该怎么回答?

求职者应聘时经常碰到面试官问及离职原因,求职者回答得不妥随时可能被淘汰掉。那么,怎样的离职原因能让HR们接受呢?1、寻求更大的发展这是比较经典的回答。一般的回答模式是:我在之前的工作中享受了乐趣(或者和大家相处得很好,再或者学到了很多东西,等等),但是我希望在这个领域更好地发展,去拓展新的未来,去挑战自我(如果是跨行业跳槽的话,可以说想学习更多领域的知识,或者说在这个新行业更能发挥自己所长等)。另外,还可以说现有的企业岗位设置难以满足自身职业进一步发展的要求,所以只能辞职。比如该企业不太重视财务管理,

2021-02-22 22:16:42 425 1

原创 Java 线程池线程数量确定思路

多线程可以快速执行任务的原理因为服务器是拥有多个处理器核心的。运行某进程时,如果只有一个线程,则只能调动一个处理器核心,其他处理器核心可能处于空闲状态。如果是多线程,则可以调用多个处理器核心,用最大效率去处理任务。创建线程池需要的参数创建线程池一般需要参数有:核心线程数,最大线程数,线程销毁时间,任务队列,拒绝策略等。线程池里的线程分为两种,分别是核心线程和非核心线程。当线程池接收到任务时,会先创建核心线程数去处理任务,直至待处理的任务数量超过任务队列长度和核心线程数之和时,会继续创建非核心线程直至

2021-02-22 22:14:42 448

原创 MySQL安全管理、数据库维护及改善性能

一、安全管理1、访问控制MySQL服务器的安全基础:用户对他们需要的数据有适当的访问权。访问控制:给用户所需的权限且仅提供所需的访问权。它需要创建和管理用户账号。PS:严肃对待root登陆的使用,仅在绝对需要时使用它。日常的MySQL操作中,不应该使用root。2、管理用户(下面3点)MySQL用户账号和信息存储在名为mysql的MySQL数据库中。一般不需要直接访问,但有时需要直接访问(如需要获得所有用户账号列表),代码如下:USE mysql;select user from user

2021-02-22 21:28:49 148

原创 Java代理(静态、动态)

一、静态代理代理类和被代理类继承同一个接口,在代理类事例时需要被代理类作为参数,这样就调用到被代理类了;缺点:每个被代理类都需要写一个对应的代理类; public class Target{ void run(){ System.out.println("run Target!"); } } public class Proxy extends Target{ private Target target;

2021-02-22 14:50:43 34

原创 Java单例7种测试实践

1.饿汉模式。 主动型太粗暴。/** * @author :jiaolian * @date :Created in 2021-01-10 21:25 * @description:饿汉单例测试 * @modified By: */public class HungerSignletonTest { //类初始化会创建单例对象 private static HungerSignletonTest signleton = new HungerSignletonTest();

2021-02-22 13:52:54 197

原创 数据库乐观锁与悲观锁

为何需要乐观锁,与悲观锁这样的锁?假设god同志的账上有1000元,现在有两个线程同时往他的账户上转钱。1.A线程准备向god账户上转200,读取到账户上有1000元,事务还未提交2.B线程准备向god账户上转100,读取到账户上有1000元,事务也还未提交3.A线程提交了事务,god账户上变成了1200元,但是B线程此时不知道god账户上变成了12004.B线程随即也提交了事务,god账户上变成了1200,少了100元因此,加锁的目的在于保障一个线程修改数据时,这个数据没有被其他的线程修改过

2021-02-21 22:03:00 92

原创 一文带你秒杀系统学习笔记

一.秒杀流程(凭自身理解画的,若有误请评论区指正)二. 细节介绍(总结)A.首先将秒杀商品列表页缓存在redis中,秒杀请求通过redisservice.get()得到秒杀商品列表.html。B.用户通过秒杀商品列表.html找到想要秒杀的商品,点击详情,进入该商品的秒杀页。C.点击秒杀按钮:1.如果用户为空,返回登录页面2.预减少库存,减少redis里面的库存。3.判断缓存redis中库存数量减1后的大小是否大于或等于0。如果小于0,报:“商品秒杀完毕,库存不足”,反之继续往下执行。4.

2021-02-21 15:53:37 93

原创 mysql binlog 简单介绍与基于binlog数据恢复

binlog 二进制日志文件show variables like ‘log_bin’;二进制日志文件(binary log) 记录了对mysql 数据库执行更改的所有操作, 但是不包括 select 和 show 这类操作,因为这类操作对数据本身没有修改. 然而 操作本身没有对数据进行修改也可能会记录二进制日志,binlog文件位置可以通过查询得到mysql> show variables like 'datadir';+---------------+-----------------

2021-02-21 15:47:50 76

原创 互联网小拼,这一生的故事,你要看看吗《打工人的那些事》

前言谁也不知道,今天竟然是我的最后一天加班。我叫小拼,我来自农村,一个国家级贫困县,原以为会在老家种田一辈子,谁曾想,考上了一所大学,学了计算机专业改变了我的一生。大学毕业以前都没什么好说的,九年义务教育,再加高中三年,大学四年。毕业后,离种田越来越远。但也没曾想,会有如此之远,以至于,我无法再见家乡田园最后一面。那是再也回不去的家乡,再也回不去的家。自述第一家公司毕业也有6年了,目前在这家b公司待了5年。毕业时从事的第一家a公司倒闭了,那是一家965公司,当天谁也不知道它为什么就倒了。只知道那天,

2021-02-21 15:40:24 44

原创 应届程序员 VS 往届程序员!老员工感叹:现在的年轻人啊~

当面对HR问题1:不要太在乎薪酬,我们公司平台好,要注重平台给你的附加价值!应届程序员:“确实,公司平台大,来这里应该能学到的更多!钱嘛,以后再说,刚毕业要注重能力的提高”往届程序员:“去他的,35岁就失业了,还不趁着这几年多薅点钱。到时候年龄到了,也不至于太凄惨。”问题2:我们公司和其他公司薪酬制度不一样,年终至少六个月起!所以base会低一些!每年定期还有购物卡哦!应届程序员:“好的,没问题。毕竟发的月份多,base低就低一点吧!没问题,这offer我接了!”往届程序员:“去他的,没写进of

2021-02-21 14:59:41 97

原创 简单的说说java

Java内存分析堆:存放new的对象和数组。可以被所有的线程共享,不会存放别的对象引用。栈:存放基本变量类型(会包含这个基本类型的具体数值)。引用对象的变量(会存放这个引用在堆里面的具体地址)。方法区:可以被所有的线程共享。包含了所有的class和static变量。二维数组没什么难度的,跟一维差不多,遍历要两层。冒泡排序经典算法package com.kangkang.sort;​public class bubbleSort { public static void main(

2021-02-20 22:00:21 40

原创 JAVA8时间插入mysql少了8小时的解决办法

最近在用mybatis时发现,将LocalDateTime插入到数据库时时间少了8小时。用网上其他方法试了不少,比如修改mysql时区,都不能解决。最后发现是JDBC连接的参数写错了。经常在网上看到jdbc连接里边有这样一个参数&serverTimezone=UTC。这个UTC是协调世界时,我们中国在东八区,也就是UTC+8,和UTC差了8个小时。这就是为什么时间插入数据库后少了8小时的原因。那么中国的时区是多少呢?在java.time.ZoneId这个类的帮助文档和源码里写有:EST -

2021-02-20 17:21:56 124

原创 程序员过年大数据:最怕问工资、谈对象,要见的姑娘比亲戚还多。。

每逢佳节被相亲,有人欢喜有人愁。可是对于大多数程序员来说,每到春节就迎来被催婚高峰期,“要见的姑娘比亲戚还多。”苏宁发布了一组程序员过年大数据,报告显示,工资水平、婚恋情况和是否买房买车成为程序员过年最怕被问的三大问题。报告显示,约有三成的程序员最害怕相关薪资问题,其次依次为“有没有对象?”、“什么时候结婚、生孩子?”和“买房/车了吗?”,分别占17.33%、12.67%和7.33%。不过,约有17.33%的程序员自嘲有以一敌百的功力,无所畏惧。除了“主流”问题以外,不少程序员表示,很怕谈及“头

2021-02-20 15:28:39 52

原创 Java反射

一、概念运行状态中知道类所有的属性和方法。在Java中的反射机制是指在运行状态中,对于任意一个类都能知道这个类的所有属性和方法,并且对于任意一个对象,都能调用它的任意一个方法。这种能够获取信息以及动态调用对象方法的功能称为JAVA语言的反射机制。二、class文件包含的内容三、使用场所Java程序运行时,许多对象会出现两种类型:编译时类型,运行时类型。编译时类型:由声明对象时实用的类型来决定。运行时类型:由实际赋值给对象的类型决定。例:Person p = new Student();

2021-02-20 15:02:30 20

原创 redis和mysql结合数据一致性方案

缓存读:缓存由于高并发高性能,已经被广泛的应用。在读取缓存方面做法一致。流程如下:牛新星 > redis和mysql结合数据一致性方案 > image2021-2-19_16-57-35.png写缓存:1.先更新数据库,再更新缓存2.先更新数据库,再删除缓存。(1).先更新数据库,再更新缓存这套方案,基本不推荐使用。原因一:(线程安全角度)同时请求A和请求B进行更新操作,会出现。(1)线程A更新了数据库(2)线程B更新了数据库(3)线程B更新了缓存(4)线程A更新了缓存

2021-02-20 14:42:19 96

原创 mysql使用SUBSTRING_INDEX截取部分字符串

需求数据库中有个字段存取的接口返回的JSON数据,现在需要取出JSON数据中部分信息,数据格式如下,要取出orderSn对应的数据{"data":{"orderSn":"D21031315340867693","payUrl":"https://...","cOrderSnMap":{"年夜饭礼盒":"WD211414589349"}},"success":true,"totalCount":0}方法一:使用SUBSTRING_INDEX1.格式:SUBSTRING_INDEX(str, del

2021-02-20 14:35:37 3166

原创 JAVA_基础泛型

泛型1.所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类 型或者是某个方法的返回值及参数类型。这个类型参数将在使用时(例如, 继承或实现这个接口,用这个类型声明变量、创建对象时)确定(即传入实 际的类型参数,也称为类型实参)。2.从JDK1.5以后,Java引入了“参数化类型(Parameterized type)”的概念, 允许我们在创建集合时再指定集合元素的类型,正如:List,这表明 该List只能保存字符串类型的对象。JDK1.5改写了集合框架中的全部接口和类,为这些接口、类

2021-02-19 15:13:03 26

原创 反射之初认识

除了int等基本类型外,Java的其他类型全部都是class(包括interface)。仔细思考,我们可以得出结论:class(包括interface)的本质是数据类型(Type)。而class是由JVM在执行过程中动态加载的。JVM在第一次读取到一种class类型时,将其加载进内存。每加载一种class,JVM就为其创建一个Class类型的实例,并关联起来。注意:这里的Class类型是一个名叫Class的classpublic final class Class { private Cla

2021-02-19 15:04:57 25

原创 面向对象 练习一 改进:调用方法

1 package day1_2; 2 3 /** 4 * 定义类Student,包含三个属性,学号number(int),年级state(int),分数score(int) 5 * 创建20个学生对象,学号为1-20号,年级[1,6]和分数[0,100]随机数确定 6 * 问题一:打印出3年级学生的信息 7 * 问题二:将学生的成绩按照冒泡排序,并打印学生信息 8 */ 9 10 public class ObjectExer2 {11 public static.

2021-02-19 14:58:58 29

原创 Java基础知识:注释、关键字、标识符、数据类型、常量、变量、数据类型转换

1.java中注释有三种形式单行注释://多行注释:/**/文档注释:/** */2.java中的关键词(不需要记忆)关键词的特点:均由小写字母组成,代码编辑器会给颜色提示3.标识符的命名规范java中的标识符由:Unicode字符(数字字符,字母字符,中文字符等),下划线,美元符$组成,不能以数字开头命名注意事项:(1)见名知意,采用有意义的命名(2)不能是java中的关键字(3)定义包名,相当于文件夹名,通常使用小写字母表示如com,com.dlou(4) 定义类

2021-02-19 14:57:12 59

原创 计算机专业大学生应该买什么样的电脑?

前言  我们知道,学习计算机的第一步,一定是需要购买一台电脑的,因为计算机专业这是一个需要编程和练习的学科,而百分之九十以上的工作都是在电脑上进行的,所以在入门计算机专业之前,我们要购买一台足够适合自己的电脑。每年都有许多人问:我学计算机专业,到底应该买什么样的电脑呢?台式电脑 VS 笔记本电脑  首先我们将计算机分为两种计算机:台式电脑和笔记本电脑(手提电脑),来分析他们的优缺点。由上表可知,台式电脑有点多、缺点也一样多,而笔记本电脑最大的优势则是便携性强、无须担心停电问题,但正因如此,才需要花

2021-02-19 14:45:36 2234

原创 盘点各大互联网公司不同职级薪资情况

你们知道程序员在各大互联网所处不同的职级,薪资有何不同吗?有一位牛人整理了出来,一起来看看吧!互联网大厂薪资高,没想到这么高!今天,就为大家揭秘阿里、腾讯、字节、京东、美团、百度等十家互联网大厂的薪资职级,看完他们的收入待遇,再看看自己的,感觉要裂开——阿里巴巴阿里有两套人才体系,一套是P序列的专家路线,另一套是M序列的管理路线。校招是P5,社招是P6,P6升P7有一定难度,P7升P8是一个坎,阿里人主要集中在P6-P8。从P7开始有股票,股票是工作满2年才能开始拿,满两年拿50%,第3年25%,

2021-02-18 14:50:35 24727

原创 认识Java应用的各个层级

今天真正写功能的时候,在模仿各个功能模块中的dao,entity,service,web。自己动手写代码的时候,才开始理解各个包中代码的作用。主要是对service,dao层和web中的controller的理解加深了。dao我的理解: dao层是在Mybatis框架下通过@MyBatisDao连接后台代码与数据库的,主要对连接了对数据库的操作。dao层用于定义方法接口,然后在service层和serviceimpl层实现接口的方法,从而达到操作数据库的目的。对数据库进行数据持久化操作,方法语句主要是

2021-02-18 14:43:08 175

原创 请注意,程序员!千万不要让这七个细节暴露你缺乏经验……

只要工作足够长的时间,就会积累足够多的经验,这句话在某种程度上来看是正确的。然而,在另一些情况下,工作年限不会保证获得对应的经验。我见过一些人,他们已经工作了数年,可还像个业余者一样。他们几乎不学习软件开发的基本原理。几年过后,他们没有进步、停滞不前,却又找不到问题的症结所在。同时,我与一些有着几年的工作经验的开发者共事过,他们有着难以置信的发展潜力、恰当的态度和技巧,这能帮助他们避免做无用功。基于某些特征,你可以容易地发现谁有经验、谁缺乏经验。犯错会阻碍程序员的职业发展,为了避免这种情况,每个软件工程

2021-02-18 14:37:53 95

原创 js构造函数和原型

创建对象的方式1,对象字面量var obj1 = {}2,new Object()var obj2 = new Object()3,利用构造函数创建对象构造函数利用构造函数 可以创建很多个对象构造函数,把对象中公共属性和方法抽出来,放在构造函数里,通过new创建不同的对象function Star (name ,age){ this.name = name; this.age = age; this.song = function(){ conso

2021-02-18 14:21:53 29

原创 Java中多线程的六种状态详解

在我们的Thread类中,我们可以看到多线程有六种状态。NEW:初始状态RUNNABLE:运行状态BLOCKED:阻塞状态WAITING:等待状态TIMED_WAITING:超时等待状态TERMINATED:终止状态六种状态之间的转化关系如下:1、NEW 表示线程创建成功,但没有运行,在 new Thread 之后,没有 start 之前,线程都处于 NEW 状态;2、RUNNABLE 表示线程正在运行中,当我们运行 strat 方法,子线程被创建成功之后,子线程的状态变成 RUNNA

2021-02-18 14:10:53 79

原创 MySQL binlog

1.前言日志是把数据库的每一个变化都记载到一个专用的文件里,这种文件就叫做日志文件。Mysql默认只打开出错日志,因为过多的日志将会影响系统的处理性能。在5.0前支持文本格式和二进制格式,5.0后只支持二进制格式,因为二进制日志在性能、信息处理方面有更多的优点。2.基础知识2.1、二进制日志的启用二进制日志由配置文件的log-bin选项负责启用,Mysql服务器将在数据根目录创建两个新文件XXX-bin.001和XXX-bin.index,若配置选项没有给出文件名,Mysql将使用主机名称命名这两

2021-02-07 16:13:00 48

原创 MySQL数据库InnoDB数据恢复工具使用总结

本文从实际使用经验出发,介绍一款开源的MySQL数据库InnoDB数据恢复工具:innodb-tools,它通过从原始数据文件中提取表的行记录,实现从丢失的或者被毁坏的MySQL表中恢复数据。例如,当你不小心执行DROP TABLE、TRUNCATE TABLE或者DROP DATABASE之后,可以通过以下方式恢复数据。在介绍innodb-tools工具进行数据恢复之前,首先明确以下几点:1、这个工具只能对InnoDB/XtraDB表有效,而无法恢复MyISAM表(注: Percona号称有一套用于恢

2021-02-07 14:17:24 411

原创 Java 程序员 和 .NET 程序员

1、Java 程序员大多会一些设计,知道设计模式,知道 IoC;相反,.NET 程序员很多没有做过设计,也不知道什么叫设计模式 IoC。原因:.NET 程序员大多认为设计没有必要,有什么功能需要直接拿Visual Studio开始编码了,一旦发现搞错了重新修改一下也不是什么难事。2、Java 程序员大多会做原型,会用 DreamWeaver。.NET 程序员会用Visual Studio。原因:.NET 程序员认为有画原型的时间,我的系统已经做完了。3、Java 程序员大多会写 JavaScript

2021-02-07 13:57:52 41

原创 javascript十个最常用的自定义函数

如果不使用类库或者没有自己的类库,储备一些常用函数总是有好处的。(1)addEvent网上最流行的版本是Scott Andrew的,据说javascript界曾举行一场比赛(此事件我们可以在Pro Javascript Techniques第100页看到)或浏览PPK的网站,征求添加事件与移除事件的函数,他就是其获奖者。下面就是他的实现:function addEvent(elm, evType, fn, useCapture) { if (elm.addEventListener) {

2021-02-07 13:48:52 114

原创 Java 实现简单的 Socket 通信

Java socket 封装了传输层的实现细节,开发人员可以基于 socket 实现应用层。本文介绍了 Java socket 简单用法。1. 传输层协议传输层包含了两种协议,分别是 TCP (Transmission Control Protocol,传输控制协议) 和 UDP (User Datagram Protocol,用户数据报协议)。TCP 是一种面向连接,可靠的流协议。通信双方在“发送-接收”数据之前需要先建立 TCP 连接,然后通过互相发送二进制数据流来进行通信。所谓连接,指的是各种设

2021-02-06 15:51:30 243 1

原创 JVM,JRE,JDK概述

1.java跨平台特性的原理不同的操作系统平台如(Windows,Linuxs,mac)等通过安装java虚拟机,Java程序可以在任意操作系统上运行,一次编写到处运行;2.JVM(java virtue mechine):java虚拟机3.JRE(java runtime environment):java运行环境,为java程序运行提供支持,包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等4.JDK(java development kits

2021-02-06 15:45:02 36

原创 一道简单的Java面试题,但答错率很高!

这可能是历史上最简单的一道java面试题了。题目很简单,完成代码,判断一个整数是否是奇数:public boolean isOdd(int i)相信相当数量的人都已经在准备吐槽了,只要看过《编程珠玑》的人都知道这道题的答案和其中极为简单的道理。不过别着急骂街,不管你信不信,这道笔试题我拿到的答案好多都长这样:public boolean isOdd(int i) { if (i % 2 == 1) { System.out.println("是奇数"); } els

2021-02-06 14:29:41 64

原创 Java有陷阱,用时需谨慎——慎用入参做返回值

正常情况下,在Java中入参是不建议用做返回值的。除了造成代码不易理解、语义不清等问题外,可能还埋下了陷阱等你入坑。问题背景比如有这么一段代码:@Namedpublic class AService { private SupplyAssignment localSupply = new SupplyAssignment(); @Inject private BService bervice; public List<Supply> calcSupplyA

2021-02-06 14:21:30 72

原创 分析源码,学会正确使用 Java 线程池

在日常的开发工作当中,线程池往往承载着一个应用中最重要的业务逻辑,因此我们有必要更多地去关注线程池的执行情况,包括异常的处理和分析等。本文主要聚焦在如何正确使用线程池上,以及提供一些实用的建议。文中会稍微涉及到一些线程池实现原理方面的知识,但是不会过多展开。线程池的异常处理UncaughtExceptionHandler我们都知道Runnable接口中的run方法是不允许抛出异常的,因此派生出这个线程的主线程可能无法直接获得该线程在执行过程中的异常信息。如下例: public static void

2021-02-06 14:09:18 29

原创 给准备面试的应届生一个建议:做好自我介绍

之前在做公司的应届生招聘工作,主要负责技术方面的笔试和面试,虽然不像人力资源一样那么专业,但也有几句话对应届生说。这些话既不是秘籍,也不是捷径,而是一种态度。先说面试经历,几周下来,匆匆忙忙面试了几十号人,有本科生,有硕士生;其中有人特别优秀,也有人不堪入目;总之结果是有的人在面试3分钟后就决定录用,有的人在面试2分钟后就已排除。虽然招聘的岗位是软件开发、测试相关的岗位,但发现各种专业都有,既有计算机专业,也有心理学;同时发现硕士生多与本科生;故此,一边感慨HR筛选简历不仔细,一边又感慨工作难找,更感慨

2021-02-05 21:38:56 1538 3

原创 编程高手是如何练成的?

每个人都有成长的渴望,也都会遇到成长的瓶颈。一个读者问我:如何才能训练成为一个编程高手?先简单说下这个读者的背景:工作 3 年多,目前在大厂做后台开发,身边有不少编程高手,是他想要追赶的目标。最近半年时间,他花了一些精力在研究源码和底层原理上,但总觉得这些知识和实际工作衔接不好,提升很慢,学习动力也越来越差,希望我能给点建议。我和他语音聊了半个小时,讲了一些我个人以及身边同事的案例。交流下来后,双方都有所启发。所以再次整理下,分享给大家。何谓 “编程高手” ?我觉得能分成这样 3 类:第 1

2021-02-05 14:01:34 53

原创 Java学习之Thymeleaf使用

前言为了后续的代码审计一些常用的框架和技术都是有必要了解一下,在此重拾Spring Boot等开发知识内容。Thymeleaf简介Thymeleaf是一个现代的服务器端Java模板引擎的web和独立的环境,能够处理HTML, XML, JavaScript, CSS,甚至纯文本。Thymeleaf的主要目标是提供一种优雅的和高度可维护的方式来创建模板。为了实现这一点,它构建在自然模板的概念上,以不影响模板作为设计原型使用的方式将其逻辑注入模板文件。这改进了设计的交流,并在设计和开发团队之间架起了桥梁

2021-02-05 13:57:55 166

原创 知识分享:SQL语句中where条件后面的1=1是

这段代码应该是由程序中生成的,where条件中 1=1 之后的条件是通过 if 块动态变化的。例如: String sql="select * from table_name where 1=1";if( conditon 1) { sql=sql+" and var2=value2";}if(conditon 2) { sql=sql+" and var3=value3";}where 1=1 是为了避免where 关键字后面的第一个词直接就是 “and”而导致

2021-02-05 13:35:43 100

原创 javascript 面向对象之构造函数、工厂方式、字面量

什么是面向对象编程面向对象的英文全称:Object Oriented Programming , 简称OOP首先我们要先了解面向过程的编程思想, 就是代码从上到下都没有封装的意思,某写代码裸露在外、没有模块化、代码杂乱无章的写法. 并且还不好维护,也不便于后期二次修改面向对象的编程思想: 通俗的说就是要具备代码好维护、代码重用性高、耦合度低、高内聚、模块化、便于修改名词解释:高内聚: 指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。低耦合: 指让每个模块尽可能的

2021-02-05 13:20:31 77

空空如也

空空如也

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

TA关注的人

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