学习javaEE初阶的第一堂课

学习金字塔

java发展简史
Java最初诞生的时候是用来写前端的!!
199x年
199x年,互联网还处在比较早期的阶段,当时主流的编程语言是 C/C++,
有个大佬要搞个"智能面包机",觉得用C++来做太难了

于是就基于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,然后就能从风投那里骗到钱,
但是好景不长,经济形式没那么好,资本也冷静下来了,趋势也就被遏制住了
~~ 随之移动端开发这个事情"火爆"也就冷静下来了
现在的移动端和后端和前端…没有啥本质区别~~
冯诺依曼体系结构

CPU
组装台式机的八大件
CPU, 内存, 硬盘, 主板, 散热器, 电源, 机箱, 显卡
CPU 是一台计算机,最最核心,最最重要的部分,最最有科技含量的东西!!!
CPU是当前人类科技的巅峰之作!!!能和CPU相提并论,目前唯有氢弹.
CPU主要成分,硅 ~~ 从沙子(二氧化硅)提炼的 => “点沙成金”
美国人要对咱们进行卡脖子,不供给咱们芯片~ 主要指的就是CPU
模电,数电,计组,微机接口原理与技术 => 告诉你CPU的工作原理
CPU研发端:
代表: Intel(霸主), AMD, 高通, 苹果等
CPU制造端:
代表: 台积电
CPU运算快 => 集成程度高 =>单位原件就小 => 加工难度就越大
如何衡量CPU运行速度快慢呢??
CPU有个很重要的概念,主频 ~~ 数字越大,运算速度越快!!
第一代计算机,埃尼阿克,主频5000(每秒计算5000次)


GPU
GPU ~~ 显卡
最初的计算机,没有GPU
~~ 图形的显示和渲染,都是CPU完成的
随着人们对于图像要求越来越高 ~~ 处理图像运算量越来越大了
图像运算的算法简单,但是运算量大,好比就算1+1,要算很多很多个1+1
CPU是属于"通用计算芯片"
~~ CPU可以算1+1简单的任务,也可以解微分方程复杂的任务 ~~ 让CPU进行图形的显示和渲染,就大材小用了
为了解决这个问题,就弄了"专用计算芯片"GPU,专门去负责算1+1,但是特别擅长算这个
目前消费机最好的显卡: 英伟达的4090
显卡不光可以用来渲染图形,还可以用来挖矿,还可以用来应用到机器学习中(人工智能)
javaEE初阶的学习
解锁新地图,开始关于JavaEE初阶的内容了
~~ 注:无论是理论还是代码,都要比数据库&数据结构难很多
学习JavaEE目标是为了干啥??
~~ 做网站!!
学了javaEE初阶就能做网站了
学了javaEE进阶就能用一些更好的,更优化,更高效的方式做出网站
网站的构成
一个网站包含两部分,包含前端和后端
~~ 一个网站 = 前端 + 后端
前端: 浏览器打开的网页,直接和用户交互的部分
后端: 服务器(网页后面的部分) ~~ 网页的数据来源
是为了干啥??
~~ 做网站!!
学了javaEE初阶就能做网站了
学了javaEE进阶就能用一些更好的,更优化,更高效的方式做出网站
网站的构成
一个网站包含两部分,包含前端和后端
~~ 一个网站 = 前端 + 后端
前端: 浏览器打开的网页,直接和用户交互的部分
后端: 服务器(网页后面的部分) ~~ 网页的数据来源

