几个问题:
JavaEE是什么?
学后能得到什么,达到什么程度
逐步解释:
1“Java能干啥,怎么来的?”
一个想法的实现(智能面包机),C++学习门槛高—简化C++的一些语法设定—>Java诞生(萌新友好~)
智能面包机没搞成,但是Java流传下来了(但是当时的编程语言还是非常之多的…)
2.“Java如何脱颖而出的?”
时代背景:互联网,开始崛起~~
需求:人们开始习惯于通过浏览器,打开一个网站,来获取信息
Java对应的技术:Java衍生出applet技术——一种运行在浏览器上的技术(在浏览器上执行Java代码,来控制网页和用户之间进行交互)
也就是说:这个年代,Java的用途是开发网页的前端(相当于现在JavaScript扮演的角色)
————随着互联网的进一步发展,Java逐渐成了一个知名度非常高的编程语言了————(随着互联网的进一步发展,Java语言的知名度剧增)
3.“转折点:JavaScript‘’亮相””
起因:Java:危!!!
微软崛起—Windows崛起—IE浏览器崛起,取代当时主要浏览器网景Netscape.
微软釜底抽薪,让IE封杀“功臣”Java(不能运行Java了),意欲扶持自家编程语言VBScript上位——但是,VBScript不中用啊~~
JavaScript蹭热度“渔翁得利”(哇好意思吆,捡个漏啦~~)//本身和Java没关系,只是为了 蹭 热 度
VBscript“错失良机”
Java“从巅峰跌落谷底”
——JS自此称霸前端30年,如今微软TS市场份额又超过了JS
经过:Java:如何挣扎求生???接下来该咋办???——一、凭借JSP进军服务器开发,站稳脚跟二、进军手机应用开发
(1)进军服务器开发领域。
风口:网站
需求:网站需要:1.前端网页 2.后端服务器(服务器说Linux的天下,微软鞭长莫及)
那个年代,开发网站服务器,语言排序:
1.PHP(曾经自称世界上组好的编程语言)
当年(互联网发展最快的时候),开发一个网站,首选LAMP技术栈
(
L—Linux
A—Apache(HTTP服务器)
M—MySQL
P—PHP
)
2.Java参考PHP—>JSP
3.微软参考PHP—>ASP
(2)进军手机应用开发(2000年左右)。
——功能机时代:诺基亚、摩托罗拉
…
这些手机,功能也挺强大的,能安装第三方软件,这些软件,也是通过Java写的(Java——J2ME)
比如当时一些手机游戏的logo,就是Java的咖啡杯
==》在这连个方向的加持下,Java坚挺的活过来了,并成为那个时代最主流的编程语言之一~~(编程语言排行榜)
4.随着时间进一步推移,技术体系,又发生了天翻地覆的改变~~
(1)服务器开发这一端:前后端分离开发,解决方案降维打击PHP,Java占据后端开发第一把交椅
网站规模变大,PHP开始捉襟见肘
(PHP这种开发方式,比较适合开发中小型网站。
因为:PHP是把PHP代码嵌入到html中,很快速的根据你的需要来生成不同的动态页面。
如果代码规模变大,功能变复杂,这种写法就不太适合了。界面和逻辑 的耦合性非常强)
(淘宝这种就属于大规模的网站)
JSP也面临以上同样的问题:
解决方法:
前后端分离 开发方式~~
更彻底的把 界面和逻辑 进行解耦。
界面,专门使用前端这些技术来构建。
逻辑,专门由其他的语言来开发服务器。
服务器只是给前端提供数据,不干预界面是怎样~~
==》Java圈子中,Spring异军突起,里面衍生出了一系列用来构建后端服务器的相关工具组件,也就是Spring全家桶~~
这样的解决方案,对PHP形成降维打击,PHP想做出类似调整,为时已晚,目前PHP基本可以宣告凉凉了(很少有商业公司用PHP了,链家、百度,还有一下老的项目还是用的PHP)
(2)移动端开发:移动互联网时代开启,Java竞争过Python,成为谷歌力推的Android开发语言
背景:
2007 , 乔布斯发布苹果手机 —>移动互联网时代。
2012左右 ,iPhone4,安卓系统同时崛起(华为、小米…),功能机(诺基亚、摩托罗拉,一夜之间凉凉)
iPhone,苹果生态非常封闭,Java难以染指
Android,是一个开源的操作系统,生态更开放,Java尝试介入~~
Java与Python竞争:
(Android是谷歌维护的)
1.谷歌原本准备推Python作为Android应用的开发语言~~但是,Python之父(龟叔)正好要从谷歌离职
因此,Java趁机上位,成为了谷歌力推的开发安卓应用的语言(虽然C++也能开发)
2.虽然C++也能开发,但是
当时市场上有很多做J2ME的程序猿失业了~~这批人就能立即成为 安卓开发的生力军 ~ ~
开发者多了=>应用多了=>更多的用户=>更多的开发者=>正向循环~ ~
综上,在这样的加持之下,Java也就成了移动端开发的No1
——在双重加持下,Java一跃成为编程语言排行榜No1 ~~ 一直持续好多年——
(现在不是No1了,因为人工智能崛起,Python更火,但Java仍然榜上有名)
5.Java现状:
1.谷歌推出Kotlin,白嫖Java生态:
oracle和谷歌,因为Java有些纠纷,后来谷歌主推自主研发的语言Kotlin.
Kotlin白嫖Java的生态:
Java,运行在JVM上,编译成字节码文件。
Kotlin也编译成一模一样的字节码文件,也运行在JVM上。
PS:一套生态需要有很多的库、框架、各种工具。
感觉可以理解为Java世界中的各种“基础设施”,这些设施,也是需要随着Java语言世界的发展逐步完善、根据需求实际应用场景需求逐步产生,逐步添加的~~
所以,搞出一套生态,不那么容易
2.谷歌推出移动端开发框架flutter,同Java的另一个应用领域进行竞争:
flutter,搭载谷歌自主研发的语言Dart(一个和C语言有8分相似的语言)
通过这一套代码,能编译出 在 安卓、iOS、Windows,浏览器、Mac…都能运行的程序~~
(4个人的活,一个人就搞定了,所以,这个东西一旦发展起来,一批程序员就失业了)
6.我们应该如何应对(应有的态度——针对5):
作为一个专业的技术人员,编程语言,当然不能只会一个!!!
后面当然要学习更多的技术体系~~
旧的机会消失,新的机会又会出现
(之前J2ME程序员,因为谷歌推Java,不是也成了Java的力生军嘛~~)
互联网这样的主题,在未来相当长的时间里,仍然会是社会主旋律~~
7.JavaEE学什么、……
JavaEE主要学习Java开发网站后端,这一套相关的技术栈~~
(技术栈:就是一组相关的技术点,放到一起,就叫技术栈了。好像可以理解为,一套“功夫”hahaha)
JavaEE初阶,主要就是为后面学习Spring做铺垫~~讨论的仍然是计算机编程中一些比较基础的话题:
1)操作系统基础知识
2)多线程知识
3)文件操作
4)网络编程
5)网络原理
6)JVM
(以上这些也是程序猿的内功~~这些基础知识非常有意义,不只是对于做安卓开发而言,对于做其他语言的开发也很重要)
JavaEE进阶,学习以Spring为代表的一系列框架。