Java项目基本术语介绍

先说一些常见的
java项目一般分为下面几类:
SaaS:软件及服务,通俗意义上讲就是软件从所有权,变成了使用权。,典型例子如企业微信钉钉企业版(OA系统大多也是Saas系统)
paas:平台即服务,将软件研发的平台作为一种服务,以SaaS的模式提交给用户。典型例子云计算平台(注意平台2字,云计算运用了3种系统,云计算平台是paas系统,只有大型公司才拥有paas系统)
Iaas:前面2者的结合,是指把IT基础设施作为一种服务通过网络对外提供。这个不是太好描述,自行理解吧

OA:工作流,最常见的项目,大多数公司开发的都属于OA系统,简单点就是办公系统,比如人员管理系统,学生管理系统都属于OA
CRL:权限控制系统,又称客户管理系统,银行和支付相关的公司一般会有这种系统
ERP系统:作用是储存数据,比较常用的例子是MySQL,orcal等数据库(MES是ERP下的子类,使用较少不额外介绍)
PDM:生产数据管理系统,国内岗位较少,一般从事相关工作者简称数据库管理员
HR:人力资源管理系统,这个不用说了吧
springboot组件开发:这个只有大型公司拥有,组件可以理解为小型框架或者插件,这个和ERP系统最吃技术

微服务:新型架构方式,代表为Springcloud和dubbo,是一种架构方式,可以将大的项目分为多个小项目,根据访问量决定部署服务器数量,是目前用的最多的架构方式,微服务的最大问题是CAP定律(自行百度)
与微服务对应的是单机系统部署,不介绍(已近乎淘汰,没必要了解)

B/S:浏览器/服务器模式,通过访问浏览器达到需求,浏览器只是一个形式,通过APP,小程序等完成需求的都可以属于B/S系统
C/S:内网开发系统,安全性较高,通过特定方式(比如某个指定平台制定系统)达到需求,用于专业网络而非广域网

消息中间件:及时通讯系统,往往用来做数据缓冲,但也可以直接当作程序,如QQ,常见消息中间件为:ActiveMQ,RocketMQ,KafKa,RabbitMQ,其中ActiveMQ和RabbitMQ为万级别,KafKa和RockerMQ为十万级别,所有消息中间件都拥有消费者和生产者2个对象.

缓存:现在最流行的为Redis和memcached,对热点数据进行缓存可以减轻服务器压力,加快用户访问速度

Kafka:目前除阿里外企业可用的最大消息中间件,大数据方向比用,可以与Spark,Hive等协同使用

搜索引擎:如百度之类背后的软件,大多数软件都有,目前主流为Elasticsearch和Solr,这个可以属于大数据方面,工资高于正常程序员,大型公司常用Elasticsearch

spring社区和apache社区:对java影响最大的2大社区

设计模式:共有23种,属于编程思想,开发框架必备

反射:一种编程模式,开发框架必备

NoSQL:非关系型数据库,常见mongo,Redis,都有制定作用

分布式锁:分布式问题是微服务引发的问题,因为网络的不协调性,延迟性等问题引发的,是微服务最难解决的问题,目前还没有完美的解决方法,分布式锁是目前承认的最好解决方案,有3种分布式锁,zookeeper锁,redis锁,数据库锁

AOP:面向切面编程,有2种AOP,静态织入和动态代理,spring使用的是动态代理,Aspectj是静态织入
IOC:控制反转,有2种实现方式,DI(依赖注入)和DL(依赖查找)
DI:在spring中DI和IOC是一个概念,通过将对象放入容器,然后由容器复制创建和维护对象之间的依赖关系,而不是通过对象本身复制自己的创建和解决自己的依赖。控制反转是通过依赖注入实现的。

Paxos原理:分布式原理,大多数分布式系统都借鉴或者使用了paxos中的一部分

docker:容器,等同于作用单一的虚拟机,多用于部署运维

kubernetes:简称k8,谷歌管理容器的方法,被大型公司认同

zookeeper:分布式应用程序协调服务,是kafka,hadoop等的核心

拜战庭将军问题:拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马帝国的首都。由于当时拜占庭罗马帝国国土辽阔,为了达到防御目的,每个军队都分隔很远,将军与将军之间只能靠信差传消息。在战争的时候,拜占庭军队内所有将军和副官必须达成一致的共识,决定是否有赢的机会才去攻打敌人的阵营。但是,在军队内有可能存有叛徒和敌军的间谍,左右将军们的决定又扰乱整体军队的秩序。在进行共识时,结果并不代表大多数人的意见。这时候,在已知有成员谋反的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,拜占庭问题就此形成.分布式必须解决的问题,目前比特币的解决方案被认为是最佳解决方案

Mycat:数据库集群管理,作用分库分表,大型公司必学

Neo4j:高性能图形数据库,非关系数据库

TAIR:结构数据库存储系统,分布式数据库,存储类型为key/value

Aerospike:分布式随机型数据库,广告用的较多

JVM:java虚拟机底层,面试必问,开发基本无用(撑一年死加1行代码)

你可能感兴趣的:(java,常见小知识,理论)