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

0基础学前端 day4

大家好,欢迎来到无限大的频道。

今天继续带领大家开始0基础学前端。

一、 什么是Bootstrap框架?

Bootstrap是一个开源前端框架,于2011年由Twitter的开发团队开发并发布。其主要目的是简化开发过程,并使开发者能够轻松快速地构建响应式网站和应用程序。它提供了一系列的HTML、CSS和JavaScript组件,如网格系统、按钮、导航栏、表单等,帮助开发者创建一致且美观的用户界面。Bootstrap最大的优势在于其响应式设计,能够自动适应各种设备尺寸。此外,Bootstrap的丰富文档和活跃的社区使其成为初学者和专业开发者的热门选择。

著名的应用

众多网站和应用程序使用Bootstrap来构建其前端界面。其中一些著名的例子包括:

  • Twitter: 作为Bootstrap的发源地,Twitter为初始开发提供了很多资源。
  • LinkedIn: 职业社交平台LinkedIn利用Bootstrap确保其界面的可维护性和高效性。
  • Vogue: 著名时尚杂志Vogue的网站也使用了Bootstrap来提高用户体验。

这些企业利用Bootstrap来快速构建和迭代其产品,同时确保跨设备的用户体验一致性。

二、Bootstrap的重要和常用内容

1. 网格系统(Grid System)

Bootstrap的网格系统是其核心之一,它使用灵活的容器(container)来进行布局,通过行(row)和列(col)的组合构成。默认情况下,它基于12列的布局,允许你通过组合不同的列宽来创建不同的页面布局。网格系统通过响应式设计,确保布局在各种设备上都能良好显示。

  • 容器(Container): container类用于固定宽度的布局,而container-fluid用于全宽度布局。它们是每行的父元素。

    <div class="container"><!-- Content here -->
    </div>
    
  • 行(Row): row类用于水平排列列。每个row必须包含在container内。

    <div class="row"><div class="col">Column</div>
    </div>
    
  • 列(Columns): col-*类定义列的宽度。可以是动态(col)或固定比例(col-md-4)。

    <div class="col-md-4">Medium 4/12</div>
    <div class="col-md-8">Medium 8/12</div>
    

2. 排版(Typography)

Bootstrap提供了一整套一致的排版样式,包括标题、段落、文本格式化和对齐选项。默认字体使用"Helvetica Neue", Helvetica, Arial, sans-serif。

  • 标题和副标题: 使用<h1><h6>标签自带Bootstrap的样式。

  • 字体大小与颜色: 提供了一系列帮助类,如text-primarytext-secondary等,用于快速修改文本颜色。

    <h1 class="text-primary">Primary Heading</h1>
    <p class="lead">This is a lead paragraph.</p>
    

3. 组件(Components)

Bootstrap提供了丰富的UI组件,这些组件已经过精心设计、测试和调试,使得它们在各类项目中高度复用和便捷使用。

  • 按钮(Buttons): 多种样式可选,如btn-primary(蓝色),btn-secondary(灰色)等。

    <button type="button" class="btn btn-primary">Primary Button</button>
    
  • 导航栏(Navbar): 提供响应式、可定制的导航栏。

    <nav class="navbar navbar-expand-lg navbar-light bg-light"><a class="navbar-brand" href="#">Brand</a>
    </nav>
    
  • 模态框(Modal): 用于创建模态提示和对话框。

    <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal"> Open Modal</button>
    

4. JavaScript插件(JavaScript Plugins)

Bootstrap包含了一些JavaScript插件,用于增强UI的交互性。这些插件大多依赖于jQuery,因此需要在页面中引入jQuery。

  • 模态框(Modals): 提供对话框、多媒体查看器、lightbox等功能。

  • 轮播(Carousel): 用于创建响应式、自动循环的图片或内容滑块。

    <div id="carouselExample" class="carousel slide" data-ride="carousel"><!-- Carousel content here -->
    </div>
    

5. 表单(Forms)

Bootstrap提供了格式统一且美观的表单样式,包括输入框、选择框、单选按钮、复选框等,所有组件均有一致的间距和风格。

  • 表单控制(Form Control): 使用类如form-control来美化输入元素。

    <input type="text" class="form-control" placeholder="Enter text">
    
  • 表单布局: 支持水平表单和内联表单布局样式,为复杂的表单设计提供了良好的基础。

通过使用Bootstrap这一前端框架,可以大幅减少开发时间,提高代码可维护性,并确保在不同设备上的一致性。Bootstrap的灵活性和易用性使其成为初学者和经验丰富的开发者都青睐的选择。

