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

安卓(android)订餐菜单【Android移动开发基础案例教程(第2版)黑马程序员】

一、实验目的(如果代码有错漏,可查看源码)

1.掌握Activity生命周的每个方法。

2.掌握Activity的创建、配置、启动和关闭。

3.掌握Intent和IntentFilter的使用。

4.掌握Activity之间的跳转方式、任务栈和四种启动模式。

5.掌握在Activity中添加和使用Fragment。

二、实验条件

1.熟悉Java编程语言;了解Android应用程序的基本结构;掌握XML布局文件的编写;了解Activity和Fragment的基本概念。

2.其他准备:准备好菜单项的图片资源;设计好菜单的数据结构和内容。

三、实验内容

1.搭建菜单界面布局:搭建左侧菜单栏界面布局;搭建右侧菜单列表界面布局;搭建菜单列表界面的条目布局。

2.实现菜单界面功能:封装菜品信息的实体类;加载左侧菜单栏界面布局;编写菜单列表的适配器;加载右侧菜单栏界面布局;实现显示菜单的效果。

3.运行程序:运行程序,显示推荐选项的界面效果;点击“进店必买选项”,显示其对应的界面效果。

4实验过程使用的图片如下:

四、实验指导

1.搭建菜单界面布局

(1)订单菜单界面主要包含三部分:顶部导航栏、左侧菜单栏和右侧菜单列表。搭建界面布局的步骤:

①创建项目程序,导入图片资源素材;

②在res→values目录下创建colors.xml文件,添加颜色定义代码如下:

<?xml version="1.0" encoding="utf-8"?>
<resources><color name="purple_200">#FFBB86FC</color><color name="purple_500">#FF6200EE</color><color name="purple_700">#FF3700B3</color><color name="teal_200">#FF03DAC5</color><color name="teal_700">#FF018786</color><color name="black">#FF000000</color><color name="white">#FFFFFFFF</color><color name="dark_gray">#626262</color><color name="gray">#f7f8f9</color></resources>

③在res→values目录下创建styles.xml文件,定义文本样式代码如下:

<?xml version="1.0" encoding="utf-8"?>
<resources><style name="tvNavigationBarStyles"><item name="android:layout_width">wrap_content</item><item name="android:layout_height">wrap_content</item><item name="android:layout_marginLeft">25dp</item><item name="android:layout_marginTop">4dp</item><item name="android:textSize">16sp</item></style><style name="tvleftStyles"><item name="android:layout_width">100dp</item><item name="android:layout_height">40dp</item><item name="android:gravity">center</item><item name="android:textColor">@color/dark_gray</item><item name="android:textSize">16sp</item></style></resources>

④在res→layout目录下,在activity_main.xml中添加界面控件;创建left_layout.xml完成搭建左侧菜单栏布局;创建right_layout.xml文件搭建右侧菜单栏布局;创建list_item.xml完成创建listview的条目布局界面,并修改默认标题栏。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/main"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/white"android:orientation="vertical"tools:context=".MainActivity"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="50dp"android:layout_marginBottom="4dp"android:gravity="center_vertical"><TextViewandroid:id="@+id/tv_order"style="@style/tvNavigationBarStyles"android:textColor="@color/black"android:text="点菜"/><TextViewandroid:id="@+id/tv_discuss"android:layout_toRightOf="@id/tv_order"style="@style/tvNavigationBarStyles"android:textColor="@color/dark_gray"android:text="评价"/><TextViewandroid:id="@+id/tv_business"style="@style/tvNavigationBarStyles"android:textColor="@color/black"android:layout_toRightOf="@id/tv_discuss"android:text="商家"/><TextViewandroid:layout_width="70dp"android:layout_height="30dp"android:textSize="12sp"android:layout_alignParentRight="true"android:layout_marginRight="15dp"android:background="@drawable/left"android:gravity="center"android:textColor="#ef842c"android:text="好友拼单"/></RelativeLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><fragmentandroid:id="@+id/left"android:name="cn.itcast.menu.LeftFragment"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"tools:layout="@layout/left_layout"/><fragmentandroid:id="@+id/right"android:name="cn.itcast.menu.RightFragment"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="3"tools:layout="@layout/right_layout"/></LinearLayout>
</LinearLayout>

