新手程序员一般会走进一个误区,便是认为学习了一门语言,就能够叫作为是某某语言工程师了。但事实上真的是这般吗?其实并非如此。
今天咱们就来聊一聊,Java 研发工程师到底研发的是什么东西。准确点来讲,Java后端到底在做什么?
大众都晓得 Java 是一门后端语言,后端指的便是服务端,服务端代码通常运行在服务器上,一般咱们运行Java 程序的服务器都是 Linux 服务器。
这些服务器在互联网机构中通常放在一个叫做机房的地区里,于是像咱们这类 Java 程序员的代码通常亦运行在这些机房里的服务器中。
Java 里有一个概念叫做虚拟机,你能够把它理解为一个安卓的模拟器,例如你在电脑上装了一个安卓模拟器,就可以经过它来运行安卓应用程序,例如装个 APP,手机游戏什么的。
因此当你在电脑上安装了一个叫做 JDK 的东西时,电脑里就有了 JRE 亦便是 Java 运行环境,有了这个运行环境,你就能够运行 Java 应用程序了。
晓得 Java 程序怎样运行在计算机上之后,咱们再来讲一讲平时学的有些 Java 基础知识,它们到底有什么用?
其实平时这有些 Java 基本语法都仅仅是你写代码的有些基本知识,就相当于英语中的 26 个字母,平常的有基本类型变量、for 循环、if else 等等基本语法,把握了这些基本知识之后,你就能够上手写有些很简单的代码了。
除此之外,Java 还有有些比较尤其的概念,例如面向对象的特性,其中有类、接口等概念。为何 Java 要引入这些东西呢,其实便是想让运用者更好地进行设计、抽象和编程。
针对新手来讲,你不必须理解得尤其的深刻,由于这些东西仅有你在你真正写代码之后才可逐步去理解。
说完基本知识之后,我想你亦会好奇,Java里经常说到的有些集合类是干嘛的呢,由于在现实生活中有非常多场景,必须用到集合类,例如说一个用户名列表,你要怎么存呢?
你会用一个 List 来做对不对,因此集合类的功效便是让你在编程中更好的存储数据。
事实上,集合类的概念最早是源自于数据结构的,由于计算机里有非常多特殊的数据存储结构,例如文件树,例如链表和数组等结构,因此呢计算机理论把这些存储数据的模型抽象成有些平常的结构,统叫作为数据结构。
那样,Java 中的并发编程又是做什么的呢,Java 中的多线程是为了更好地利用电脑中的CPU核心,经过并发编程,就能够加强程序并发的效率。
然则并发编程的背面必须操作系统的支持,以及计算机硬件的支持,因此,倘若你要完全地理解多线程,绝不仅是理解 Java 里的 Thread 或是线程池就足够了,你还必须去理解操作系统,以及计算机构成原理。
和并发编程类似,Java 里亦有网络编程的概念,Java 里的网络编程和其他语言大同小异,其实亦是基于 TCP/IP 协议实现的一套 API,经过网络编程,你就能够在程序中把你想传输的数据传输到网络的另一端,有了网络编程和并发编程之后,Java 程序员的能量已然很大了
讲完这几点之后接下来再谈谈,咱们一般说的 Java 后端技术到底是什么,就拿支付宝来举例吧,曾经的支付宝用户数并不多,一台服务器,一个数据库就能够支持所有的业务了。
当支付宝的用户越来越多的时候,一台服务器没法同期满足海量用户的需求,于是起始显现了多台服务器,多台服务器组成为了一个集群,用户能够经过负载平衡的方式拜访这些服务器,每一个用户可能会拜访到区别的设备上,这般子就达到了分流的效果,服务器的压力就会减小。
因为数据库必须保准数据的靠谱性,万一某一台数据库挂了,并且无备份的话,那样这个数据就没法拜访了,这在大型系统中是不准许显现的,于是乎,就有了数据库的主从安排。
但事实上,随着业务发展,数据库的压力亦越来越大,主备安排并不可处理数据库拜访性能的问题,于是乎咱们必须进行分库分表,在数据库主备的基本上,咱们会把一个数据量很大的表拆成多个表,并且把数据库请求分流到区别的数据上,例如说100个分库,100个分表,就相当于把一个数据表划分成10000个数据表。
此时又显现一个问题,倘若一个数据库有多个备库,并且当主库挂掉的时候必须进行主从切换时,主备数据库之间的数据就可能出现不一致,而这亦是分布式理论科研的问题之一,由于比较繁杂,咱们这儿就略过不讲。
刚才说到了分布式技术,其实负载平衡、分库分表都是分布式技术的一种实现,倘若你不想做分库分表,那还有什么办法能够减轻数据库拜访的压力呢?于是缓存就显现了,缓存能够让服务器先把请求打到缓存上,因为缓存的数据通常在内存中,因此拜访速度会非常快,这些请求无需经过数据库。
随着业务发展,缓存的单点压力亦会比很强,于是乎分布式缓存就显现了,一般来讲,缓存难以保准数据的靠谱性,由于它们的数据可能会丢失,同期缓存只能存储一部分的数据,并不可处理所有问题。
因此当某些业务的请求量非常大的时候,光靠缓存亦处理不了问题,此时咱们还能够经过信息队列来帮咱们处理大流量并发请求的问题。
咱们能够经过信息队列来存储一部分的请求信息,而后按照咱们服务器处理请求的能力,把信息再逐步取出来,接着去把这些信息逐步地进行处理,这般就能够很好的处理高并发的问题。当然,前提是信息队列要保准信息存储的靠谱性,这亦是大部分信息队列都会保准的能力。
一口气讲了这么多,算是把 Java 后端的大概面貌介绍清楚了,除此之外还有非常多东西没讲到,真要讲完的话一夜晚亦说不完。
总体来讲,Java 后端技术,说难不难说简单亦不简单,我尽可能把这些内容都讲的比较通俗易懂,事实上每项技术的背面都有尤其多繁杂的实现原理,当然,在你理解了 Java 后端技术的整体概念以后,相信针对你之后的学习会更有帮忙。
倘若有哪里说错了,偷偷留言告诉我
必须java学习路线图的私信笔者“java”领取哦!另一爱好这篇文案的能够给笔者点个赞,关注一下,每日都会分享Java关联文案!还有不按时的福利赠送,包含整理的学习资料,面试题,源码等~~