学习javaEE初阶的第一堂课

2023-10-30 01:40
文章标签 java 学习 初阶 ee 一堂课

本文主要是介绍学习javaEE初阶的第一堂课,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

请添加图片描述

学习金字塔

java发展简史

Java最初诞生的时候是用来写前端的!!

199x年

199x年,互联网还处在比较早期的阶段,当时主流的编程语言是 C/C++,
有个大佬要搞个"智能面包机",觉得用C++来做太难了
image-20230914175513956

于是就基于C++搞了个简单点的语言,Java 就诞生了~~
遗憾的是项目流产了,没做成,但是java存活了下来,后来别人一看,
java这门语言还行,还不错 ~~ 毕竟当时的人苦C++久已!!!

这时java又被赋予新的用途了 ~~ java用来做网页前端开发了,相关的技术叫applet
~~ 去图书馆翻比较老的java教科书,一般上面都会介绍applet
java通过这点, 变得风声水起 ~~ 大火 ~~ 甚至说,后来有后来者,为了蹭热度,把自己的名字都改成和Java相关的,叫JavaScript,但是了,java和javaScript是两门毫不相关的语言

问题来了,为什么现在不再用java做前端开发???
原因就是,java在发展的过程中,被微软这个大佬精准狙击了,
做网页前端开发的必要条件就是,代码要运行在浏览器上的.
当年最火的浏览器 ~~ 网景(Netscape) ~~ 当时人们上网的标配
但是由于微软WIndows的强势崛起,带着IE浏览器(Windows内置的浏览器)上分了 ~~ 可怜的网景被打得没有还手之力
当IE坐稳第一的交椅,成为最属浏览器之后,微软做出了违背祖宗的决定 ~~ IE浏览器不再支持Java !!!
Java就这样从天堂跌入到了地狱!!!

为啥要微软要狙击java ???
为了扶持自家的产品 ~~ VBScript之类的
但是了,当时的市场并不买账,程序猿们纷纷投靠JavaScript
~~ 这个事情就让JS莫名其妙的就火了快30年~~鹬蚌相争,渔翁得利

2000年后

时间到了2000年之后,相比于90年代,互联网得到了极大的发展,
互联网的产品形态越来越丰富,网站变得不再是一个简单的"报纸/杂志"这样的形态,而是有了更多的功能需求 => 对于服务器这里也是一个很大的需要了!!!
各路神仙纷纷去抢这个服务器开发的市场份额
~~ 在这之前, web服务器开发主要是靠C/C++(CGI技术体系),但是用起来比较难用
其中抢的最好的就是PHP ~~ PHP拔的头筹,当时web 服务器开发最火的技术
~~ Java 屈居第二,紧随其后,使用的是JSP这一套技术
~~第三的就是微软弄的一个ASP

当年来进行web开发的技术体系LAMP
L=> linux
A => Apache
M => MySQL
P => PHP

由于这时PHP的十分火爆,导致,PHP的作者们都有点膨胀
~~在PHP官方网站上写下了这样的一句话,
“PHP是世界上最好的编程语言”

同时,主角Java 也从被微软狙击的阴影中走出来 ~~ 发展的又风生水起,

再加上2000年之后,手机(功能机)的逐渐流行
代表之作: 诺基亚 , 摩托罗拉等等
这些手机也是允许开发程序.也是使用Java ~~ J2ME
当年的手机程序,启动的时候,都是带java logo

基于如此, Java就成了最主流的编程语言之一

2010年后

时间来到了2010年之后 ~~ (2007乔布斯发布了苹果手机)
iPhone 4 的发布 ~~ 早期苹果最经典的版本 ~~ 带来最大的变化就是引入了应用商店(AppStore)
=> 这就允许开发者开发各种各样的第三方应用, 用手机做一个平台, 进行应用的推广~~ 具有划时代的意义

但是由于苹果手机的昂贵,普通人是无力购买的
这时,另外一个大佬安卓(谷歌开发的)登场了,
在一系列安卓手机厂商,如韩国的三星,国内的小米加持下,
智能手机的价格就被打下来了,但随之而来的是对之前的诺基亚等功能机的毁灭性打击,
~~ J2ME系列技术栈,也就随之陨落了 ~~ 大量的手机开发者就失业了
~~ Java 再次受到严重的打击