list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"android:padding="5dp"><ImageViewandroid:id="@+id/iv_img"android:layout_width="70dp"android:layout_height="70dp"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="8dp"android:layout_marginRight="8dp"android:orientation="vertical"><TextViewandroid:textSize="14sp"android:padding="2dp"android:id="@+id/tv_name"android:layout_width="wrap_content"android:layout_height="wrap_content"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#868788"android:id="@+id/tv_sale"android:textSize="12sp"/><TextViewandroid:id="@+id/tv_price"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="2dp"android:textSize="12sp"/></LinearLayout></LinearLayout>

left_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:id="@+id/tv_recommend"style="@style/tvleftStyles"android:background="@color/white"android:text="推荐" /><TextViewandroid:id="@+id/tv_must_buy"style="@style/tvleftStyles"android:text="进店必买"/></LinearLayout>

right_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ListViewandroid:id="@+id/lv_list"android:layout_width="match_parent"android:layout_height="wrap_content"android:divider="@null"/></LinearLayout>

2.实现菜单界面功能

(1)封装菜品信息实体类FoodBean:

package cn.itcast.menu;public class FoodBean {private static final long serialVersionUID=1L;private String name;private String sales;private String price;private int img;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSales() {return sales;}public void setSales(String sales) {this.sales = sales;}public String getPrice() {return price;}public void setPrice(String price) {this.price = price;}public int getImg() {return img;}public void setImg(int img) {this.img = img;}}

(2)加载左侧菜单栏界面布局,在LeftFragment.java中代码实现如下:

package cn.itcast.menu;import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.fragment.app.Fragment;
public class LeftFragment extends Fragment {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view =inflater.inflate(R.layout.left_layout,container,false);return view;}@Overridepublic void onPause() {super.onPause();}
}

(3)通过ListView实现菜单列表,编写其对应的适配器RightAdapter.java。

package cn.itcast.menu;import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;public class RightAdapter extends BaseAdapter {private Context mContext;private List<FoodBean> list;public RightAdapter(Context context , List<FoodBean>list){this.mContext=context;this.list=list;}@Overridepublic int getCount() {return list.size();}@Overridepublic Object getItem(int position) {return list.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder holder=null;if(convertView==null){convertView=View.inflate(mContext,R.layout.list_item,null);holder= new ViewHolder();holder.tv_name=convertView.findViewById(R.id.tv_name);holder.tv_sale=convertView.findViewById(R.id.tv_sale);holder.tv_price=convertView.findViewById(R.id.tv_price);holder.iv_img=convertView.findViewById(R.id.iv_img);convertView.setTag(holder);}else {holder=(ViewHolder) convertView.getTag();}FoodBean bean=list.get(position);holder.tv_name.setText(bean.getName());holder.tv_sale.setText(bean.getSales());holder.tv_price.setText(bean.getPrice());holder.iv_img.setBackgroundResource(bean.getImg());return convertView;}class ViewHolder{TextView tv_name,tv_sale,tv_price;ImageView iv_img;}
}

(4)创建右侧Fragment来显示菜单栏列表信息,具体实现代码如下:

package cn.itcast.menu;import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import java.io.Serializable;
import java.util.List;public class RightFragment extends Fragment {private ListView lv_list;public RightFragment() {}public RightFragment getInstance(List<FoodBean> list) {RightFragment rightFragment = new RightFragment();Bundle bundle = new Bundle();bundle.putSerializable("list", (Serializable) list);rightFragment.setArguments(bundle);return rightFragment;}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);}@Overridepublic View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(R.layout.right_layout, container, false);lv_list = view.findViewById(R.id.lv_list);if (getArguments() != null) {List<FoodBean> list = (List<FoodBean>) getArguments().getSerializable("list");RightAdapter adapter = new RightAdapter(getActivity(), list);lv_list.setAdapter(adapter);}return view;}
}