相关文章:
学习javaEE初阶的第一堂课
学习金字塔 java发展简史 Java最初诞生的时候是用来写前端的!! 199x年 199x年,互联网还处在比较早期的阶段,当时主流的编程语言是 C/C, 有个大佬要搞个"智能面包机",觉得用C来做太难了 于是就基于C搞了个简单点的语言,Java 就诞生了~~ 遗憾的是项目流产了,没做成…...
请问一下就是业务概念模型和业务逻辑模型有啥关系
请问一下就是业务概念模型和业务逻辑模型有啥关系? 业务概念模型和业务逻辑模型是业务建模的两个关键组成部分,两者密切相关但又有所不同。 1.业务概念模型:这是对业务术语、定义和关系的一种抽象表示。它是从业务专家那里获得的知识&#…...
3.2 Android eBPF程序类型
写在前面 为什么要先了解eBPF程序类型? 从帮助函数中,我们可能基于内核的eBPF开放API,对eBPF的能力有一个比较细致的认识,但是这并不能让我们从全局,或者更概括的认识eBPF。eBPF程序类型能够更宏观的告诉我们,eBPF能做哪些事情(除网络相关)。 一,eBPF程序类型 内核…...
多目标优化算法:基于非支配排序的小龙虾优化算法(NSCOA)MATLAB
一、小龙虾优化算法COA 小龙虾优化算法(Crayfsh optimization algorithm,COA)由Jia Heming 等人于2023年提出,该算法模拟小龙虾的避暑、竞争和觅食行为,具有搜索速度快,搜索能力强,能够有效平衡…...
Linux学习第13天:嵌入式LinuxLED驱动开发:一字一符总见情
在正式写这篇笔记前,有一个事情必须要说一下。昨天更新的基于API函数的字符设备驱动开发按照正常的教程来说应该在本笔记后一天更新才对。但是由于我一时的疏忽,跳过了本笔记。在昨天学习基于API函数的时候造成了一定程度的困扰。今天重翻教程的时候才发…...
ModuleNotFoundError: No module named ‘omni‘
install isaac sim on linux open the isaac sim folder in /home//.local/share/ov/pkg/isaac_sim-2022.1.1 source setup_python_env.sh ./python.sh standalone_examples/replicator/offline_generation.pyNo module named ‘omni.isaac’...
题解:ABC320B - Longest Palindrome
题解:ABC320B - Longest Palindrome 题目 链接:Atcoder。 链接:洛谷。 难度 算法难度:C。 思维难度:C。 调码难度:C。 综合评价:入门。 算法 字符串处理。 思路 通过双层循环分别枚…...
大模型从入门到应用——LangChain:代理(Agents)-[代理执行器(Agent Executor):结合使用Agent和VectorStore]
分类目录:《大模型从入门到应用》总目录 代理执行器接受一个代理和工具,并使用代理来决定调用哪些工具以及以何种顺序调用。本文将参数如何结合使用Agent和VectorStore。这种用法是将数据加载到VectorStore中,并希望以Agent的方式与之进行交互…...
【算法题】100040. 让所有学生保持开心的分组方法数
题目: 给你一个下标从 0 开始、长度为 n 的整数数组 nums ,其中 n 是班级中学生的总数。班主任希望能够在让所有学生保持开心的情况下选出一组学生: 如果能够满足下述两个条件之一,则认为第 i 位学生将会保持开心: …...
TrOCR – 基于 Transformer 的 OCR 入门
一、TrOCR 架构 近些年,光学字符识别 (OCR) 出现了多项创新。它对零售、医疗保健、银行和许多其他行业的影响是巨大的。与深度学习的许多其他领域一样,OCR领域也看到了Transformer 神经网络的重要性和影响。如今,出现了像TrOCR(Transformer OCR)这样的模型,它在准确性方面…...
单例模式优缺点
单例模式是一种创建型设计模式,其主要目的是确保类只有一个实例,并提供全局访问点来获取该实例。单例模式具有一些优点和缺点,下面我将列出它们: **优点:** 1. **全局唯一性**:单例模式确保在应用程序中只…...
【Java 基础篇】Java 字节流详解:从入门到精通
Java中的字节流是处理二进制数据的关键工具之一。无论是文件操作、网络通信还是数据处理,字节流都发挥着重要作用。本文将从基础概念开始,深入探讨Java字节流的使用,旨在帮助初学者理解和掌握这一重要主题。 什么是字节流? 在Ja…...
Vue记录(下篇)
Vuex getters配置项 *Count.vue <template><div><h1>当前求和为:{{$store.state.sum}}</h1><h3>当前求和的10倍为:{{$store.getters.bigSum}}</h3><select v-model.number"n"><option value&q…...
【测试开发】概念篇 · 测试相关基础概念 · 常见开发模型 · 常见测试模型
【测试开发】概念篇 文章目录 【测试开发】概念篇1. 什么是需求1.1 需求的定义1.2 为什么有需求1.3 测试人员眼里的需求1.4 如何深入了解需求 2. 什么是测试用例2.1 为什么有测试用例2.2 练习>手机打电话 3. 什么是bug4. 开发模型和测试模型4.1 软件生命周期4.2 开发模型4.3…...
1. 快速体验 VSCode 和 CMake 创建 C/C++项目
1. 快速体验 VSCode 和 CMake 创建 C/C项目 本章的全部代码和markdown文件地址: CMake_Tutorial,欢迎互相交流. 此次介绍的内容都是针对于 Linux 操作系统上的开发过程. 1.1 安装开发工具 VSCode: 自行下载安装, 然后安装插件 Cmake:在 Ubuntu 系统上, 可以采用 ap…...
【JAVA-Day18】用大白话讲解 Java 中的内存机制
标题 用大白话讲解 Java 中的内存机制摘要引言一、Java 内存机制1.1 栈内存1.2 堆内存 二、Java 如何管理内存三、合理管理内存的必要性与其他方式相比优势劣势建议四、总结参考资料 博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客👦🏻 《…...
[Hadoop] start-dfs.sh ssh报错
Permission denied (publickey 决解方案 相关命令 cd ~/.sshssh-keygen -t rsa -p""cat id_rsa.pub >> authorized_keyschmod 0600 authorized_keys 相关链接Hadoop: start-dfs.sh permission denied - Stack Overflow Java HotSpot(TM) Server VM warning…...
amlogic 多wifi 多bluetooh 兼容方案
WiFi部分: vendor/amlogic/common/wifi_bt/wifi/configs/wifi.mk 或者 hardware/amlogic/wifi/configs/wifi.mk ################################################################################## realtek wifi ifneq ($(filter rtl8188eu rtl8188ftv rtl8192eu rtl8…...
Apache Hive概述,模拟实现Hive功能,Hive基础架构
1、Apache Hive 概述 1.1、分布式SQL计算 对数据进行统计分析,SQL是目前最为方便的编程工具。 大数据体系中充斥着非常多的统计分析场景 所以,使用SQL去处理数据,在大数据中也是有极大的需求的。 MapReduce支持程序开发(Java…...
postgresql|数据库|centos7下基于postgresql-12的主从复制的pgpool-4.4的部署和使用
前言: postgresql数据库只用自身的一些配置是无法做到最优的优化的,需要通过一些外置插件(中间件)来提高服务器的整体性能,通俗的说就是数据库仅仅依靠自身是无法达到性能最优的,很多时候需要更改数据库的…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)
+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...
从零手写Java版本的LSM Tree (一):LSM Tree 概述
🔥 推荐一个高质量的Java LSM Tree开源项目! https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree,专为高并发写入场景设计。 核心亮点: ⚡ 极致性能:写入速度超…...
Axure零基础跟我学:展开与收回
亲爱的小伙伴,如有帮助请订阅专栏!跟着老师每课一练,系统学习Axure交互设计课程! Axure产品经理精品视频课https://edu.csdn.net/course/detail/40420 课程主题:Axure菜单展开与收回 课程视频:...
02-性能方案设计
需求分析与测试设计 根据具体的性能测试需求,确定测试类型,以及压测的模块(web/mysql/redis/系统整体)前期要与相关人员充分沟通,初步确定压测方案及具体的性能指标QA完成性能测试设计后,需产出测试方案文档发送邮件到项目组&…...
