esc0rp 发表于 2024-8-17 11:29:01

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


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




情迷布拉格 发表于 2024-8-19 20:07:03

全局回复2

情迷布拉格 发表于 2024-9-8 01:54:49

外贸B2B平台有哪些?

4lqedz 发表于 2024-9-29 19:33:28

期待更新、坐等、迫不及待等。

j8typz 发表于 2024-10-4 00:51:40

i免费外链发布平台 http://www.fok120.com/

qzmjef 发表于 2024-10-31 09:21:54

感谢楼主的分享!我学到了很多。

j8typz 发表于 昨天 20:50

你的努力一定会被看见,相信自己,加油。
页: [1]
查看完整版本: 用大白话告诉你:Java到底是在做什么?