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

我的JAVA-Web基础(1)

1.HTML

2.css

CSS(层叠样式表)提供了多种选择器来定位HTML文档中的元素,以便可以应用样式。以下是三种常用的选择器简述:

  1. ID 选择器

    • ID选择器使用HTML元素的id属性来定位单个元素。每个页面中id应该是唯一的,因此一个ID选择器只会匹配一个元素。
    • 语法:在CSS中,ID选择器以#符号开头,后跟ID名称,不包含任何空格。
    • 示例:如果有一个<div>元素的id="header",那么对应的CSS规则将写作#header { /* 样式规则 */ }
  2. 类选择器

    • 类选择器用于选择所有具有特定class属性值的元素。与ID不同,类可以在同一个页面中多次使用,并且一个元素也可以拥有多个类。
    • 语法:类选择器以.符号开头,后跟类名,同样不包含空格。
    • 示例:如果有一些元素的class="highlight",则可以通过.highlight { /* 样式规则 */ }来为它们应用样式。
  3. 标签选择器(也称为类型选择器)

    • 标签选择器是基于HTML标签名称来选择元素的。它会匹配文档中所有的该类型的元素。
    • 语法:直接使用HTML标签名称作为选择器,不需要前缀符号。
    • 示例:要为所有的<p>段落元素定义样式,可以直接写p { /* 样式规则 */ }

3.Javascript

JavaScript 是一种广泛使用的编程语言,尤其在网页和网络应用程序中。以下是关于 JavaScript 的基本语法的简述,包括变量定义、数据类型和流程控制。

变量定义

JavaScript 支持三种声明变量的方式:

  1. var:这是最早的声明变量的方式,在 ES6 之前是唯一的声明方式。var 声明的变量具有函数作用域或全局作用域,并且存在变量提升(hoisting)现象。

    var x = 10;
  2. let:引入于 ES6,let 声明的变量具有块级作用域(即在 {} 内),并且不会被提升到其所在的代码块顶部。

    let y = 20;
  3. const:同样引入于 ES6,用于声明常量,即一旦赋值后不能更改绑定的值。const 也具有块级作用域。需要注意的是,如果 const 绑定的是一个对象或数组,那么虽然不能改变该引用,但可以修改对象内部的属性或数组中的元素。

    const z = 30;

数据类型

JavaScript 是一种动态类型语言,支持多种数据类型:

  1. 原始类型(Primitive Types)

    • Number:表示整数和浮点数,例如 42 或 3.14
    • String:表示文本,用单引号或双引号括起来,例如 'Hello' 或 "World"
    • Boolean:表示逻辑值,只有两个值 true 和 false
    • Null:表示空值或不存在的对象,只有一个值 null
    • Undefined:表示未定义的值,当变量被声明但未赋值时,它的默认值是 undefined
    • Symbol(ES6 引入):表示独一无二的标识符。
    • BigInt(ES2020 引入):表示任意精度的整数。
  2. 复合类型(Complex Types)

    • Object:用于存储键值对的数据集合,可以是普通的对象、数组、日期等。
    • Array:特殊的对象,用于存储有序的数据列表。
    • Function:也是对象,表示一段可执行的代码。

流程控制

JavaScript 提供了多种流程控制结构来控制程序的执行顺序:

  1. 条件语句

    • if...else:根据条件的真假执行不同的代码块。
      if (condition) {// 当 condition 为 true 时执行的代码
      } else {// 当 condition 为 false 时执行的代码
      }
  2. 循环语句

    • for:基于初始值、条件和增量/减量重复执行代码块。
      for (let i = 0; i < 5; i++) {// 执行的代码
      }
    • while:当指定条件为真时,重复执行代码块。
      while (condition) {// 执行的代码
      }
  3. 跳转语句

    • break:立即退出最内层的循环或 switch 语句。
    • continue:跳过当前循环的剩余部分,并开始下一次循环迭代。
    • return:从函数中返回一个值,并结束函数的执行。

JavaScript 中的 Array(数组)

定义和创建数组:

  1. 直接量语法:使用方括号 [] 来定义一个数组,元素之间用逗号分隔。

    let fruits = ['apple', 'banana', 'cherry'];
  2. 构造函数:使用 Array 构造函数来创建一个新的数组。可以传入一个参数作为数组的长度,或者传入多个参数作为数组的元素。

    // 创建一个空数组
    let emptyArray = new Array();// 创建一个包含3个元素的数组
    let numbers = new Array(1, 2, 3);// 创建一个长度为5的空数组
    let lengthArray = new Array(5);