自定义样式(Customizing Styles)

开发者可以通过覆盖Bootstrap的默认样式或者直接编辑其源代码来定制自己想要的风格。此外,Bootstrap 4开始引入的SCSS支持更是提升了其定制的灵活性。

使用Bootstrap优化代码实例

个人主页优化

首先引入Bootstrap的CSS文件:

<head><!-- Add Bootstrap CSS CDN link --><link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
</head>

然后,将代码中的结构修改以适应Bootstrap的类,如使用containerrowcol进行布局结构的调整。

<!DOCTYPE html>  
<html lang="zh-CN">  
<head>  <meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <title>我的个人主页</title>  <!-- 替换为国内可访问的Bootstrap CSS CDN -->  <link href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.2/dist/css/bootstrap.min.css" rel="stylesheet">  <link rel="stylesheet" href="styles.css">  
</head>  
<body>  <!-- Navbar -->  <nav class="navbar navbar-expand-lg navbar-dark bg-dark">  <a class="navbar-brand" href="#">个人主页</a>  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">  <span class="navbar-toggler-icon"></span>  </button>  <div class="collapse navbar-collapse" id="navbarNav">  <ul class="navbar-nav ml-auto">  <li class="nav-item active"><a class="nav-link" href="#">首页</a></li>  <li class="nav-item"><a class="nav-link" href="#bio">关于我</a></li>  <li class="nav-item"><a class="nav-link" href="#hobbies">兴趣</a></li>  <li class="nav-item"><a class="nav-link" href="#contact">联系</a></li>  </ul>  </div>  </nav>  <!-- Header -->  <header class="header bg-dark text-white text-center py-3">  <h1>欢迎来到我的个人主页</h1>  </header>  <!-- Main Content -->  <main class="content container mt-4">  <div class="row">  <!-- Bio Section -->  <section id="bio" class="col-lg-4 col-md-6 mb-4">  <div class="card shadow-sm">  <img src="https://wxdwuxd.oss-cn-beijing.aliyuncs.com/4027b724a62b206a73ba495e732af2b.jpg" class="card-img-top" alt="Profile Image">  <div class="card-body">  <h2 class="card-title">关于我</h2>  <p class="card-text">你好!我是一个前端开发的初学者,正在学习如何创建美观且有用的网页。</p>  </div>  </div>  </section>  <!-- Hobbies Section -->  <section id="hobbies" class="col-lg-4 col-md-6 mb-4">  <div class="card shadow-sm">  <div class="card-body">  <h2 class="card-title">爱好与兴趣</h2>  <ul class="list-group list-group-flush">  <li class="list-group-item">编程</li>  <li class="list-group-item">阅读</li>  <li class="list-group-item">旅行</li>  </ul>  </div>  </div>  </section>  <!-- Projects Section -->  <section class="col-lg-4 col-md-6 mb-4">  <div class="card shadow-sm">  <div class="card-body">  <h2 class="card-title">查看我的作品</h2>  <ul class="list-group list-group-flush">  <li class="list-group-item"><a href="#">我的第一个项目</a></li>  <li class="list-group-item"><a href="#">一个有趣的项目</a></li>  </ul>  </div>  </div>  </section>  </div>  <!-- Contact Form Section -->  <section id="contact" class="py-4 bg-light rounded shadow-sm">  <h2 class="text-center">联系我</h2>  <form class="px-4">  <div class="form-row">  <div class="form-group col-md-6">  <label for="name">姓名</label>  <input type="text" class="form-control" id="name" placeholder="输入姓名">  </div>  <div class="form-group col-md-6">  <label for="email">邮箱</label>  <input type="email" class="form-control" id="email" placeholder="输入邮箱">  </div>  </div>  <div class="form-group">  <label for="message">留言</label>  <textarea class="form-control" id="message" rows="4" placeholder="输入留言"></textarea>  </div>  <button type="submit" class="btn btn-primary">发送</button>  </form>  </section>  </main>  <!-- Footer -->  <footer class="footer bg-dark text-white text-center py-2">  <p>联系我:<a class="text-white" href="https://blog.csdn.net/wxdzuishaui?spm=1010.2135.3001.5343">我的博客</a></p>  </footer>  </body>  
</html>

把对应的css代码也进行一个调整

