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

Android——自定义按钮button

项目中经常高频使用按钮,要求:可设置颜色,有圆角且有按下效果的Button

一、自定义按钮button

button的代码为

package com.fslihua.clickeffectimport android.annotation.SuppressLint
import android.content.Context
import android.graphics.Color
import android.graphics.drawable.Drawable
import android.graphics.drawable.GradientDrawable
import android.graphics.drawable.StateListDrawable
import android.util.AttributeSet
import android.view.Gravity
import androidx.annotation.ColorInt
import androidx.appcompat.widget.AppCompatButton@SuppressLint("ResourceType")
class ShapeButton @JvmOverloads constructor(context: Context?, attrs: AttributeSet? = null, defStyleAttr: Int = 0) :AppCompatButton(context!!, attrs, defStyleAttr) {private val normal_color: Intprivate val pressed_color: Intprivate val enabled_color: Intprivate val gravity: Intprivate val radius_size: Intinit {val ta = getContext().obtainStyledAttributes(attrs, R.styleable.ShapeButton)normal_color = ta.getColor(R.styleable.ShapeButton_normal_color, Color.parseColor("#FF3333"))pressed_color = ta.getColor(R.styleable.ShapeButton_pressed_color, Color.parseColor("#CC3333"))enabled_color = ta.getColor(R.styleable.ShapeButton_enabled_color, Color.GRAY)radius_size = ta.getDimension(R.styleable.ShapeButton_radius_size, dip2px(4f).toFloat()).toInt()gravity = ta.getInt(R.styleable.ShapeButton_android_gravity, Gravity.CENTER)//        int textColor = attrs.getAttributeIntValue(
//                "http://schemas.android.com/apk/res/android", "textColor", Color.WHITE);
//        setTextColor(textColor);ta.recycle()val tar = getContext().obtainStyledAttributes(attrs,intArrayOf(android.R.attr.textColor, android.R.attr.paddingTop, android.R.attr.paddingBottom))if (tar != null) {setTextColor(tar.getColor(0, Color.WHITE))setPadding(6, tar.getDimension(1, 8f).toInt(), 6, tar.getDimension(2, 8f).toInt())}setGravity(gravity)tar.recycle()init()}override fun setTextColor(@ColorInt color: Int) {super.setTextColor(color)}private fun init() {setBackgroundDrawable(getStateListDrawable(getSolidRectDrawable(radius_size, pressed_color),getSolidRectDrawable(radius_size, normal_color)))setOnClickListener { }}override fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {super.setPadding(dip2px(left.toFloat()),dip2px(top.toFloat()),dip2px(right.toFloat()),dip2px(bottom.toFloat()))}/*** 背景选择器** @param pressedDrawable 按下状态的Drawable* @param normalDrawable  正常状态的Drawable* @return 状态选择器*/fun getStateListDrawable(pressedDrawable: Drawable?, normalDrawable: Drawable?): StateListDrawable {val stateListDrawable = StateListDrawable()stateListDrawable.addState(intArrayOf(android.R.attr.state_enabled, android.R.attr.state_pressed),pressedDrawable)stateListDrawable.addState(intArrayOf(android.R.attr.state_enabled), normalDrawable)//设置不能用的状态//默认其他状态背景val gray = getSolidRectDrawable(radius_size, enabled_color)stateListDrawable.addState(intArrayOf(), gray)return stateListDrawable}private fun dip2px(dpValue: Float): Int {val scale = resources.displayMetrics.densityreturn (dpValue * scale + 0.5f).toInt()}companion object {/*** 得到实心的drawable, 一般作为选中,点中的效果** @param cornerRadius 圆角半径* @param solidColor   实心颜色* @return 得到实心效果*/fun getSolidRectDrawable(cornerRadius: Int, solidColor: Int): GradientDrawable {val gradientDrawable = GradientDrawable()// 设置矩形的圆角半径gradientDrawable.cornerRadius = cornerRadius.toFloat()// 设置绘画图片色值gradientDrawable.setColor(solidColor)// 绘画的是矩形gradientDrawable.gradientType = GradientDrawable.RADIAL_GRADIENTreturn gradientDrawable}}
}

attrs.xml的代码为:

<?xml version="1.0" encoding="utf-8"?>
<resources><declare-styleable name="ShapeButton"><!--按下的颜色--><attr name="pressed_color" format="color" /><!--正常状态颜色--><attr name="normal_color" format="color" /><!--不可用的颜色--><attr name="enabled_color" format="color" /><!--按钮圆角半径--><attr name="radius_size" format="dimension" /><!--gravity--><attr name="android:gravity" /></declare-styleable></resources>

在xml里使用:

<com.fslihua.clickeffect.ShapeButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="点击ss"android:textSize="8sp"app:radius_size="8dp"app:normal_color="@color/red"app:pressed_color="@color/black_25"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"/>

二、使用系统默认的按钮AppCompatButton

效果图:

xml中的代码为:

<androidx.appcompat.widget.AppCompatButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="@color/white"android:text="点击"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"android:background="@drawable/button_select"android:theme="@style/AppTheme"/>

AppTheme主题:

<resources xmlns:tools="http://schemas.android.com/tools"><style name="AppTheme" parent="Theme.MaterialComponents.NoActionBar"><item name="pressedColor">@color/black_25</item>  <!-- 按下时的红色 --><item name="normalColor">@color/red</item>  <!-- 正常时的绿色 --><item name="radiusSize">20dp</item>  <!-- 10dp --></style></resources>

button_select.xml的代码为(drawable):

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><!-- 按钮被按下时的背景颜色 --><item android:state_pressed="true"><shape><!-- 在主题里进行设置具体的值 --><solid android:color="?attr/pressedColor" /><corners android:radius="?attr/radiusSize" /></shape></item><!-- 按钮正常状态的背景颜色 --><item><shape><!-- 在主题里进行设置具体的值 --><solid android:color="?attr/normalColor" /><corners android:radius="?attr/radiusSize" /></shape></item>
</selector>

attrs.xml的代码为:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="CustomBt"><attr name="pressedColor" format="color" /><attr name="normalColor" format="color" /><!--按钮圆角半径--><attr name="radiusSize" format="dimension" /></declare-styleable>
</resources>

相关文章:

Android——自定义按钮button

项目中经常高频使用按钮&#xff0c;要求&#xff1a;可设置颜色&#xff0c;有圆角且有按下效果的Button 一、自定义按钮button button的代码为 package com.fslihua.clickeffectimport android.annotation.SuppressLint import android.content.Context import android.gra…...

Pandas基础学习(1)

之前看的pandas的教材和课程里&#xff0c;内容参差不齐&#xff0c;实际使用很少的方法的内容有点多&#xff0c;导致很乱而且记不住那么多&#xff0c;这个帖子尽量用最少的文字&#xff0c;最精炼的语言来总结比较实用的方法&#xff0c;内容主要来源于《利用python进行数据…...

20241224在Ubuntu20.04.6下给X99平台上的M6000显卡安装驱动程序

20241224在Ubuntu20.04.6下给X99平台上的M6000显卡安装驱动程序 2024/12/24 16:18 下载驱动程序&#xff1a; https://www.nvidia.cn/drivers/lookup/ https://www.nvidia.cn/drivers/results/ https://www.nvidia.cn/drivers/details/237923/ https://www.nvidia.cn/drivers/l…...

批量多线程给TXT文档插入相关腾讯AI【高质量无水印无版权】原创图片

给蜘蛛访问的网站文章插入相关图片&#xff0c;可以带来以下好处&#xff1a; ‌1、提升用户体验‌&#xff1a;图片能够直观地展示文章内容&#xff0c;帮助用户更好地理解和消化信息。对于阅读者来说&#xff0c;图文并茂的内容往往更具吸引力&#xff0c;也能提高他们的阅读…...

保护模式基本概念

CPU 架构 RISC&#xff08;Reduced Instruction Set Computer&#xff09; 中文即"精简指令集计算机”。RISC构架的指令格式和长度通常是固定的&#xff08;如ARM是32位的指令&#xff09;、且指令和寻址方式少而简单、大多数指令在一个周期内就可以执行完毕 CISC&…...

mysql 查询优化之字段建立全文索引

最近在接手一些老项目时发现表设计存在问题导致查询较慢 例如一张旧表的设计&#xff1a; 模糊匹配某个关键字时,需要十几秒左右,而且表的数据量不多 都知道mysql8.0版本InnoDB引擎都支持全文索引了,因此可以在content建立全文索引&#xff0c;但全文索引对中文支持并不完善…...

redis和mysql的区别

Redis是一种非关系型数据库&#xff08;NoSQL&#xff09;&#xff0c;将数据存储在缓存中&#xff0c;这虽然提高了运行效率&#xff0c;但是保存时间却很短。将数据存储在内存中&#xff0c;因此读写速度非常快&#xff0c;特别适合用于需要高速访问的场景&#xff0c;如缓存…...

【Laravel】接口的访问频率限制器

Laravel 接口的访问频率&#xff0c;你可以在 Laravel 中使用速率限制器&#xff08;Rate Limiter&#xff09;。以下是一个详细的步骤&#xff0c;展示如何为这个特定的 API 路由设置速率限制&#xff1a; 1. 配置 RouteServiceProvider 首先&#xff0c;确保在 App\Provide…...

LabVIEW水泵性能测试系统

在现代工业应用中&#xff0c;水泵作为一种广泛使用的流体输送设备&#xff0c;其性能的可靠性对整个生产系统的稳定运行至关重要。通过LabVIEW软件配合专业硬件设备&#xff0c;设计了一套水泵性能测试系统&#xff0c;实现对各类水泵的综合性能测试与分析&#xff0c;提升水泵…...

基于推理的目标检测 DetGPT

基于推理的目标检测 DetGPT flyfish detgpt.github.io 近年来&#xff0c;由于大型语言模型&#xff08;LLMs&#xff09;的发展&#xff0c;计算机视觉领域取得了重大进展。这些模型使人类与机器之间能够进行更有效、更复杂的交互&#xff0c;为模糊人类与机器智能界限的新技…...

【Java 基础】-- ArrayList 和 Linkedlist

目录 1. Java 中的 ArrayList 和 LinkedList 简介 ArrayList LinkedList 2. 相同数量级下的内存开销对比 ArrayList 的内存开销 LinkedList 的内存开销 3. 它们的速度对比 总结 1. Java 中的 ArrayList 和 LinkedList 简介 ArrayList 数据结构&#xff1a;基于动态数组…...

电脑不小心删除了msvcr120.dll文件怎么办?“缺失msvcr120.dll文件”要怎么解决?

一、文件丢失与损坏的常见原因及解决办法 1. 不小心删除系统文件 常见情况&#xff1a;有时在清理电脑垃圾文件时&#xff0c;可能会不小心删除一些重要的系统文件&#xff0c;如msvcr120.dll等。解决办法&#xff1a; 恢复文件&#xff1a;如果刚删除不久&#xff0c;可以尝…...

数据结构----链表头插中插尾插

一、链表的基本概念 链表是一种线性数据结构&#xff0c;它由一系列节点组成。每个节点包含两个主要部分&#xff1a; 数据域&#xff1a;用于存储数据元素&#xff0c;可以是任何类型的数据&#xff0c;如整数、字符、结构体等。指针域&#xff1a;用于存储下一个节点&#…...

【面试 - 遇到的问题】Vue 里 router-view 使用 key + 关闭页面后重新打开页面-获取的数据赋值到旧组件问题(钩子执行顺序)

目录 【1】问题描述【2】问题排查前 - 页面渲染、tag 页签渲染 逻辑梳理页面渲染【借用别人的描述】<router-view :key"key" />1. 不设置key 属性2. 设置 key 属性值为 $route.path/page/1 > /page/2/page?id1 > /page?id2, 3. 设置 key 属性值为 $rou…...

Dubbo简单总结

1、dubbo服务暴露的流程 ulr:protocol://username:password@host:port/path?param1=value1&param2=value2 a、服务的暴露起始于 Spring IOC 容器刷新完毕之后,会根据配置参数组装成 URL, 然后根据 URL 的参数来进行本地或者远程调用。 b、会通过 proxyFactory.getInv…...

智慧社区电商系统:提升用户体验的界面设计

3.1可行性分析 开发者在进行开发系统之前&#xff0c;都需要进行可行性分析&#xff0c;保证该系统能够被成功开发出来。 3.1.1技术可行性 开发该智慧社区电子商务系统所采用的技术是vue和MYSQL数据库。计算机专业的学生在学校期间已经比较系统的学习了很多编程方面的知识&…...

电感降额和选型规范

通常元器件有一个最佳降额范围&#xff0c;在此范围内&#xff0c;元器件工作应力的降低对其失效率的下降有显著的改善&#xff0c;设备的设计易于实现&#xff0c;且不必在设备的质量&#xff0c;体积&#xff0c;成本方面付出大的代价&#xff0c;应按设备可靠性要求&#xf…...

STM32HAL库中RTC闹钟设置时分秒,年月日

在STM32的HAL库中&#xff0c;RTC&#xff08;实时时钟&#xff09;模块提供了多种功能来管理时间和日期&#xff0c;包括设置闹钟。对于RTC闹钟功能&#xff0c;确实主要集中在时、分、秒的配置上&#xff0c;但年、月、日也可以通过RTC日期寄存器进行设置&#xff0c;并且可以…...

linux-19 根文件系统(一)

之前提到过&#xff0c;linux的目录是一个倒置的树&#xff0c;它通过层次性的方式来组织&#xff0c;管理整个系统的文件&#xff0c;而这本身实际上是通过文件系统。文件系统&#xff0c;大家记得文件系统是内核的主要功能之一&#xff0c; 它的主要目的就是实现本机上的某一…...

kotlin中泛型中in和out的区别

概念含义 in关键字&#xff08;逆变&#xff09; 在Kotlin泛型中&#xff0c;in关键字主要用于定义逆变&#xff08;Contravariance&#xff09;。它表示一个泛型类型参数可以是指定类型或者它的超类型。简单来说&#xff0c;就是对于类型A和B&#xff0c;如果A是B的子类型&…...

Spring学习(一)——Sping-XML

一、Spring的概述 (一)什么是Spring? Spring是针对bean对象的生命周期进行管理的轻量级容器。提供了功能强大IOC、AOP及Web MVC等功能。Spring框架主要由七部分组成&#xff1a;分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 S…...

设计模式——桥接模式

文章目录 1. 定义2. 结构组成3. 桥接模式结构4. 示例代码5. 模式优势6. 总结 1. 定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的主要目的是将抽象部分与它的实现部分分离&#xff0c;使它们都可以独立地变化。 2. 结构组成 桥接模…...

python Enum类介绍及cls关键字用法详解

文章目录 Enum 类基本用法定制枚举枚举方法枚举类方法 cls 关键字类方法工厂方法总结 在 Python中&#xff0c; Enum 类和 cls 关键字有一些特定的用法和含义。下面我将详细解释它们的用法&#xff1a; Enum 类 Enum 类是Python标准库中的一个类&#xff0c;用于创建枚举&a…...

模型的多GPU并行训练,DDP

DDP全称是DistributedDataParallel, 在torch.nn.parallel里面。 今天总结一下用DDP进行多GPU并行训练的方法&#xff0c; 内容来自build gpt2加上自己的补充。 如果你有多块GPU&#xff0c;就可以充分利用它们。 DDP会创建多个process&#xff08;进程&#xff0c;不是线程哦&…...

直流有刷电机多环控制(PID闭环死区和积分分离)

直流有刷电机多环控制 提高部分-第8讲 直流有刷电机多环控制实现(1)_哔哩哔哩_bilibili PID模型 外环的输出作为内环的输入,外环是最主要控制的效果,主要控制电机的位置。改变位置可以改变速度,改变速度是受电流控制。 实验环境 【 !】功能简介: 按下KEY1使能电机,按下…...

LabVIEW软件开发的未来趋势

LabVIEW软件开发的未来趋势可以从以下几个方面来分析&#xff1a; ​ 1. 与AI和机器学习的深度结合 趋势&#xff1a;LabVIEW正在向集成AI和机器学习方向发展&#xff0c;尤其是在数据处理、预测性维护和自动化控制领域。 原因&#xff1a;AI技术的普及使得实验和工业场景中的…...

ChatGPT之父:奥尔特曼

奥尔特曼 阿尔特曼一般指萨姆奥尔特曼,他是OpenAI的联合创始人兼首席执行官,被称为“ChatGPT之父”.以下是其具体介绍: 个人经历 1985年4月22日出生于美国芝加哥,8岁学会编程,9岁拥有电脑,对信息技术和互联网产生兴趣.高中就读于约翰巴勒斯中学,后进入斯坦福大学主修计…...

MySQL8.0后的double write有什么变化

什么是double write&#xff1f; 一部分是内存中的double write buffer &#xff0c;大小为2MB&#xff08;16k一个页&#xff0c;一共128个页&#xff09;。 第二部分是磁盘共享表空间的128个数据页&#xff0c;在对脏页进行落盘的时候&#xff0c;并不是直接进行落盘&#x…...

wsl ubuntu Unexpected error from cudaGetDeviceCount

wsl ubuntu Unexpected error from cudaGetDeviceCount 在这里插入图片描述 参考资料&#xff1a; Quad (4x) A6000 WSL2 CUDA Init Errors...

渐开线齿轮和摆线齿轮有什么区别?

摆线齿形与渐开线齿形的区别 虽然在比对这两种齿形&#xff0c;但有一个事情希望大家注意&#xff1a;渐开线齿轮只是摆线齿轮的一个特例。 &#xff08;1&#xff09;摆线齿形的压力角在啮合开始时最大&#xff0c;在齿节点减小到零&#xff0c;在啮合结束时再次增大到最大…...

状态图的理解和实践

状态图&#xff08;State Diagram&#xff09;是软件工程和系统设计中的一种重要工具&#xff0c;主要用于描述对象在其生命周期中的动态行为。通过状态图&#xff0c;我们可以清晰地看到对象所经历的状态序列、引起状态转移的事件&#xff08;event&#xff09;以及因状态转移…...

mysql(基础语法)

准备一张员工表 /*Navicat Premium Data TransferSource Server : localhost_3306Source Server Type : MySQLSource Server Version : 80037 (8.0.37)Source Host : localhost:3306Source Schema : studymysqlTarget Server Type : MySQLTar…...

openjdk17 从C++视角看 String的intern的jni方法JVM_InternString方法被gcc编译器连接

symbols-unix 文件部分内容 JVM_IHashCode JVM_InitClassName JVM_InitStackTraceElement JVM_InitStackTraceElementArray JVM_InitializeFromArchive JVM_InternString 要理解在 symbols-unix 文件中包含 JVM_InternString 方法的原因&#xff0c;我们需要从构建过程、符号…...

金融保险行业数字化创新实践:如何高效落地自主可控的企业级大数据平台

使用 TapData&#xff0c;化繁为简&#xff0c;摆脱手动搭建、维护数据管道的诸多烦扰&#xff0c;轻量替代 OGG, Kettle 等同步工具&#xff0c;以及基于 Kafka 的 ETL 解决方案&#xff0c;「CDC 流处理 数据集成」组合拳&#xff0c;加速仓内数据流转&#xff0c;帮助企业…...

一键打断线(根据相交点打断)——CAD c# 二次开发

多条相交线根据交点一键打断&#xff0c;如下图&#xff1a; 部分代码如下: finally namespace IFoxDemo; public class Class1 {[CommandMethod("ddx")]public static void Demo(){//"ifox可以了".Print();Database db HostApplicationServices.Workin…...

flask基础

from flask import Flask, requestapp Flask(__name__)# app.route(/) # def hello_world(): # put applications code here # return Hello World!app.route(/) # 路由 当用户访问特定 URL 时&#xff0c;Flask 会调用对应的视图函数来处理请求 def index():return …...

Springboot基于Web的高校志愿者服务管理系统81559

Springboot基于Web的高校志愿者服务管理系统81559 本系统&#xff08;程序**源码数据库调试部署开发环境&#xff09;带论文文档1****万字以上&#xff0c;文末可获取&#xff0c;系统界面在最后面。** 系统程序文件列表 项目功能&#xff1a; 志愿者,团队,招募机构,团队信息…...

各种网站(学习资源及其他)

欢迎围观笔者的个人博客~ 也欢迎通过RSS网址https://kangaroogao.github.io/atom.xml进行订阅~ 大学指南 上海交通大学生存手册中国科学技术大学人工智能与数据科学学院本科进阶指南USTC不完全入学指南大学生活质量指北科研论 信息搜集 AI信息搜集USTC飞跃网站计算机保研 技…...

熊军出席ACDU·中国行南京站,详解SQL管理之道

12月21日&#xff0c;2024 ACDU中国行在南京圆满收官&#xff0c;本次活动分为三个篇章——回顾历史、立足当下、展望未来&#xff0c;为线上线下与会观众呈现了一场跨越时空的技术盛宴&#xff0c;吸引了众多业内人士的关注。云和恩墨副总经理熊军出席此次活动并发表了主题演讲…...

Linux服务器pm2 运行chatgpt-on-wechat,搭建微信群ai机器人

安装 1.拉取项目 项目地址: chatgpt-on-wechat 2.安装依赖 pip3 install -r requirements.txt pip3 install -r requirements-optional.txt3、获取API信息 当前免费的有百度的文心一言&#xff0c;讯飞的个人认证提供500万token的额度。 控制台-讯飞开放平台 添加链接描述…...

独一无二,万字详谈——Linux之文件管理

Linux文件部分的学习&#xff0c;有这一篇的博客足矣! 目录 一、文件的命名规则 1、可以使用哪些字符&#xff1f; 2、文件名的长度 3、Linux文件名的大小写 4、Linux文件扩展名 二、文件管理命令 1、目录的创建/删除 &#xff08;1&#xff09;、目录的创建 ① mkdir…...

达梦数据库-读写分离集群部署

读写分离集群部署 读写分离集群由一个主库以及一个或者多个(最多可以配置 8 个)实时备库组成&#xff0c;基于实时归档实现的高性能数据库集群&#xff0c;不但提供数据保护、容灾等数据守护基本功能&#xff0c;还具有读写操作自动分离、负载均衡等特性。同时可以配置确认监视…...

C#(事件)2

一、事件的使用步骤 定义委托&#xff08;如果需要&#xff09;&#xff1a; 如果没有合适的预定义委托&#xff0c;就需要定义一个委托来匹配事件处理程序的签名。例如&#xff0c;public delegate void MyEventHandler(int value);定义了一个名为MyEventHandler的委托&…...

Linux xargs 命令使用教程

简介 xargs 是一个功能强大的 Linux 命令&#xff0c;用于从标准输入构建和执行命令。它接受一个命令的输出&#xff0c;并将其作为参数提供给另一个命令。它在处理大量输入时特别有用&#xff0c;其含义可以解释为&#xff1a;extended arguments&#xff0c;使用 xargs 允许…...

突发!!!GitLab停止为中国大陆、港澳地区提供服务,60天内需迁移账号否则将被删除

GitLab停止为中国大陆、香港和澳门地区提供服务&#xff0c;要求用户在60天内迁移账号&#xff0c;否则将被删除。这一事件即将引起广泛的关注和讨论。以下是对该事件的扩展信息&#xff1a; 1. 背景介绍&#xff1a;GitLab是一家全球知名的软件开发平台&#xff0c;提供代码托…...

Centos下的OpenSSH服务器和客户端

目录 1、在 IP地址为192.168.98.11的Linux主机上安装OpenSSH服务器&#xff1b; 2、激活OpenSSH服务&#xff0c;并设置开机启动&#xff1b; 3、在IP地址为192.168.98.33的Linux主机上安装OpenSSH客户端&#xff0c;使用客户端命令&#xff08;ssh、scp、sftp&#xff09;访…...

赋能新一代工业机器人-望获实时linux在工业机器人领域应用案例

在工业4.0蓬勃发展的当下&#xff0c;工业机器人作为制造业转型升级的中流砥柱&#xff0c;正朝着超精密、极速响应的方向全力冲刺。然而&#xff0c;为其适配理想的望获实时Linux系统&#xff0c;却犹如寻找开启宝藏之门的关键钥匙&#xff0c;成为众多企业在智能化进程中的棘…...

我的JAVA-Web基础(2)

1.JDBC 防止sql注入 2.JSP JSP的基本语法 基本语法是 <% %> Java代码 <% %> 输出变量 可以转换成${变量}的EL表达式 <%! %>定义变量 JSP的基本语法包括以下几个主要部分&#xff1a; 1. 表达式&#xff08;Expression&#xff09; 表达式用于将…...

OMG DDS 规范漫谈:分布式数据交互的演进之路

一、由来与起源脉络 OMG DDS&#xff08;Object Management Group Data Distribution Service&#xff09;的发展是计算机科学和技术进步的一个缩影&#xff0c;它反映了对高效、可靠的数据共享需求的响应。DDS 的概念萌生于20世纪90年代末&#xff0c;当时分布式计算已经从理…...

JVM系列(十二) -常用调优命令汇总

最近对 JVM 技术知识进行了重新整理&#xff0c;再次献上 JVM系列文章合集索引&#xff0c;感兴趣的小伙伴可以直接点击如下地址快速阅读。 JVM系列(一) -什么是虚拟机JVM系列(二) -类的加载过程JVM系列(三) -内存布局详解JVM系列(四) -对象的创建过程JVM系列(五) -对象的内存分…...