数组的方法和属性:

  • 访问元素:通过索引访问数组中的元素,索引从0开始。

    console.log(fruits[0]); // 输出: "apple"
  • 修改元素:同样使用索引来修改数组中的元素。

    fruits[1] = 'blueberry';
  • 添加/移除元素

    • push():在数组末尾添加一个或多个元素,并返回新的长度。
    • pop():移除数组最后一个元素,并返回该元素。
    • shift():移除数组第一个元素,并返回该元素。
    • unshift():在数组开头添加一个或多个元素,并返回新的长度。
    • splice():可以用来添加或移除元素,非常灵活。
  • 遍历数组

    • forEach():对数组的每个元素执行一次提供的函数。
    • for...of:遍历数组的值。
    • map():创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后的返回值。
    • filter():创建一个新数组,其中包含所有通过测试的元素。
    • reduce():对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。
  • 查找元素

    • indexOf():返回给定元素在数组中第一次出现的位置,如果不存在则返回-1。
    • find():返回数组中满足提供的测试函数的第一个元素的值。
    • findIndex():返回数组中满足提供的测试函数的第一个元素的索引。
  • 其他方法

    • slice():返回一个浅拷贝的新数组对象,这个数组是从开始到结束(不包括结束)选择的原数组的一个部分。
    • concat():用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
    • join():将数组的所有元素连接成一个字符串并返回。

JavaScript 中的 String(字符串)

定义和创建字符串:

  1. 直接量语法:使用单引号 '、双引号 " 或反引号(模板字符串)` 来定义字符串。

    let greeting = 'Hello, world!';
    let message = "Welcome to JavaScript.";
    let multiline = `This is a string
    that spans multiple lines.`;
  2. 构造函数:使用 String 构造函数来创建一个新的字符串对象。

    let stringObject = new String('Another string');

字符串的方法和属性:

  • 访问字符:可以通过索引访问字符串中的字符,或者使用 charAt() 方法。

    console.log(greeting[0]); // 输出: "H"
    console.log(greeting.charAt(0)); // 输出: "H"
  • 获取长度:使用 length 属性来获取字符串的长度。

    console.log(greeting.length); // 输出: 13
  • 查找子串

    • indexOf() 和 lastIndexOf():分别返回指定值首次和最后一次出现的索引,如果找不到则返回 -1。
    • includes():检查字符串是否包含指定的子字符串,返回布尔值。
    • startsWith() 和 endsWith():分别检查字符串是否以指定的子字符串开头或结尾,返回布尔值。
  • 提取子串

    • slice():提取字符串的一部分,并返回新的字符串。
    • substring() 和 substr():也用于提取字符串,但 substring() 使用起始和结束索引,而 substr() 使用起始索引和要提取的字符数。
  • 替换内容

    • replace():用一些文本替换与指定的正则表达式匹配的子串。
  • 转换大小写

    • toLowerCase():将整个字符串转换为小写。
    • toUpperCase():将整个字符串转换为大写。
  • 修剪空白

    • trim():去除字符串两端的空白字符。
  • 拼接字符串

    • concat():用于连接两个或更多的字符串,并返回结果字符串。
  • 分割字符串

    • split():根据指定的分隔符将字符串分割成数组。
  • 模板字符串:允许嵌入表达式,使用 ${expression} 语法。

    let name = 'Alice';
    let age = 30;
    let info = `My name is ${name} and I am ${age} years old.`;

这些是 JavaScript 中处理数组和字符串的一些基本方式。随着 ES6+ 的引入,JavaScript 的字符串和数组功能变得更加丰富和强大。

4.JQuery

jQuery 是一个快速、小巧且功能丰富的库,它简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互等操作。以下是 jQuery 的简单使用指南,包括 DOM 对象的选取和事件的回调。

引入 jQuery

在使用 jQuery 之前,你需要确保已经在网页中引入了 jQuery 库。可以通过下载 jQuery 文件并本地引用,或者通过 CDN 引用:

<!-- 使用CDN引入 -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

DOM 对象的选取

