あなたが方言を使う教える:最終的にはJavaのバックエンドは何をするのですか?

この記事を読んで約6分かかります。

著者:黄斜め


48b0ab1ce2dc4cc09e2aa2a7d3bc3475.jpg


しばしば誤解に初心者プログラマは、言語を学ぶ、それは、このようなと、このような言語のエンジニアと呼ばれることができることを考えることです。しかし、実際にはそれが本当にありますか?これはそうではありません。


私たちは、チャットよ今日は、最終的にはJava開発エンジニアが開発したものです。正確なポイントそれ、最終的にはJavaのバックエンドはやって?


私たちは皆、通常我々は、Javaプログラムは、Linuxサーバで実行して、サーバー・コードは、一般的にサーバー上で実行され、そのバックエンドサーバーを参照すると、サーバのバックエンドのJava言語であることを知っています。


呼ばれる場所での室内の一般的なインターネット企業ではこれらのサーバーは、私たちは種類のJavaプログラマのコードのように、一般的にどこのサーバルームで実行されます。


6aa199d30e0c41bc8c5e94c2f5468329.jpg


Java仮想マシンと呼ばれる概念を使用すると、あなたは、このような、どのような携帯ゲームアプリのインストールなどのAndroidアプリケーションを実行するために使用することができ、アンドリュースは、たとえば、あなたがコンピュータシミュレータアンドリュースをアップロードシミュレータとしてそれを理解することができ、ありますA。


あなたは何かがコンピュータにインストールされているJDKを呼び出したときにそう、コンピュータはJREはJavaランタイム環境である必要があります、このような環境では、Javaアプリケーションを実行することができます。


後のは、通常、最後に使用が何だと学びのJavaの基礎のいくつかについてお話ししましょう、コンピュータ上でJavaプログラムを実行する方法を知っていますか?


実際には、それは通常、いくつかのJavaの基本的な文法は、単に基本的な文法上のように、循環のための26通の英語の手紙、変数の共通の基本的なタイプに相当他にあれば、あなたは基本を記述したコードの一部です、基本を習得その後、あなたはいくつかの非常に簡単なコードを引き渡すことができます。


また、Javaといくつかのより多くの特別なクラスの概念を含むオブジェクト指向機能、などの概念、インタフェースなどが挙げられます。なぜそれがないこれらの事を紹介するJavaは、実際には、ユーザーに優れたデザイン、抽象化、およびプログラミングをさせることです。


あなたが実際にコードを書いた後、これらのものは、あなただけは徐々に理解することができるので、まず第一に、あなたは、特に深遠を理解する必要はありません。


ad13ad6da34441d1aeb548a8ec2d01f4.jpg


多くの基本を話した後、私は、そのようなユーザ名のリストとして、多くのシーンは、実際の生活の中で存在しているので、コレクションを使用する必要があり、しばしば言及したJavaクラスのコレクションは、それをやっている、あなたは好奇心旺盛になると思いますどのようにそれを維持するのでしょうか?


你会用一个 List 来做对不对,所以集合类的作用就是让你在编程中更好的存储数据。


事实上,集合类的概念最早是来源于数据结构的,因为计算机里有很多特殊的数据存储结构,比如文件树,比如链表和数组等结构,因此计算机理论把这些存储数据的模型抽象成一些常见的结构,统称为数据结构。


那么,Java 中的并发编程又是做什么的呢,Java 中的多线程是为了更好地利用电脑中的CPU核心,通过并发编程,就可以提高程序并发的效率。


但是并发编程的背后需要操作系统的支持,以及计算机硬件的支持,所以,如果你要完全地理解多线程,绝不仅仅是理解 Java 里的 Thread 或者是线程池就足够了,你还需要去理解操作系统,以及计算机组成原理。


118f03178965480aa9177a6f5ad06949.jpg


和并发编程类似,Java 里也有网络编程的概念,Java 里的网络编程和其他语言大同小异,其实也是基于 TCP/IP 协议实现的一套 API,通过网络编程,你就可以在程序中把你想传输的数据传输到网络的另一端,有了网络编程和并发编程之后,Java 程序员的能量已经很大了


讲完这几点之后接下来再谈谈,我们通常说的 Java 后端技术到底是什么,就拿支付宝来举例吧,曾经的支付宝用户数并不多,一台服务器,一个数据库就可以支持所有的业务了。


当支付宝的用户越来越多的时候,一台服务器无法同时满足海量用户的需求,于是开始出现了多台服务器,多台服务器组成了一个集群,用户可以通过负载均衡的方式访问这些服务器,每个用户可能会访问到不同的机器上,这样子就达到了分流的效果,服务器的压力就会减小。


由于数据库需要保证数据的可靠性,万一某一台数据库挂了,并且没有备份的话,那么这个数据就无法访问了,这在大型系统中是不允许出现的,于是乎,就有了数据库的主从部署。


但事实上,随着业务发展,数据库的压力也越来越大,主备部署并不能解决数据库访问性能的问题,于是乎我们需要进行分库分表,在数据库主备的基础上,我们会把一个数据量很大的表拆成多个表,并且把数据库请求分流到不同的数据上,比如说100个分库,100个分表,就相当于把一个数据表划分成10000个数据表。


此时又出现一个问题,如果一个数据库有多个备库,并且当主库挂掉的时候需要进行主从切换时,主备数据库之间的数据就可能发生不一致,而这也是分布式理论研究的问题之一,因为比较复杂,我们这里就略过不讲。


f74d7b52a750417b845e3d5713382991.jpg



刚才说到了分布式技术,其实负载均衡、分库分表都是分布式技术的一种实现,如果你不想做分库分表,那还有什么办法能够减轻数据库访问的压力呢?于是缓存就出现了,缓存可以让服务器先把请求打到缓存上,由于缓存的数据一般在内存中,所以访问速度会非常快,这些请求无需经过数据库。


随着业务发展,缓存的单点压力也会比较大,于是乎分布式缓存就出现了,通常来说,缓存难以保证数据的可靠性,因为它们的数据可能会丢失,同时缓存只能存储一部分的数据,并不能解决所有问题。


所以当某些业务的请求量非常大的时候,光靠缓存也解决不了问题,此时我们还可以通过消息队列来帮我们解决大流量并发请求的问题。


我们可以通过消息队列来存储一部分的请求消息,然后根据我们服务器处理请求的能力,把消息再逐步取出来,接着去把这些消息逐渐地进行处理,这样就可以很好的解决高并发的问题。当然,前提是消息队列要保证消息存储的可靠性,这也是大部分消息队列都会保证的能力。



fb698f5fd1904aa2ab6f454c2e30ba26.jpg


一口气讲了这么多,算是把 Java 后端的大概面貌介绍清楚了,除此之外还有很多东西没讲到,真要讲完的话一晚上也说不完。


总体来说,Java 后端技术,说难不难说简单也不简单,我尽量把这些内容都讲的比较通俗易懂,事实上每项技术的背后都有特别多复杂的实现原理,当然,在你理解了 Java 后端技术的整体概念以后,相信对于你之后的学习会更有帮助。


如果有哪里说错了,偷偷留言告诉我


著者[黄]のメーカーは、プログラマー、職場でのインターネット新しい知識、生涯学習の実践者、熟練した、よく精通インタビューをランプ職場を理解するだけでなく、あなたを知りたいです。すべてのインターネットはやる気と格好良い人が私を懸念していると言われています。



おすすめ

転載: blog.51cto.com/14006572/2426107