body {  margin: 0;  font-family: 'Roboto', sans-serif;  
}  .header {  text-shadow: 2px 2px 4px #000000;  
}  .navbar-brand,  
.nav-link {  font-size: 1.1em;  
}  .content {  padding: 20px 0;  
}  .card {  border: none; /* 清除默认边框 */  border-radius: 10px;  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);  transition: transform 0.3s;  overflow: hidden;  
}  .card:hover {  transform: scale(1.05);  
}  .card-img-top {  object-fit: cover;  height: 200px;  
}  .card-title {  font-size: 1.5em;  
}  ul {  list-style: none;  padding: 0;  
}  li {  margin-bottom: 10px;  
}  a {  color: #0066cc;  text-decoration: none;  
}  a:hover {  text-decoration: underline;  color: #004999;  
}  .form-control {  margin-bottom: 15px;  
}  .btn-primary {  background-color: #0066cc;  border-color: #0066cc;  
}  .btn-primary:hover {  background-color: #004999;  border-color: #004999;  
}  .footer {  background-color: #333;  color: white;  text-align: center;  padding: 10px;  width: 100%;  box-shadow: 0 -3px 8px rgba(0, 0, 0, 0.2);  
}

KD介绍代码优化

如上,在<head>中引入Bootstrap的CSS。在<body>中用Bootstrap类替换现有的结构,以实现响应式设计。