jQuery 提供了一种类似 CSS 选择器的方式来选取 DOM 元素。以下是一些常见的选择器示例:

  1. 按 ID 选择元素

    $('#myElement') // 选取 id 为 "myElement" 的元素
  2. 按类选择元素

    $('.myClass') // 选取所有 class 为 "myClass" 的元素
  3. 按标签选择元素

    $('p') // 选取所有的 <p> 段落元素
  4. 组合选择器

    $('#container .item') // 选取 id 为 "container" 下所有 class 为 "item" 的元素
  5. 层级选择器

    • 子元素选择器:$('ul > li') 选取 <ul> 直接子元素中的所有 <li>
    • 后代选择器:$('ul li') 选取 <ul> 内部的所有 <li>,不论层次关系。
    • 相邻兄弟选择器:$('.class + p') 选取紧跟在 .class 元素之后的第一个 <p> 元素。
    • 通用兄弟选择器:$('.class ~ p') 选取 .class 元素之后的所有 <p> 元素。
  6. 属性选择器

    • $('input[name="username"]') 选取所有 name 属性等于 "username" 的 <input> 元素。
  7. 伪类选择器

    • $('a:first') 选取第一个 <a> 链接。
    • $('li:odd') 选取索引为奇数的 <li> 元素(从0开始计数)。

事件的回调