但是,Java并没有选择沉沦,开始Java重新布局~~

1.服务器这边 ~~ PHP逐渐难以应付更复杂的网站开发了 ~~ 前后端分离的开发模式开始流行,
Java 的Spring开始崛起 ~~ 在Spring加持之下,Java 成为web后端开发的首选 ~~

注: Spring不只是一个框架,而是一个生态 ~~ 开发一个网站,你想要啥,不用自己从头写
~~ Spring 都给你提供对应的组件,直接能用

2.移动端这边 ~~ 本来,安卓程序开发语言,谷歌是想使用 Python ~~ (正好 Python 作者龟叔,
那段时间要从谷歌离职), Java就趁机上位
~~ 之前开发J2ME 的程序猿们立即投靠安卓阵营,短时间就给安卓开发出大量的应用程序 ~~=> 吸引到更多的用户来使用 ~~=> 进一步吸引到更多的程序猿来开发应用 (一个良性循环)
~~ 安卓就在短短几年内,爆发式增长 ~~ 快速就超过了苹果,甚至超过了windows桌面端
现在的安卓就是妥妥的世界第一大操作系统

Java在安卓和Spring两大助力之下,就被推上了江湖的第一把交椅 ~~ Java就成“世界上最好的编程语言"

2010年左右的这个时间 ~~ 属于后端和移动端都在崛起 ~~ 快速发展阶段
尤其是移动端~~ 这个时间点,搞安卓和ios的人特别多,找工作也异常容易
~~ 当时国内,市场发展是非常野蛮 ~~ "全民创业”,
随便有个点子,做个app,然后就能从风投那里骗到钱,
但是好景不长,经济形式没那么好,资本也冷静下来了,趋势也就被遏制住了
~~ 随之移动端开发这个事情"火爆"也就冷静下来了
现在的移动端和后端和前端…没有啥本质区别~~

冯诺依曼体系结构

image-20230914205508466

CPU

组装台式机的八大件
CPU, 内存, 硬盘, 主板, 散热器, 电源, 机箱, 显卡

CPU 是一台计算机,最最核心,最最重要的部分,最最有科技含量的东西!!!
CPU是当前人类科技的巅峰之作!!!能和CPU相提并论,目前唯有氢弹.
CPU主要成分,硅 ~~ 从沙子(二氧化硅)提炼的 => “点沙成金”

美国人要对咱们进行卡脖子,不供给咱们芯片~ 主要指的就是CPU
模电,数电,计组,微机接口原理与技术 => 告诉你CPU的工作原理

CPU研发端:
代表: Intel(霸主), AMD, 高通, 苹果等

CPU制造端:
代表: 台积电

CPU运算快 => 集成程度高 =>单位原件就小 => 加工难度就越大

如何衡量CPU运行速度快慢呢??
CPU有个很重要的概念,主频 ~~ 数字越大,运算速度越快!!
第一代计算机,埃尼阿克,主频5000(每秒计算5000次)

image-20230914213407088

image-20230914212740996

GPU

GPU ~~ 显卡
最初的计算机,没有GPU
~~ 图形的显示和渲染,都是CPU完成的
随着人们对于图像要求越来越高 ~~ 处理图像运算量越来越大了
图像运算的算法简单,但是运算量大,好比就算1+1,要算很多很多个1+1
CPU是属于"通用计算芯片"
~~ CPU可以算1+1简单的任务,也可以解微分方程复杂的任务 ~~ 让CPU进行图形的显示和渲染,就大材小用了
为了解决这个问题,就弄了"专用计算芯片"GPU,专门去负责算1+1,但是特别擅长算这个
目前消费机最好的显卡: 英伟达的4090
显卡不光可以用来渲染图形,还可以用来挖矿,还可以用来应用到机器学习中(人工智能)

javaEE初阶的学习

解锁新地图,开始关于JavaEE初阶的内容了
~~ 注:无论是理论还是代码,都要比数据库&数据结构难很多

学习JavaEE目标是为了干啥??

~~ 做网站!!

学了javaEE初阶就能做网站了
学了javaEE进阶就能用一些更好的,更优化,更高效的方式做出网站

网站的构成

一个网站包含两部分,包含前端和后端

~~ 一个网站 = 前端 + 后端

前端: 浏览器打开的网页,直接和用户交互的部分