<!DOCTYPE html>  
<html lang="zh-CN">  
<head>  <meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <title>凯文·杜兰特</title>  <!-- 使用国内可访问的Bootstrap CSS CDN -->  <link href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.2/dist/css/bootstrap.min.css" rel="stylesheet">  <link rel="stylesheet" href="kd.css">  
</head>  
<body>  <!-- Navbar -->  <nav class="navbar navbar-expand-lg navbar-dark bg-dark">  <a class="navbar-brand" href="#">杜兰特主页</a>  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">  <span class="navbar-toggler-icon"></span>  </button>  <div class="collapse navbar-collapse" id="navbarNav">  <ul class="navbar-nav ml-auto">  <li class="nav-item active"><a class="nav-link" href="#">首页</a></li>  <li class="nav-item"><a class="nav-link" href="#bio">简介</a></li>  <li class="nav-item"><a class="nav-link" href="#career">职业生涯</a></li>  <li class="nav-item"><a class="nav-link" href="#teams">球队历程</a></li>  <li class="nav-item"><a class="nav-link" href="#achievements">成就</a></li>  <li class="nav-item"><a class="nav-link" href="#personal-life">个人生活</a></li>  </ul>  </div>  </nav>  <header class="header">  <h1>凯文·杜兰特</h1>  </header>  <main class="container content mt-4">  <div class="row">  <div class="col-md-4">  <section class="image text-center mb-4">  <img src="https://wxdwuxd.oss-cn-beijing.aliyuncs.com/6fa6ec013f49061e5c313827b6099f2.png" alt="凯文·杜兰特" class="rounded-circle img-fluid">  </section>  </div>  <div class="col-md-8">  <section id="bio" class="bio mb-4">  <h2>简介</h2>  <p>凯文·杜兰特(Kevin Durant)是NBA著名篮球运动员,司职小前锋...</p>  </section>  <section id="career" class="career mb-4">  <h2>职业生涯</h2>  <p>杜兰特的职业生涯始于2007年,他在2007年NBA选秀中被西雅图超音速以第一顺位选中...</p>  </section>  </div>  </div>  <div class="row">  <div class="col-md-6">  <section id="teams" class="teams mb-4">  <h2>球队历程</h2>  <ul class="list-group">  <li class="list-group-item">西雅图超音速 (2007-2008)</li>  <li class="list-group-item">俄克拉荷马城雷霆 (2008-2016)</li>  <li class="list-group-item">金州勇士 (2016-2019)</li>  <li class="list-group-item">布鲁克林篮网 (2019-2022)</li>  <li class="list-group-item">菲尼克斯太阳 (2022-至今)</li>  </ul>  </section>  </div>  <div class="col-md-6">  <section id="achievements" class="achievements mb-4">  <h2>成就</h2>  <ul class="list-group">  <li class="list-group-item">两届NBA总冠军 (2017, 2018)</li>  <li class="list-group-item">四届NBA得分王 (2010, 2011, 2012, 2014)</li>  <li class="list-group-item">两届总决赛MVP (2017, 2018)</li>  <li class="list-group-item">NBA常规赛MVP (2014)</li>  <li class="list-group-item">2021年东京奥运会金牌</li>  <li class="list-group-item">十届NBA全明星</li>  </ul>  </section>  </div>  </div>  <section id="personal-life" class="personal-life mb-5">  <h2>个人生活</h2>  <p>杜兰特在场外也十分活跃,他积极参与慈善和社区活动,成立了「凯文·杜兰特慈善基金会」,旨在帮助年轻人和改善社区生活。此外,他还是投资者,参与了多个初创公司的投资。</p>  </section>  </main>  <footer class="footer bg-dark text-white text-center py-2">  <p>© 2024 凯文·杜兰特粉丝页面</p>  </footer>  
</body>  
</html>
body {  font-family: 'Roboto', sans-serif;  color: #f0f0f0;  margin: 0;  padding: 0;  background-color: #121212;  
}  .header {  background: linear-gradient(135deg, #1a1a1a 25%, #000000 100%);  color: #f0f0f0;  text-align: center;  padding: 20px;  text-shadow: 2px 2px 5px #000000;  
}  .content {  padding: 0 15px;  
}  .img-fluid {  max-width: 70%;  border-radius: 50%;  transition: transform 0.5s;  
}  .img-fluid:hover {  transform: rotate(360deg);  
}  .bio, .career, .achievements, .teams, .personal-life {  background: rgba(34, 34, 34, 0.8);  color: #f0f0f0;  padding: 20px;  border-radius: 8px;  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);  
}  h1, h2 {  margin-top: 0;  
}  .list-group-item {  background: transparent;  color: #f0f0f0;  border: none;  
}  .footer {  background-color: #1a1a1a;  color: #f0f0f0;  text-align: center;  padding: 10px;  box-shadow: 0 -3px 8px rgba(0, 0, 0, 0.3);  
}

相关文章:

0基础学前端 day4

大家好&#xff0c;欢迎来到无限大的频道。 今天继续带领大家开始0基础学前端。 一、 什么是Bootstrap框架&#xff1f; Bootstrap是一个开源前端框架&#xff0c;于2011年由Twitter的开发团队开发并发布。其主要目的是简化开发过程&#xff0c;并使开发者能够轻松快速地构建…...

功能测试详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、测试项目启动与研读需求文档 &#xff08;一&#xff09; 组建测试团队 1、测试团队中的角色 2、测试团队的基本责任 尽早地发现软件程序、系统或产品中所…...

<Java>String类型变量的使用

两边有一个string就是连接&#xff0c;否则做加法 ‘ ’是char&#xff0c;“ ”是string&#xff0c;char能做加法&#xff0c;string只能连接...

JavaScript可视化

JavaScript 提供了多种库和工具来进行数据可视化。以下是一些流行的可视化库及其特点: D3.js特点: 强大的数据驱动文档(Data-Driven Documents)库,允许创建复杂的交互式图表。使用场景: 适合需要高度自定义和复杂交互的可视化。Chart.js特点: 易于使用的图表库,提供了多种…...

HTML5简介的水果蔬菜在线商城网站源码系列模板3

文章目录 1.设计来源1.1 主界面1.2 商品列表1.3 商品信息1.4 购物车1.5 其他页面效果 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.ne…...

传输层TCP协议

一、TCP协议格式 我们看到报头固定有20字节&#xff0c;最后选项大小不固定。 4位首部长度&#xff08;二进制0000 ~ 1111&#xff0c;十进制范围[0, 15]&#xff09;单位是4字节&#xff08;存放字节大小范围[0, 60]&#xff09;包括了20字节固定长度 选项长度。若选项大小为…...

自己开发一个网站系列之-网页开发初识

自己开发一个网站系列之-网页开发初识 欢迎来到网页开发的世界&#xff01;在这个教程中&#xff0c;我们将介绍网页开发的基本概念、工具和技术&#xff0c;让你能够从零开始创建自己的网页。 一、基础概念 1. 什么是网页&#xff1f; 网页是通过互联网进行访问的文档&#…...

【代码随想录训练营第42期 Day61打卡 - 图论Part11 - Floyd 算法与A * 算法

目录 一、Floyd算法与A * 算法 1、Floyd算法 思想 伪代码 2、 A * 算法 思想 伪代码 二、经典题目 题目一&#xff1a;卡码网 97. 小明逛公园 题目链接 题解&#xff1a;Floyd 算法 题目二&#xff1a;卡码网 127. 骑士的攻击 题目链接 题解&#xff1a;A * 算法&a…...

docker和ufw冲突问题

在ubuntu上部署的docker映射的端口&#xff0c;开启防火墙ufw后&#xff0c;在未放通的状态下&#xff0c;还是可以访问 解决办法&#xff1a; 在/etc/docker/daemon.json添加如下配置 {"iptables": false } 然后重启docker服务即可 systemctl daemon-reload s…...

Java(基本数据类型)( ̄︶ ̄)↗

Java 基本数据类型是Java编程语言中用于存储数据值的基本单位。它们直接映射到硬件的处理器上&#xff0c;因此访问速度非常快。Java中的基本数据类型分为四大类&#xff1a;整型、浮点型、字符型、布尔型。每种类型都有其固定的范围和存储大小。 一、整型 1&#xff09;byte…...

283. 移动0

class Solution(object):def moveZeroes(self, nums):""":type nums: List[int]:rtype: None Do not return anything, modify nums in-place instead."""# 两个指针&#xff0c;left, right,中间夹的都是0&#xff0c;# 像个虫子一样一纵一纵的…...

Mysql删库跑路,如何恢复数据?

问题 删库跑路&#xff0c;数据还能恢复吗&#xff1f; 我们经常听说某某被领导训斥了&#xff0c;对领导心生痛恨&#xff0c;然后登录 Mysql 删库跑路。对于闲聊中经常听说过的一个段子&#xff0c;在现实生活中是否真的发生过&#xff0c;如果发生了&#xff0c;我们该如何解…...

【HarmonyOS】应用引用media中的字符串资源如何拼接字符串

【HarmonyOS】应用引用media中的字符串资源如何拼接字符串 一、问题背景&#xff1a; 鸿蒙应用中使用字符串资源加载&#xff0c;一般文本放置在resoutces-base-element-string.json字符串配置文件中。便于国际化的处理。当然小项目一般直接引用字符串&#xff0c;不需要加载s…...

打开ffmpeg编码器的时候报错:avcodec_open2()返回-22

[h264_v4l2m2m 0x555555617a00] Could not find a valid device [h264_v4l2m2m 0x555555617a00] cant configure encoder 前言&#xff1a;先做一个操作&#xff0c;查找编码器的时候&#xff0c;使用名字查找的方式&#xff1a; const AVCodec *avcodec_find_encoder_by_n…...

R包:ggheatmap热图

加载R包 # devtools::install_github("XiaoLuo-boy/ggheatmap")library(ggheatmap) library(tidyr)数据 set.seed(123) df <- matrix(runif(225,0,10),ncol 15) colnames(df) <- paste("sample",1:15,sep "") rownames(df) <- sapp…...

springboot实战学习(7)(JWT令牌的组成、JWT令牌的使用与验证)

接着上篇博客的学习。上篇博客是在基本完成用户模块的注册接口的开发以及注册时的参数合法性校验的基础上&#xff0c;基本完成用户模块的登录接口的主逻辑以及提到了问题&#xff1a;"用户未登录&#xff0c;需要通过登录&#xff0c;获取到令牌进行登录认证&#xff0c;…...

如何使用numpy反转数组

如何使用numpy反转数组 1、使用np.flip()函数 可以使用flip(m, axisNone)函数来对数组进行反转&#xff1a; m:输入数组 axis:为None则行列都反转 axis:为0则反转行 axis:为1则反转列2、代码 import numpy as np# 创建一维数组 arr np.array([[1, 2, 3, 4, 5],[2, 2, 3, 4…...

Linux·进程概念(上)

1.操作系统 任何计算机系统都包含一个基本的程序合集&#xff0c;称为操作系统(Operator System)。笼统的理解&#xff0c;操作系统包括&#xff1a; 内核(进程管理&#xff0c;内存管理&#xff0c;文件管理&#xff0c;驱动管理) 其他程序(函数库&#xff0c;shell程序) OS的…...

Javax Validation 自定义注解校验(身份证号校验)

一、场景分析 我们使用 SpringMVC 在 Controller 层&#xff0c;对身份证号进行数据校验的话&#xff0c;经常采用以下方式&#xff1a; RestController RequiredArgsConstructor RequestMapping("member") public class MemberController {// 身份证号码正则表达式…...

nid修改orac库和实例名为jyc

由于库太大&#xff0c;并且要求修改源库的实例名&#xff0c;所以考虑采用nid方式重建控制文件&#xff0c;实现名称和路径的完美替换。 oracleJYCDB:/home/oracle/scripts> oracleJYCDB:/home/oracle/scripts>echo $ORACLE_SID orac oracleJYCDB:/home/oracle/scripts…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...