- 0
- 0
- 约2.56千字
- 约 3页
- 2023-09-05 发布于上海
- 举报
JavaWeb做后端,数据库⽅⾯需要掌握到何种程度?
新⼿程序员通常会⾛⼊⼀个误区,就是认为学习了⼀门语⾔,就可以称为是某某语⾔⼯程师了。但事实上真的是这样吗?其实并⾮如
此。
今天我们就来聊⼀聊,Java开发⼯程师到底开发的是什么东西。准确点来说,Java后端到底在做什么?
⼤家都知道 Java是⼀门后端语⾔,后端指的就是服务端,服务端代码⼀般运⾏在服务器上,通常我们运⾏Java程序的服务器都是
Linux服务器。
这些服务器在互联⽹公司中⼀般放在⼀个叫做机房的地⽅⾥,于是像我们这类 Java程序员的代码⼀般也运⾏在这些机房⾥的服务器
中。
⽤⼤⽩话告诉你:Java后端到底是在做什么?
Java⾥有⼀个概念叫做虚拟机,你可以把它理解为⼀个安卓的模拟器,⽐如你在电脑上装了⼀个安卓模拟器,就可以通过它来运⾏安卓
应⽤程序,⽐如装个 APP,⼿机游戏什么的。
所以当你在电脑上安装了⼀个叫做 JDK的东西时,电脑⾥就有了 JRE也就是 Java运⾏环境,有了这个运⾏环境,你就可以运⾏ Java
应⽤程序了。
知道 Java程序如何运⾏在计算机上之后,我们再来讲⼀讲平时学的⼀些 Java基础知识,它们到底有什么⽤?
其实平时这⼀些 Java基础语法都仅仅是你写代码的⼀些基础知识,就相当于英语中的 26个字母,常见的有基本类型变量、for循环、if
else等等基本语法,掌握了这些基础知识之后,你就可以上⼿写⼀些很简单的代码了。
除此之外,Java还有⼀些⽐较特别的概念,⽐如⾯向对象的特性,其中有类、接⼝等概念。为什么 Java要引⼊这些东西呢,其实就是
想让使⽤者更好地进⾏设计、抽象和编程。
对于新⼿来说,你不需要理解得特别的深刻,因为这些东西只有你在你真正写代码之后才能逐步去理解。
⽤⼤⽩话告诉你:Java后端到底是在做什么?
说完基本知识之后,我想你也会好奇,Java⾥经常提到的⼀些集合类是⼲嘛的呢,因为在现实⽣活中有很多场景,需要⽤到集合类,⽐
如说⼀个⽤户名列表,你要怎么存呢?
你会⽤⼀个 List来做对不对,所以集合类的作⽤就是让你在编程中更好的存储数据。
事实上,集合类的概念最早是来源于数据结构的,因为计算机⾥有很多特殊的数据存储结构,⽐如⽂件树,⽐如链表和数组等结构,因
此计算机理论把这些存储数据的模型抽象成⼀些常见的结构,统称为数据结构。
那么,Java中的并发编程⼜是做什么的呢,Java中的多线程是为了更好地利⽤电脑中的CPU核⼼,通过并发编程,就可以提⾼程序并
发的效率。
但是并发编程的背后需要操作系统的⽀持,以及计算机硬件的⽀持,所以,如果你要完全地理解多线程,绝不仅仅是理解 Java⾥的
Thread或者是线程池就⾜够了,你还需要去理解操作系统,以及计算机组成原理。
⽤⼤⽩话告诉你:Java 后端到底是在做什么?
和并发编程类似,Java ⾥也有⽹络编程的概念,Java ⾥的⽹络编程和其他语⾔⼤同⼩异,其实也是基于 TCP/IP 协议实现的⼀套 API,
通过⽹络编程,你就可以在程序中把你想传输的数据传输到⽹络的另⼀端,有了⽹络编程和并发编程之后,Java 程序员的能量已经很⼤
了
讲完这⼏点之后接下来再谈谈,我们通常说的 Java 后端技术到底是什么,就拿⽀付宝来举例吧,曾经的⽀付宝⽤户数并不多,⼀台服
务器,⼀个数据库就可以⽀持所有的业务了。
当⽀付宝的⽤户越来越多的时候,⼀台服务器⽆法同时满⾜海量⽤户的需求,于是开始出现了多台服务器,多台服务器组成了⼀个集
群,⽤户可以通过负载均衡的⽅式访问这些服务器,每个⽤户可能会访问到不同的机器上,这样⼦就达到了分流的效果,服务器的压⼒
就会减⼩。
由于数据库需要保证数据的可靠性,万⼀某⼀台数据库挂了,并且没有备份的话,那么这个数据就⽆法访问了,这在⼤型系统中是不允
许出现的,于是乎,就有了数据库的主从部署。
但事实上,随着业务发展,数据库的压⼒也越来越⼤,主备部署并不能解决数据库访问性能的问题,于是乎我们需要进⾏分库分表,在
数据库主备的基础上,我们会把⼀个数据量很⼤的表拆成多个表,并且把数据库请求分流到不同的数据上,⽐如说100个分库,100个分
表,就相当于把⼀个数据表划分成10000个数据表。
此时⼜出现⼀个问题,如果⼀个数据库有多个备库,并且当主库挂掉的时候需要进⾏主从切换时,主备数据库之间的数据就可能发⽣不
⼀致,⽽这也是分布式理论研究的问题之⼀,因为⽐较复杂,我们这⾥就略过不讲。
⽤⼤⽩话告诉你:Java 后端到底是在做什么?
刚才说到了分布式技术,其实负载均衡、分库分表都是分布式技术的⼀种实现,如果你不想做分库分表,那还有什么办法能够减轻数据
库访
您可能关注的文档
- 高中化学高考章节重难点分析3144.pdf
- 九年历史 课题:抗美援朝 教学设计.pdf
- 57步进电机c语言控制程序,步进电机控制程序(c语言+51单片机).pdf
- 步进电机控制实验c语言程序,用AT89C51单片机控制步进电机的汇编源程序.pdf
- java-web分页操作实现(javaBean+Servlet+jsp).pdf
- 施工流水段的作业划分1848.pdf
- 机电设备管理台账.pdf
- 微积分第二版朱来义.pdf
- 恒温水箱设计 毕业设计开题报告.pdf
- 2022年日历打印版带周数.pdf
- 广西南宁2025-2026秋季期末八年级【语文】试卷(含答案).pdf
- 广西南宁2025-2026秋季期末高一化学试卷(含答案).pdf
- 广西南宁2025-2026秋季期末九年级数学试卷(含答案).pdf
- 广西南宁2025-2026秋季期末高一英语(含答案,无听力音频).pdf
- 广西南宁2025-2026秋季期末高一地理试卷(含答案).pdf
- 内科护理(中职):心包疾病病人的护理PPT教学课件.ppt
- 胆管结石的中医护理方法.ppt
- 内科护理(中职):心肌疾病病人的护理PPT教学课件.ppt
- 内科护理(中职):心律失常病人的护理PPT教学课件.ppt
- 嵌入式系统实践及工程应用—从基础到人工智能:具备AI算力的嵌入式系统开发PPT教学课件.pptx
原创力文档

文档评论(0)