(5)实现显示菜单的效果,在MainActivity.java中定义init()方法、setData()方法、clickEvent()方法和switchData()方法,分别实现初始化界面控件、实现界面控件点击事件和切换右侧菜单列表数据的功能,代码如下:

package cn.itcast.menu;import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentTransaction;
import android.app.Fragment;
import android.app.FragmentManager;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class MainActivity extends AppCompatActivity {private FragmentManager fragmentManager;private FragmentTransaction fragmentTransaction;private Fragment leftFragment;private RightFragment rightFragment;private TextView tv_recommed,tv_must_buy;private String[]names1={"爆款*肥牛鱼豆腐骨肉相连三荤五素一份米饭","豪华双人套餐","【热销】双人套餐(含两份米饭)"};private String[]sales1={"月售520 好评度80%","月售520 好评度80%","月售520 好评度80%"};private String[]prices1={"$23","$41","$32"};private int []imgs1={R.drawable.food1,R.drawable.food2,R.drawable.food3};private String[]names2={"鸿运当头-油焖大虾","金肥牛跃龙门","香甜菠萝咕噜肉"};private String[]sales2={"月售1314 好评度90%","月售999 好评度85%","月售520 好评度80%"};private String[]prices2={"$36","$45","$29"};private int []imgs2={R.drawable.foodd1,R.drawable.foodd2,R.drawable.foodd3};private Map<String, List<FoodBean>> map;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);setData();init();clickEvent();}private void init(){//给主页面左侧的fragment界面控件赋值fragmentManager = getFragmentManager();leftFragment=fragmentManager.findFragmentById(R.id.left);tv_recommed=findViewById(R.id.tv_recommend);tv_must_buy=findViewById(R.id.tv_must_buy);}private void setData(){//给数据赋值将其全部放在对应的数据集里map=new HashMap<>();List<FoodBean>list1=new ArrayList<>();List<FoodBean>list2=new ArrayList<>();for(int i=0;i<names1.length;i++){FoodBean bean=new FoodBean();bean.setName(names1[i]);bean.setPrice(prices1[i]);bean.setImg(imgs1[i]);bean.setSales(sales1[i]);list1.add(bean);}map.put("1",list1);for(int i=0;i<names2.length;i++){FoodBean bean=new FoodBean();bean.setName(names2[i]);bean.setPrice(prices2[i]);bean.setImg(imgs2[i]);bean.setSales(sales2[i]);list2.add(bean);}map.put("2",list2);}private void clickEvent(){//点击推荐还在必须控件变化颜色,可以增加可适度tv_recommed.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {switchData (map.get("1"));tv_recommed.setBackgroundColor(Color.WHITE);}});tv_must_buy.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {switchData (map.get("2"));tv_must_buy.setBackgroundColor(Color.WHITE);}});switchData (map.get("1"));}public void switchData(List<FoodBean> list){rightFragment=new RightFragment().getInstance(list);//实例fragmentfragmentManager=getFragmentManager();//获取FragmentManagerfragmentTransaction=getSupportFragmentManager().beginTransaction();//开启事务fragmentTransaction.replace(R.id.right,rightFragment);//添加一个FragmentfragmentTransaction.commit();//提交事务}}

五、代码下载地址:

android: 实现注册界面、实现注册界面、饭堂小广播、音乐播放器、记事本、读取手机通讯录、学生管理系统 - Gitee.com

相关文章:

安卓(android)订餐菜单【Android移动开发基础案例教程(第2版)黑马程序员】

一、实验目的&#xff08;如果代码有错漏&#xff0c;可查看源码&#xff09; 1.掌握Activity生命周的每个方法。 2.掌握Activity的创建、配置、启动和关闭。 3.掌握Intent和IntentFilter的使用。 4.掌握Activity之间的跳转方式、任务栈和四种启动模式。 5.掌握在Activity中添加…...

【cocos creator】【模拟经营】餐厅经营demo

下载&#xff1a;【cocos creator】模拟经营餐厅经营...

前端 | 深入理解Promise

1. 引言 JavaScript 是一种单线程语言&#xff0c;这意味着它一次仅能执行一个任务。为了处理异步操作&#xff0c;JavaScript 提供了回调函数&#xff0c;但是随着项目处理并发任务的增加&#xff0c;回调地狱 (Callback Hell) 使异步代码很难维护。为此&#xff0c;ES6带来了…...

Visual Studio Code修改terminal字体

个人博客地址&#xff1a;Visual Studio Code修改terminal字体 | 一张假钞的真实世界 默认打开中断后字体显示如下&#xff1a; 打开设置&#xff0c;搜索配置项terminal.integrated.fontFamily&#xff0c;修改配置为monospace。修改后效果如下&#xff1a;...

自然语言处理-词嵌入 (Word Embeddings)

人工智能例子汇总&#xff1a;AI常见的算法和例子-CSDN博客 词嵌入&#xff08;Word Embedding&#xff09;是一种将单词或短语映射到高维向量空间的技术&#xff0c;使其能够以数学方式表示单词之间的关系。词嵌入能够捕捉语义信息&#xff0c;使得相似的词在向量空间中具有…...

自定义数据集 使用pytorch框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测,对预测结果计算精确度和召回率及F1分数

import numpy as np import torch import torch.nn as nn import torch.optim as optim from sklearn.metrics import precision_score, recall_score, f1_score# 数据准备 class1_points np.array([[1.9, 1.2],[1.5, 2.1],[1.9, 0.5],[1.5, 0.9],[0.9, 1.2],[1.1, 1.7],[1.4,…...

【论文笔记】Fast3R:前向并行muti-view重建方法

众所周知&#xff0c;DUSt3R只适合做稀疏视角重建&#xff0c;与sapnn3r的目的类似&#xff0c;这篇文章以并行的方法&#xff0c;扩展了DUSt3R在多视图重建中的能力。 abstract 多视角三维重建仍然是计算机视觉领域的核心挑战&#xff0c;尤其是在需要跨不同视角实现精确且可…...

谈谈你所了解的AR技术吧!

深入探讨 AR 技术的原理与应用 在科技飞速发展的今天&#xff0c;AR&#xff08;增强现实&#xff09;技术已经悄然改变了我们与周围世界互动的方式。你是否曾想象过如何能够通过手机屏幕与虚拟物体进行实时互动&#xff1f;在这篇文章中&#xff0c;我们将深入探讨AR技术的原…...

upload labs靶场

upload labs靶场 注意:本人关卡后面似乎相比正常的关卡少了一关&#xff0c;所以每次关卡名字都是1才可以和正常关卡在同一关 一.个人信息 个人名称&#xff1a;张嘉玮 二.解题情况 三.解题过程 题目&#xff1a;up load labs靶场 pass 1前后端 思路及解题&#xff1a;…...

搜索引擎友好:设计快速收录的网站架构

本文来自&#xff1a;百万收录网 原文链接&#xff1a;https://www.baiwanshoulu.com/14.html 为了设计一个搜索引擎友好的网站架构&#xff0c;以实现快速收录&#xff0c;可以从以下几个方面入手&#xff1a; 一、清晰的目录结构与层级 合理划分内容&#xff1a;目录结构应…...

基于 oneM2M 标准的空气质量监测系统的互操作性

论文标题 英文标题&#xff1a; Interoperability of Air Quality Monitoring Systems through the oneM2M Standard 中文标题&#xff1a; 基于 oneM2M 标准的空气质量监测系统的互操作性 作者信息 Jonnar Danielle Diosana, Gabriel Angelo Limlingan, Danielle Bryan Sor…...

春晚舞台上的人形机器人:科技与文化的奇妙融合

文章目录 人形机器人Unitree H1的“硬核”实力传统文化与现代科技的创新融合网友热议与文化共鸣未来展望&#xff1a;科技与文化的更多可能结语 2025 年央视春晚的舞台&#xff0c;无疑是全球华人目光聚焦的焦点。就在这个盛大的舞台上&#xff0c;一场名为《秧BOT》的创意融合…...

零基础学习书生.浦语大模型-入门岛

第一关&#xff1a;Linux基础知识 Cursor连接服务器 使用Remote - SSH插件即可 注&#xff1a;46561&#xff1a;服务器端口号 运行指令 python hello_world.py端口映射 ssh -p 46561 rootssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyCheckingno …...

Gurobi基础语法之 addConstr, addConstrs, addQConstr, addMQConstr

在新版本的 Gurobi 中&#xff0c;向 addConstr 这个方法中传入一个 TempConstr 对象&#xff0c;在模型中就会根据这个对象生成一个约束。更重要的是&#xff1a;TempConstr 对象可以传给所有addConstr系列方法&#xff0c;所以下面先介绍 TempConstr 对象 TempConstr TempC…...

数据结构---图的遍历

图的遍历(Travering Graph):从图的某一顶点出发&#xff0c;访遍图中的其余顶点&#xff0c;且每个顶点仅被访问一次&#xff0c;图的遍历算法是各种图的操作的基础。 复杂性:图的任意顶点可能和其余的顶点相邻接&#xff0c;可能在访问了某个顶点后&#xff0c;沿某条路径搜索…...

Qwen 模型自动构建知识图谱,生成病例 + 评价指标优化策略

关于数据库和检索方式的选择 AI Medical Consultant for Visual Question Answering (VQA) 系统&#xff1a;更适合在前端使用向量数据库&#xff08;如FAISS&#xff09;结合关系型数据库来实现图像和文本的检索与存储。因为在 VQA 场景中&#xff0c;你需要对患者上传的图像或…...

.Net Web API 访问权限限定

看到一个代码是这样的&#xff1a; c# webapi 上 [Route("api/admin/file-service"), AuthorizeAdmin] AuthorizeAdmin 的定义是这样的 public class AuthorizeAdminAttribute : AuthorizeAttribute {public AuthorizeAdminAttribute(){Roles "admin"…...

项目架构调整,切换版本并发布到中央仓库

文章目录 0.完成运维篇maven发布到中央仓库的部分1.配置server到settings.xml2.配置gpg 1.架构调整1.sunrays-dependencies&#xff08;统一管理依赖和配置&#xff09;1.作为单独的模块2.填写发布到中央仓库的配置1.基础属性2.基本配置3.插件配置 3.完整的pom.xml 2.sunrays-f…...

考试知识点位运算

深入理解位运算 在C编程的世界里&#xff0c;位运算作为一种直接对二进制位进行操作的运算方式&#xff0c;虽然不像加减乘除等算术运算那样广为人知&#xff0c;却在许多关键领域发挥着至关重要的作用。从底层系统开发到高效算法设计&#xff0c;位运算都展现出其独特的魅力与…...

matlab快速入门(2)-- 数据处理与可视化

MATLAB的数据处理 1. 数据导入与导出 (1) 从文件读取数据 Excel 文件&#xff1a;data readtable(data.xlsx); % 读取为表格&#xff08;Table&#xff09;CSV 文件&#xff1a;data readtable(data.csv); % 自动处理表头和分隔符文本文件&#xff1a;data load(data.t…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

Web后端基础(基础知识)

BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务端。 优点&#xff1a;维护方便缺点&#xff1a;体验一般 CS架构&#xff1a;Client/Server&#xff0c;客户端/服务器架构模式。需要单独…...