后端: 服务器(网页后面的部分) ~~ 网页的数据来源

是为了干啥??

~~ 做网站!!

学了javaEE初阶就能做网站了
学了javaEE进阶就能用一些更好的,更优化,更高效的方式做出网站

网站的构成

一个网站包含两部分,包含前端和后端

~~ 一个网站 = 前端 + 后端

前端: 浏览器打开的网页,直接和用户交互的部分

后端: 服务器(网页后面的部分) ~~ 网页的数据来源

image-20230914152937120

这篇关于学习javaEE初阶的第一堂课的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/304762

相关文章

Spring Boot 2.7.8 集成 Thymeleaf的最佳实践与常见问题讨论

《SpringBoot2.7.8集成Thymeleaf的最佳实践与常见问题讨论》本文详细介绍了如何将SpringBoot2.7.8与Thymeleaf集成,从项目依赖到配置文件设置,再到控制器... 目录前言一、如何构建SpringBoot应用1、项目依赖 (pom.XML)2、控制器类3、Thymelea

SpringBoot项目jar依赖问题报错解析

《SpringBoot项目jar依赖问题报错解析》本文主要介绍了SpringBoot项目中常见的依赖错误类型、报错内容及解决方法,依赖冲突包括类找不到、方法找不到、类型转换异常等,本文给大家介绍的非常... 目录常见依赖错误类型及报错内容1. 依赖冲突类错误(1) ClassNotFoundExceptio

springboot控制bean的创建顺序

《springboot控制bean的创建顺序》本文主要介绍了spring-boot控制bean的创建顺序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录1、order注解(不一定有效)2、dependsOn注解(有效)3、提前将bean注册为Bea

Java中的ConcurrentBitSet使用小结

《Java中的ConcurrentBitSet使用小结》本文主要介绍了Java中的ConcurrentBitSet使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、核心澄清:Java标准库无内置ConcurrentBitSet二、推荐方案:Eclipse

java中的Supplier接口解析

《java中的Supplier接口解析》Java8引入的Supplier接口是一个无参数函数式接口,通过get()方法延迟计算结果,它适用于按需生成场景,下面就来介绍一下如何使用,感兴趣的可以了解一下... 目录1. 接口定义与核心方法2. 典型使用场景场景1:延迟初始化(Lazy Initializati

Java中ScopeValue的使用小结

《Java中ScopeValue的使用小结》Java21引入的ScopedValue是一种作用域内共享不可变数据的预览API,本文就来详细介绍一下Java中ScopeValue的使用小结,感兴趣的可以... 目录一、Java ScopedValue(作用域值)详解1. 定义与背景2. 核心特性3. 使用方法

spring中Interceptor的使用小结

《spring中Interceptor的使用小结》SpringInterceptor是SpringMVC提供的一种机制,用于在请求处理的不同阶段插入自定义逻辑,通过实现HandlerIntercept... 目录一、Interceptor 的核心概念二、Interceptor 的创建与配置三、拦截器的执行顺

Java中Map的五种遍历方式实现与对比

《Java中Map的五种遍历方式实现与对比》其实Map遍历藏着多种玩法,有的优雅简洁,有的性能拉满,今天咱们盘一盘这些进阶偏基础的遍历方式,告别重复又臃肿的代码,感兴趣的小伙伴可以了解下... 目录一、先搞懂:Map遍历的核心目标二、几种遍历方式的对比1. 传统EntrySet遍历(最通用)2. Lambd

Spring Boot 中 RestTemplate 的核心用法指南

《SpringBoot中RestTemplate的核心用法指南》本文详细介绍了RestTemplate的使用,包括基础用法、进阶配置技巧、实战案例以及最佳实践建议,通过一个腾讯地图路线规划的案... 目录一、环境准备二、基础用法全解析1. GET 请求的三种姿势2. POST 请求深度实践三、进阶配置技巧1

springboot+redis实现订单过期(超时取消)功能的方法详解

《springboot+redis实现订单过期(超时取消)功能的方法详解》在SpringBoot中使用Redis实现订单过期(超时取消)功能,有多种成熟方案,本文为大家整理了几个详细方法,文中的示例代... 目录一、Redis键过期回调方案(推荐)1. 配置Redis监听器2. 监听键过期事件3. Redi