jQuery 简化了事件处理,提供了多种方法来绑定事件监听器到 DOM 元素上。下面是一些常用的事件处理方法:

  1. click():为指定的元素绑定点击事件。

    $('#myButton').click(function() {alert('Button was clicked!');
    });
  2. on():用于绑定多个事件类型,或者为动态添加的元素绑定事件。

    // 绑定 click 事件
    $('#myButton').on('click', function() {alert('Button was clicked!');
    });// 绑定多个事件
    $('#myElement').on({mouseenter: function() {$(this).css('background-color', 'yellow');},mouseleave: function() {$(this).css('background-color', '');}
    });// 为将来添加的元素绑定事件(委托事件)
    $(document).on('click', '.dynamicElement', function() {alert('Dynamic element was clicked!');
    });
  3. hover():为指定的元素绑定鼠标进入和离开事件。

    $('#myElement').hover(function() {$(this).css('background-color', 'yellow'); // 鼠标进入时},function() {$(this).css('background-color', ''); // 鼠标离开时}
    );
  4. submit():为表单元素绑定提交事件。

    $('form').submit(function(event) {event.preventDefault(); // 阻止表单默认提交行为alert('Form submitted!');
    });
  5. ready():确保代码在 DOM 完全加载后执行。

    $(document).ready(function() {// 这里的代码会在DOM完全加载后执行console.log('DOM is ready');
    });// 或者更简洁的方式
    $(function() {console.log('DOM is ready');
    });

问题一:DOM原生对象与jQuery对象如何相互转换?

  1. 从 DOM 原生对象到 jQuery 对象

    • 使用 $(element),其中 element 是一个 DOM 元素。
    var domElement = document.getElementById('myElement');
    var $jqElement = $(domElement);
  2. 从 jQuery 对象到 DOM 原生对象

    • 使用 .get() 方法或直接使用 [index] 访问。
    var $jqElement = $('#myElement');
    var domElement = $jqElement.get(0); // 或者 $jqElement[0]

问题二:jQuery如何获取页面中id为myDiv的div元素的最近一个兄弟元素?

  • 使用 .next() 方法来获取紧邻的下一个兄弟元素。
var nextSibling = $('#myDiv').next();

问题三:jQuery中设置DOM节点属性的方法有哪些?

  1. .data():用于存储和检索自定义数据。

    $('#myElement').data('user-id', 123); // 存储数据
    var userId = $('#myElement').data('user-id'); // 获取数据

问题四:jQuery遍历元素的方式有哪些?

  1. .each():遍历每个匹配的元素,并执行一个函数。

    $('li').each(function(index, element) {console.log(index, element);
    });

5.HTTP

6.Servlet

Servlet的基本介绍

Servlet的创建

Servlet的路径配置

注解

 通过配置注解为相应的java类设置不同的形态

WebServlet的注解参数

 

 Servlet的生命周期

 

多线程单实例

HttpServletRequest,HttpServletResponse

获取请求参数 

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/example")
public class ExampleServlet extends HttpServlet {private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 设置响应内容类型response.setContentType("text/plain");response.setCharacterEncoding("UTF-8");// 获取参数String username = request.getParameter("username");String password = request.getParameter("password");// 写入响应内容response.getWriter().println("GET Request - Username: " + (username != null ? username : "Not provided"));response.getWriter().println("GET Request - Password: " + (password != null ? "Provided" : "Not provided"));}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 设置响应内容类型response.setContentType("text/plain");response.setCharacterEncoding("UTF-8");// 获取参数String username = request.getParameter("username");String password = request.getParameter("password");// 写入响应内容response.getWriter().println("POST Request - Username: " + (username != null ? username : "Not provided"));response.getWriter().println("POST Request - Password: " + (password != null ? "Provided" : "Not provided"));// 简单的登录验证if ("admin".equals(username) && "password".equals(password)) {response.getWriter().println("Login successful!");} else {response.getWriter().println("Invalid username or password.");}}
}

 

转发与重定向 

 

ServletConfig,ServletContent

ServletConfig

 在init()的时候传给Servlet,该Servlet在之后可以通过ServletConfig对象获取对应的Config

 

ServletContext

JDBC

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;public class SimpleJDBCExample {public static void main(String[] args) {// 加载驱动程序(对于现代JDBC驱动通常不需要显式加载)Class.forName("com.mysql.cj.jdbc.Driver");// 连接数据库Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");// 创建Statement对象Statement statement = connection.createStatement();// 执行查询ResultSet resultSet = statement.executeQuery("SELECT * FROM mytable");// 处理结果集while (resultSet.next()) {int id = resultSet.getInt("id");String name = resultSet.getString("name");System.out.println("ID: " + id + ", Name: " + name);}// 关闭资源resultSet.close();statement.close();connection.close();}
}

相关文章:

我的JAVA-Web基础(1)

1.HTML 2.css CSS&#xff08;层叠样式表&#xff09;提供了多种选择器来定位HTML文档中的元素&#xff0c;以便可以应用样式。以下是三种常用的选择器简述&#xff1a; ID 选择器&#xff1a; ID选择器使用HTML元素的id属性来定位单个元素。每个页面中id应该是唯一的&#xf…...

【Leetcode 热题 100】207. 课程表

问题背景 你这个学期必须选修 n u m C o u r s e s numCourses numCourses 门课程&#xff0c;记为 0 0 0 到 n u m C o u r s e s − 1 numCourses - 1 numCourses−1。 在选修某些课程之前需要一些先修课程。 先修课程按数组 p r e r e q u i s i t e s prerequisites p…...

从CreateDialogIndirectParam起---我与大模型对话

前言&#xff1a; 对当前的大模型来说&#xff0c;一切皆程序&#xff0c;皆标准。只能按照推定的线路行走&#xff0c;就像机器人走进死胡同&#xff0c;不停的踏步也不回头。除非人为去干预它。其实我提出的这个问题前是因为我不清楚了解一部分WinAPI有着严格的检查机制和自毁…...

重温设计模式--建造者模式

文章目录 建造者模式&#xff08;Builder Pattern&#xff09;概述建造者模式UML图作用&#xff1a;建造者模式的结构产品&#xff08;Product&#xff09;&#xff1a;抽象建造者&#xff08;Builder&#xff09;&#xff1a;具体建造者&#xff08;Concrete Builder&#xff…...

CSS(五):定位

目录 相对定位 绝对定位 固定定位 在 CSS 中&#xff0c;position 属性用于控制元素的定位方式&#xff0c;使我们可以精确地控制元素在页面上的位置。定位分为相对定位、绝对定位、和固定定位 相对定位 相对定位&#xff1a;position: relative; 相对定位意味着元素的位置…...

JSON 系列之2:JSON简单查询

本文为Oracle数据库JSON学习系列的第2篇&#xff0c;讲述如何对存储在数据库中的JSON文档进行简单的查询。 创建测试表&#xff0c;插入2条数据&#xff1a; DROP TABLE colortab PURGE;CREATE TABLE colortab (id NUMBER,color VARCHAR2(4000),CONSTRAINT ensure_json CH…...

SQL 简单查询

目录 一、投影查询 1、指定特定列查询 2、修改返回列名查询 3、计算值查询 二、选择查询 1、使用关系表达式 2、使用逻辑表达式 3、使用 BETWEEN关键字 4、使用 IN关键字 5、使用 LIKE关键字 6、使用 IS NULL/ NOT NULL关键字 7、符合条件查询 三、聚合函数查询 一…...

YOLOv9-0.1部分代码阅读笔记-metrics.py

metrics.py utils\metrics.py 目录 metrics.py 1.所需的库和模块 2.def fitness(x): 3.def smooth(y, f0.05): 4.def ap_per_class(tp, conf, pred_cls, target_cls, plotFalse, save_dir., names(), eps1e-16, prefix""): 5.def compute_ap(recall, prec…...

KaiOS 4.0 | DataCall and setupData implemention

相关文档 1、KaiOS 3.1 系统介绍 KaiOS 系统框架和应用结构(APP界面逻辑)文章浏览阅读842次,点赞17次,收藏5次。对于Java开发者而言,理解JS的逻辑调用是有点困难的。而KaiOS webapp开发又不同于现代的web开发,更像chrome浏览器内嵌模式。在这里梳理一下kaios平台web应用…...

nginx-rtmp服务器搭建

音视频服务器搭建 本文采用 nginx/1.18.0和nginx-rtmp-module模块源代码搭建RTMP流媒体服务器 流程 查看当前服务器的nginx版本下载nginx和nginx-rtmp-module源代码重新编译nginx&#xff0c;并进行相关配置&#xff08;nginx.conf、防火墙等&#xff09;客户端测试连接测试搭…...

[c++进阶(三)]单例模式及特殊类的设计

1.前言 在实际场景中,总会遇见一些特殊情况,比如设计一个类,只能在堆上开辟空间, 或者是设计一个类只能实例化一个对象。那么我们应该如何编写代码呢&#xff1f;本篇将会详细的介绍 本章重点&#xff1a; 本篇文章着重讲解如何设计一些特殊 的类,包括不能被拷贝,只能在栈/堆上…...

企业内训|高智能数据构建和多模态数据处理、Agent研发及AI测评技术内训-吉林省某汽车厂商

吉林省某汽车厂商为提升员工在AI大模型技术方面的知识和实践能力&#xff0c;举办本次为期8天的综合培训课程。本课程涵盖“高智能数据构建与智驾云多模态数据处理”、“AI Agent的研发”和“大模型测评”三大模块。通过系统梳理从非结构化数据的高效标注与融合&#xff0c;到L…...

009 Qt_显示类控件_QLCDNumber、ProgressBar、Calendar

文章目录 前言LCD NumberProgressBarCalendar Widget 小结 前言 本文将会向你介绍显示类控件中QLCDNumber显示数字、ProgressBar进度条、Calendar日历 LCD Number QLCDNumer 是⼀个专门用来显示数字的控件. 类似于 “老式计算器” 的效果. 属性说明intValueQLCDNumber 显示…...

--spring.profiles.active=prod

rootproduct-qualification:~# ps -ef | grep java root 5110 1 3 16:57 ? 00:00:54 java -jar productQualification.jar --spring.profiles.activeprod root 6476 5797 0 17:26 pts/0 00:00:00 grep --colorauto java好的&#xff0c;你使用 ps …...

深入解析JVM中对象的创建过程

1. 引言 对象是面向对象编程的核心概念之一&#xff0c;它们封装了数据和行为&#xff0c;构成了应用程序的基本构建块。然而&#xff0c;在Java语言中&#xff0c;每当使用new关键字或其他方式创建一个新对象时&#xff0c;背后发生了什么&#xff1f;这个问题的答案隐藏在JV…...

使用开源在线聊天工具Fiora轻松搭建个性化聊天平台在线交流

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;人工智能教程 文章目录 前言1.关于Fiora2.安装Docker3.本地部署Fiora4.使用Fiora5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定Uptime …...

ffmpeg之显示一个yuv照片

显示YUV图片的步骤 1.初始化SDL库 目的&#xff1a;确保SDL库正确初始化&#xff0c;以便可以使用其窗口、渲染和事件处理功能。操作&#xff1a;调用 SDL_Init(SDL_INIT_VIDEO) 来初始化SDL的视频子系统。 2.创建窗口用于显示YUV图像&#xff1a; 目的&#xff1a;创建一个…...

MySQL中Performance Schema库的详解(下)

昨天说了关于SQL语句相关的&#xff0c;今天来说说性能相关的&#xff0c;如果没有看过上篇请点传送门https://blog.csdn.net/2301_80479959/article/details/144693574?fromshareblogdetail&sharetypeblogdetail&sharerId144693574&sharereferPC&sharesource…...

【Rust自学】7.1. Package、Crate和定义Module

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 7.1.1. Rust的代码组织 代码组织主要包括&#xff1a; 那些细节可以对外暴露&#xff0c;而哪些细节是私有的在作用域内哪些名称有效… …...

【Git】-- 版本说明

Alpha&#xff1a;是内部测试版,一般不向外部发布,会有很多 Bug .一般只有测试人员使用。Beta&#xff1a;也是测试版&#xff0c;这个阶段的版本会一直加入新的功能。在 Alpha 版之后推出。RC&#xff1a;(Release Candidate) 顾名思义么 ! 用在软件上就是候选版本。系统平台…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

基于鸿蒙(HarmonyOS5)的打车小程序

1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...

嵌入式面试常问问题

以下内容面向嵌入式/系统方向的初学者与面试备考者,全面梳理了以下几大板块,并在每个板块末尾列出常见的面试问答思路,帮助你既能夯实基础,又能应对面试挑战。 一、TCP/IP 协议 1.1 TCP/IP 五层模型概述 链路层(Link Layer) 包括网卡驱动、以太网、Wi‑Fi、PPP 等。负责…...