开发中的强调了JVM
当前的互联网开发环境有直接的关系:
已经不再单独的面对传统的一台主机运行一些程序,而后在进行简单的维护,现在讲究的是:高并发、分布式、高可用,对于程序的调优里面就需要去考虑JVM参数设计、JUC的使用。 【面试必问内容】
Java架构师(基础能力):
框架设计 + 通讯 + 多线程(JUC) + JVM + 数据结构 + 良好的结构设计(需要大量的代码基础的) 需要清楚内存模型、虚拟机分类、运行模式; 不适当的JVM运行状态,有可能会浪费你电脑的性能、良好的JVM调优,可以增加你电脑处理的负载;
JVM分类
Java是直接通过指针进行的程序访问,所以它没有采用句柄的形式操作,这样使得程序的性能更高。 传统意义上来讲,JVM一共分为三种(虚拟机是一个公共标准) 【SUN】从JDK 1.2开始使用了HotSpot虚拟机标准(2006年开源、利用C++实现、一些JNI部分使用的是系统提供的C程序实现的、JIT即时编译器); 【BEA】使用了JRockit虚拟机标准,例如:WebLogic; 【IBM】开发了JVM’s(J9)虚拟机; Oracle后来通过收购得到了:SUN与BEA,那么Oracle有了两个虚拟机标准(不可能浪费两个研发团队去干同样的事情);
JAVA内存模型
合理的内存模型可以使GC的性能更加强大,不必太大的浪费服务器的性能,从而减少阻塞所带来的程序的性能影响。 例:你现在收拾屋子,基本上我们会有两类收拾方法:
方式一:简单的进行物品的码放以及打扫卫生,时间短;
方式二:房屋装修与改造,时间长。 Java中数据保存的内存位置:堆内存(调优、原理); 最需要强调的就是JDK 1.8之后所带来的内存结构改变以及Gc策略提升;
Nginx简介
Nginx (engine x) 是一个轻量级的、高性能的、基于 Http 的、反向代理服务器,同时还是一个电子邮件服务器。
Nginx 最初是由俄罗斯人 Igor Sysoev(伊戈尔·赛索耶夫)使用 C 语言为俄罗斯访问量第二的 Rambler.ru 站点开发的一款服务器。2004 年 10 月发布第一个版本。
国内大型的站点,例如百度、京东、新浪、网易、腾讯、淘宝等,都使用了 Nginx。
正反向代理服务器Nginx
正向代理服务器
----------------------------------------------------------"翻墙"------------------------------------------------------------------
-------------------------------------------------------------------------"提速"----------------------------------------------------------------------------
--
-----------------------------------------------------"缓存"----------------------------------------------------------
--------------------------------------------------------------------授权""-----------------------------------------------------------------------------
反向代理服务器
集群负载均衡
nginx 的官网为: http://nginx.org。