外链论坛

 找回密码
 立即注册
搜索
查看: 30|回复: 3

用大白话告诉你:Java到底是在做什么?

[复制链接]

2666

主题

119

回帖

9916万

积分

论坛元老

Rank: 8Rank: 8

积分
99160502
发表于 2024-8-17 11:29:01 | 显示全部楼层 |阅读模式

新手程序员一般走进一个误区,便是认为学习了一门语言,就能够叫作为是某某语言工程师了。但事实上真的是这般吗?其实并非如此。

今天咱们就来聊一聊,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关联文案!还有不按时的福利赠送,包含整理的学习资料,面试题,源码等~~

回复

使用道具 举报

0

主题

1万

回帖

1

积分

新手上路

Rank: 1

积分
1
发表于 2024-8-19 20:07:03 | 显示全部楼层
全局回复2
回复

使用道具 举报

0

主题

1万

回帖

1

积分

新手上路

Rank: 1

积分
1
发表于 2024-9-8 01:54:49 | 显示全部楼层
外贸B2B平台有哪些?
回复

使用道具 举报

2525

主题

4642

回帖

9998万

积分

论坛元老

Rank: 8Rank: 8

积分
99981029
发表于 4 天前 | 显示全部楼层
期待更新、坐等、迫不及待等。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-10-3 18:28 , Processed in 0.069054 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.