编程基础篇
什么是编程?
原文地址 :样式不太熟悉,有点单一,原文地址
一千个人眼中有一千个哈姆雷特,以下是我眼中的编程:
A每天出门需要关一下空调,在家喜欢室内温度在 20°左右,6 点左右会打开灯。
那么换成编程语言应该怎么说呢?
如果 : 【出门】 我需要关闭空调
如果 : 【在家】空调温度 = 20°
如果 :【时间 == 18:00】 打开灯
编程,是对现实生活中语言、动作的抽取。不通过汉语,英语……表达。用计算机看得懂的语言说,那么计算机能看懂什么语言?看刚刚的例子 : 如果……否则,刚好面对计算机的 0……1。
结论 : 编程是将生活中的事件换一个角度来说,换成:如果……就,否则……就
if (time == 18:00 && 回家): 打开客厅的灯光
if (出门) : 关闭空调
if (温度 > 20): 调低空调 ……
编程,只是将我们日常生活中的事物,用语言表达出来,再转为机器看得懂的语言。
只有 true 和 false 么
若只有 true 和 false,那么这么多年的计算机白发展了。
A : 这个螺丝要重复打 1000 个,这张试卷我要复印 100 份
共同点 : 重复,循环。如果说 true/false 是计算机的由来,哪循环就是计算机发展起来的原因。
没有人喜欢重复,如果有那就当我没说!
转为编程语言 :
重复(次数:1000次){做什么 : 打螺丝
}
编程,就这么朴实无华
正题 : 什么是 web 开发
web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面
当今 web 主流开发方案 :
前后端分离式开发
前后端分离开发是一种现代化的Web应用开发模式,它将Web应用程序的前端(客户端)和后端(服务器端)
前后端分离让前端和后端可以独立开发、测试和部署。这意味着一个团队可以在不影响另一个团队的情况下推进工作,从而加快了整体项目的进度。简单来说:流水线作业
什么是前端
前端指的是用户可以直接看到和交互的部分,也就是Web应用的“客户端”。即浏览器中看见的所有页面,都可以称之为前端。页面的丑与美由前端决定
什么是后端
前端不是以及展示页面了吗,为什么还需要后端?
看主页的头条,热点是一成不变的吗?如果每次变都要对整个页面重新修改,那程序员得累死。
看前端页面的结构,每次打开页面布局基本上是不变的【别杠】,但是数据是不同的,因此数据从后端来,前端只管布局。
举例:前端【A】 ,后端【B】
实现逻辑 :
A ->B 说:我画好了,你来填提一下诗句【数据】
B ->A 说:OK,我看一下今天放什么数据合适,我检测到今天是重阳节,我去拿一首重阳节的诗
B ->A 说:诗给你了,你展示给客户吧
总结 :
前端提前将数据存放的位置预留好,当用户打开页面时,前端会向后端发起请求,拿到数据后渲染到页面。
后端需要考虑,今天是那一天,天气怎么样,如果 ……就,否则……就,提供给前端数据。
拿东西 :数据库
刚提到拿东西,顺着说一下数据库。换个名字就懂了,【我的电脑】文件管理系统
数据库只有四种操作 : 添加【新建】、删除、修改、查找
数据就是我们存放数据的地方,要用的时候去操作一下。
前端 -> 后端,怎么说话 :http
人与人之间的交流通过声音传播,而计算机本身没有语言系统,它仅仅知道 0/1。
超文本传输协议(HypertextTransfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。
一个文本汉字等于多少二进制? 一个文本汉字等于16位二进制 ,因此:http : 超文本协议
总结 :
前端 <-> 后端 : 交流通过 http 协议【以及其他协议】交流
后端拿东西,存东西,放到数据中
编程语言 :Java
Java是一种广泛使用的编程语言,由Sun Microsystems(后被Oracle公司收购)于1995年发布。它以其“一次编写,到处运行”的理念而闻名,这意味着用Java编写的代码可以在任何支持Java虚拟机(JVM)的平台上运行,无需重新编译。这种跨平台特性使得Java成为开发各种应用程序的理想选择,包括桌面应用、Web应用、移动应用(特别是Android应用)、企业级解决方案等。
Java 是一种面向对象的强类型语言
什么是强类型语言?
在小学我们学会了:整数、小数、正数、负数、汉字、词语、成语。
在 Java 中,依旧定义了整数、小数、字符【一个字】、字符串【多个字】……
在 Python 中,没有严格定义,都是字
Java : int x = 0; double y = 1.0
Python : i = 0 ; y = 1.0
Java : int [ 整形数据 ] i = 0
Python : i = 0 [0 是整数、这是整形 ]
强弱类型对比:
Java 从定义的时候就表清楚,这给数只能是某个类型。
Python 中没有明确的看出这是什么类型,虽然底层也会区分
面向对象编程(OOP)
封装、继承、多态
对象 即 封装
从开篇编程是什么来回答,什么是面向对象。
A每天出门需要关一下空调,在家喜欢室内温度在 20°左右,6 点左右会打开灯。
提取这件事中的关键词 : 关空调、温度、时间、灯
我将这四个关键词提取,并将其放到一个盒子中,我起名为《生活》 将会得到 :
《生活》{Boolean 空调 //空调这里的属性只有开关double 温度 //温度有小数Data 时间 //时间一种数据类型Boolean 灯 //开关等 true/false
}
《生活》这个盒子就是对象,我把数据放到盒子中,这就是封装,对象中的对象就是属性。
你也还可以这样封装,即:万物皆对象
《开关》{Data 时间Boolean 空调Boolean 灯
}
《其他》{Data 时间Double 温度
}
封装:指将数据和操作这些数据的方法捆绑在一起的过程。外部代码只能通过公开的方法访问对象内部的数据,这样既保护了数据的安全性,也降低了代码间的耦合度。
继承 : 凡有的,都给他
继承:允许创建新的类基于已存在的类,新类不仅拥有原类的所有功能,还可以添加自己的特性和修改现有功能。
马太效应 : 凡有的,都给他;没有的、连他所有、也要夺取
在《开关》《其他》对象中都有一个属性<时间>,那就把<时间>给他,再继承他《父对象》
《父对象》{Data 时间}
《开关》继承《父对象》{Boolean 空调Boolean 灯
}
《其他》继承《父对象》{Double 温度
}
多态 : 名字一样的对象,功能也一样
多态:同一个接口或基类可以用多种不同的形式表现出来。多态性让程序员能够编写更加通用的代码,提高复用率。
A 说 :我要用圆珠笔写下“hello world”
圆珠笔:有红黄蓝绿……,0.38.0.5……
不管他有多少样式,多么花里胡哨,它是笔,所以它是用来写字的
相关文章:

编程基础篇
什么是编程? 原文地址 :样式不太熟悉,有点单一,原文地址 一千个人眼中有一千个哈姆雷特,以下是我眼中的编程: A每天出门需要关一下空调,在家喜欢室内温度在 20左右,6 点左右会打开灯…...
GPT视角下,如何在密码学研究中找到属于你的方向?
(本文所有内容由GPT生成)在密码学领域发现关键性的研究方向并成为一位优秀的密码学研究员,需要结合对领域趋势的洞察、扎实的理论基础以及创新的研究思维。以下是具体步骤和方法: 一、发现关键性研究方向 关注领域前沿动态 顶级会…...

【经典】星空主题的注册界面HTML,CSS,JS
目录 界面展示 完整代码 说明: 这是一个简单的星空主题的注册界面,使用了 HTML 和 CSS 来实现一个背景为星空效果的注册页面。 界面展示 完整代码 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8&…...

Linux学习——4_WEB服务器的部署及优化
WEB服务器的部署及优化 用户常用关于web信息 什么是www www是world wide web的缩写,即万维网,也就是全球信息广播 通常说的上网就是使用www来查询用户所需要的信息。 www可以结合文字、图形、影像以及声音等多媒体,超链接的方式将信息以…...
《Vue 组件化开发:构建可复用的模块》
一、Vue 组件化开发概述 组件化是 Vue.js 的核心概念之一,它允许将界面拆分成独立、可复用的组件,使得开发大型应用变得更加简单和高效。 组件的定义是实现应用中局部功能代码和资源的集合。Vue.js 的组件化用于将 UI 页面分割为若干组件进行组合和嵌套…...
贪心算法理论
系列博客目录 文章目录 系列博客目录贪心算法 (Greedy Algorithm)贪心算法的特点贪心算法的适用条件常见的贪心算法问题贪心算法的步骤贪心算法示例:活动选择问题贪心算法的优缺点 贪心算法 (Greedy Algorithm) 贪心算法是一种在每一步选择中都采取当前状态下最优的…...

JVM之Synthetic
Synthetic是人造,合成的意思,在虚拟机很多地方使用ACC_SYNTHETIC表示编译器自动生成的,区别于我们自己写的程序代码。这样说可能比较模糊,我们举个例子:我们创建一个内部类,如下 public class TestInnerCl…...

HCIE IGP双栈综合实验
实验拓扑 实验需求及解法 本实验模拟ISP网络结构,R1/2组成国家骨干网,R3/4组成省级网络,R5/6/7组成数据中 心网络。 配置所有ipv4地址,请自行测试直连。 R1 sysname R1 interface GigabitEthernet0/0/0ip address 12.1.1.1 255.…...

【k8s】监控metrics-server
metrics-server介绍 Metrics Server是一个集群范围的资源使用情况的数据聚合器。作为一个应用部署在集群中。Metric server从每个节点上KubeletAPI收集指标,通过Kubernetes聚合器注册在Master APIServer中。为集群提供Node、Pods资源利用率指标。 就像Linux 系统一样…...

第六届国际科技创新学术交流会暨管理科学信息化与经济创新发展(MSIEID 2024)
重要信息 大会官网:msieid2024.iaecst.org (点击了解大会,参会等内容) 大会时间:2024年12月6-8日 大会地点:中国-广州 大会简介 随着全球化和信息化的不断深入,管理科学、信息化和经济发展…...
将面具贴到人脸上的过程
使用OpenCV进行人脸面具贴合和变形以适应人脸的3D透视角度,通常需要以下步骤: 人脸检测:首先需要检测图像中的人脸位置。特征点检测:在检测到的人脸区域中,找到关键特征点,如眼睛、鼻子、嘴巴等。透视变换…...

【Maven】Nexus私服
6. Maven的私服 6.1 什么是私服 Maven 私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,用来代理位于外部的远程仓库(中央仓库、其他远程公共仓库)。一些无法从外部仓库下载到的构件,如项目组其他人员开发的…...

AI高中数学教学视频生成技术:利用通义千问、MathGPT、视频多模态大模型,语音大模型,将4个模型融合 ,生成高中数学教学视频,并给出实施方案。
大家好,我是微学AI,今天给大家介绍一下AI高中数学教学视频生成技术:利用通义千问、MathGPT、视频多模态大模型,语音大模型,将4个模型融合 ,生成高中数学教学视频,并给出实施方案。本文利用专家模…...

探索温度计的数字化设计:一个可视化温度数据的Web图表案例
随着科技的发展,数据可视化在各个领域中的应用越来越广泛。在温度监控和展示方面,传统的温度计已逐渐被数字化温度计所取代。本文将介绍一个使用Echarts库创建的温度计Web图表,该图表通过动态数据可视化展示了温度值,并通过渐变色…...
windows电脑上安装树莓派操作系统
在Windows电脑上安装树莓派通常涉及以下几个步骤:准备安装工具、下载树莓派系统镜像、烧录系统到SD卡、配置树莓派以及远程连接(如果需要无显示器操作)。以下是详细的步骤说明: 一、准备安装工具 安装树莓派官方烧录工具: 下载并安装Raspberry Pi Imager。这是一个官方的…...

交换机四大镜像(端口镜像、流镜像、VLAN镜像、MAC镜像)应用场景、配置实例及区别对比
在网络管理中,端口镜像、流镜像、VLAN镜像和MAC镜像都是用于监控和分析网络流量的重要技术。 端口镜像(Port Mirroring) 定义:端口镜像是将一个或多个源端口的流量复制到一个目标端口,以便于网络管理员能够监控和分析…...

我不是挂王-用python实现燕双鹰小游戏
一.准备工作 1.前言提要 作为程序员在浩瀚的数字宇宙中,常常感觉现实世界是一台精密运作的虚拟机,其底层的物理逻辑如同铁律般难以撼动。然而我们拥有在虚拟世界中自由驰骋、创造无限可能的独特力量。突发奇我想用Python写出燕双鹰的小游戏,这样想想就很…...

Java:反射、注解
文章目录 1. 反射1-1. 获取Class对象的三种方式1-2. 获取类的构造器、实例化对象1-3. 获取类的成员变量1-4. 获取类的成员方法 2. 注解2-1. 元注解2-2. 解析注解 1. 反射 反射:加载类,并允许以编程的方式解剖类中的各种成员变量、方法、构造器。 1-1. …...

Java 通过枚举类减少if else
目录 一. 案例1二. 案例2三. 案例3四. 案例4 枚举类聚合封装消息 一. 案例1 涉及到EnumMap的实际使用 ⏹定义一个枚举类,用来表示日本的各种支付方法对应的code import com.fasterxml.jackson.annotation.JsonFormat;// 让jackson将前台的数据封装数据到枚举类中 J…...
单链表---移除链表元素
对于无头单向不循环链表,给出头结点head与数值val,删除链表中数据值val的所有结点 #define ListNodeDataType val struct ListNode { struct ListNode* psll;ListNodeDataType val; } 方法一---遍历删除 移除所有数值为val的链表结点,…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...

Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...