当前位置: 首页 > news >正文

学习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初阶的第一堂课

学习金字塔 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>当前求和为&#xff1a;{{$store.state.sum}}</h1><h3>当前求和的10倍为&#xff1a;{{$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&#xff0c;欢迎互相交流. 此次介绍的内容都是针对于 Linux 操作系统上的开发过程. 1.1 安装开发工具 VSCode: 自行下载安装, 然后安装插件 Cmake:在 Ubuntu 系统上, 可以采用 ap…...

【JAVA-Day18】用大白话讲解 Java 中的内存机制

标题 用大白话讲解 Java 中的内存机制摘要引言一、Java 内存机制1.1 栈内存1.2 堆内存 二、Java 如何管理内存三、合理管理内存的必要性与其他方式相比优势劣势建议四、总结参考资料 博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客&#x1f466;&#x1f3fb; 《…...

[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计算 对数据进行统计分析&#xff0c;SQL是目前最为方便的编程工具。 大数据体系中充斥着非常多的统计分析场景 所以&#xff0c;使用SQL去处理数据&#xff0c;在大数据中也是有极大的需求的。 MapReduce支持程序开发&#xff08;Java…...

postgresql|数据库|centos7下基于postgresql-12的主从复制的pgpool-4.4的部署和使用

前言&#xff1a; postgresql数据库只用自身的一些配置是无法做到最优的优化的&#xff0c;需要通过一些外置插件&#xff08;中间件&#xff09;来提高服务器的整体性能&#xff0c;通俗的说就是数据库仅仅依靠自身是无法达到性能最优的&#xff0c;很多时候需要更改数据库的…...

python之pyQt5实例:PyQtGraph的应用

1、显示逻辑 "MainWindow": "这是主窗口&#xff0c;所有的其他组件都会被添加到这个窗口上。", "centralwidget": "这是主窗口的中心部件&#xff0c;它包含了其他的部件。","pushButton": "这是一个按钮&#xff0c…...

Java——键盘输入的几种常见方式

Java——键盘输入的几种常见方式 文章目录&#xff1a; Java——键盘输入的几种常见方式一、IO流二、Scanner类三 、BufferedReader写入 一、IO流 在Java的输入中&#xff0c;是以输入流的形式进入程序&#xff0c;因此无法直接指定输入的类型&#xff0c;仅能读取键盘上的内容…...

Shell脚本中文英文多语言国际化和命令行批处理(bash sh cmd bat)中定义函数的简单写法

文章目录 命令行脚本参考 - bat命令行脚本参考 - bash值得学习的知识点1. 识别终端使用的语言2. 函数的编写3. 获取用户的输入4. bat文件老是乱码怎么办 有时候为了方便别人使用&#xff0c;我们会选择去编写各种各样的命令行脚本&#xff1a;给Windows用户编写.bat cmd批处理脚…...

stringBuffer.append(analyze);使用这个拼接时候如何在字符串参数字符串参数整数参数字符串数组参数内容之间添加空格

stringBuffer.append(analyze);使用这个拼接时候如何在字符串参数字符串参数整数参数字符串数组参数内容之间添加空格&#xff1f; 在添加参数到 StringBuffer 时&#xff0c;你可以在每次添加参数之后都添加一个空格&#xff0c;如下所示&#xff1a; StringBuffer stringBu…...

点云从入门到精通技术详解100篇-大范围田间场景 3D 点云语义分割研究(续)

目录 3.2 自制数据集展示 3.2.1 收集航拍图像 3.2.2 3D 点云重建 3.2.3 语义标签标注...

Mysql详解Explain索引优化最佳实践

目录 1 Explain工具介绍2 explain 两个变种3 explain中的列3.1 id列3.2 select_type列3.3 table列3.4. type列3.5 possible_keys列3.6 key列3.7 key_len列3.8 ref列3.9 rows列3.10 Extra列 4 索引最佳实践4.1.全值匹配4.2.最左前缀法则4.3.不在索引列上做任何操作&#xff08;计…...

STM32H7 Azure RTOS

STM32H7 是意法半导体&#xff08;STMicroelectronics&#xff09;推出的一款高性能微控制器系列&#xff0c;基于 Arm Cortex-M7 内核。它具有丰富的外设和高性能计算能力&#xff0c;适用于各种应用领域。 Azure RTOS&#xff08;原名 ThreadX&#xff09;是一款实时操作系统…...

基于LUT查找表方法的图像gamma校正算法FPGA实现,包括tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 将gamma2.2和gamma1/2.2的数据分别导入到matlab进行对比&#xff1a; 2.算法运行软件版本 matlab2022a 3.部分核心程序 timescale 1ns / 1ps //…...

Function模块

0 Preface/Foreword 1 数据结构 1.1 func_cb_t //task control block typedef struct {u8 sta; //cur working task numberu8 last; //lask task number #if BT_BACKSTAGE_ENu8 sta_break…...

Prometheus PromQL数据查询语言

PromQL 简介 PromQL&#xff08;Prometheus Query Language&#xff09;是 Prometheus 内置的数据查询语言。支持用户进行实时的数据查询及聚合操作。 Prometheus 基于指标名称&#xff08;metrics name&#xff09;以及附属的标签集&#xff08;labelset&#xff09;唯一定义一…...

网站建设时间影响因素/济南seo

为了更好地理解需求获取过程中用户描述的问题&#xff0c;可以采用创建模型的方式实现。这就是分析建模的过程。模型&#xff0c;就是为了理解事物所做出的一种抽象&#xff0c;是对事物无歧视义的书面描述。模型由一组图形符号组成这些符号的规则所组成。分析模型软件的分析模…...

wordpress全局阴影/怎样申请网站注册

前言&#xff1a;这篇文章对于工作多年的可能用处不大,但对于刚刚接触Java的同学肯定是有一些帮助,现在我总结我接触liunx后常见的一些命令 1&#xff1a;日志查询常用的命令 ll&#xff1a;查询目录下所有的文件 ls -lht&#xff1a;查询目录下所有文件的大小 cd&#xff1a;切…...

交城有做网站的吗/seo搜索引擎实训心得体会

SpringCloud中的OpenFeign的超时控制和日志增强 为什么要学这个&#xff1f;你不想面试的时候多装两个逼多拿两千块钱&#xff1f; 先回顾一下我们之前OpenFeign的基本使用SpringCloud中的OpenFeign以及与Feign的区别。 我们现在衍生一下&#xff0c;在实际生产环境中&#x…...

昆明做网站的公司哪家好/软文范例大全200字

2019独角兽企业重金招聘Python工程师标准>>> 1.缓存 查询数据时将查询结果存放到内存&#xff08;缓存区&#xff09;中。每次查询数据时&#xff0c;先判断缓存区中是否存在数据&#xff0c; 如果存在&#xff0c;就从缓存区中获取数据如果不存在&#xff0c;就从数…...

看24小时b站直播/网站推广软件

FLL智能交通任务FLL是学校今年新上的项目&#xff0c;FLL比赛是一个激发孩子解决问题、激发创意的平台。FLL机器人比赛是由机器人全自动的执行的&#xff0c;也就是说&#xff0c;机器人在执行任务时你不要去干扰它。但是大多数的队伍都要在比赛时去中断机器人&#xff0c;这样…...

网站建设简单个人主页/酒店如何进行网络营销

希望shell和一个程序都同时接收一个ctrl-c&#xff0c;最好的办法就是将它们设置到一个进程组当中&#xff0c;并且把这个进程组设置为终端上的前台进程组&#xff0c;如下所示&#xff0c;其中2774是该终端上bash进程的pid&#xff1a; void handler(int n) { printf(…...