跟康师傅学Java-基础语法
跟康师傅学Java-基础SE
一、Java语言概述
1. 基本概念
什么是Java?干什么的?
前端是服务员,java做后台的,服务器,好比餐馆的厨师!
Java之父:詹姆斯.高斯林(James Gosling)
软件:一系列按照特定顺序组织的计算机数据和指令的集合。分为系统软件和应用软件。
程序Programs = 数据结构Date Structures+算法Algorithms
人机交互方式
图形化界面GUI
命令行方式CLI
DOS命令
微软推出的DOS操作系统单用户单任务,windows系统之前,DOS命令
Win+R 输入 cmd
进入CLI界面
dir # 查看目录
md # make director缩写 创建目录
cd * # 进入*目录
cd .. # 回退到上一个目录
rd * # remove director 删除当前文件夹下的空目录* ——> file类与IO流章节实现递归删除
del *.txt # 删除当前文件夹下的以.txt结尾的所有文件(也可以指定删除某个文件)
cls # 清屏
语言 = 语法 + 逻辑
面向过程的语言:C(偏向计算机底层操作,OS、网络、硬件驱动等)、Pascal、Fortran
面向过程/面向对象(具备面向对象的一些特征)的:C++
跨平台的纯面向对象的语言:Java 基于类的编程语言、运用最广的项目语言、数量多
C#、Python(补充、胶水语言、开发效率高)、JavaScript(前端王者、脚本语言)、Scala、php(服务器端脚本语言)……
Go语言:云计算领域事实上的标准语言、尤其在Docker/Kubernetes等项目中。
Java技术体系平台:
Java SE(标准版)Java基础
支持面向桌面级应用(如windows下的应用程序)的Java平台,即定位个人计算机的应用开发。
用户界面接口AWT及Swing,网罗功能与国际化、图像处理能力以及输入输出支持等。
Java EE 学习重点(企业版)
为开发企业环境下的应用程序提供的一套解决方案,即定位在服务器端的web应用后端开发。
Java SE的扩展,增加了用于服务器开发的类库
Java ME(小型版)被安卓 ios 替代
支持java程序运行在**移动终端(手机、机顶盒)上的平台**,即定位在消费性电子产品的应用开发。
Java ME是 Java SE的内伸,精简了Java SE的核心类库,同时也提供自己的扩展类、增加了适合微小装置的类库:javax.microedition.io*等。
2. Java 开发环境
2.1 JDK JRE
JDK(Java Development Kit):Java程序开发工具包,包含JRE和开发人员使用的工具。
JRE(Java Runtime Environment):Java程序的开发环境,包含 JVM(java虚拟机)和运行时所需要的核心类库
JDK = JRE + 开发工具集(例如java编译工具等)
JRE = JVM + Java SE 标准类库
2.2 JDK的版本选择
**装长期支持版本 Java 5 8 11 17 21……同1.5 1.8 1.11 1.17 1.21 **
安装文件说明:
2.3 配置path环境变量
环境变量
What? 答:windows操作系统执行命令时,所要搜寻的路径。
**Why?**答:希望在命令行的任意路径下使用javac.exe等工具时,任意目录下都可以找到这个工具所在的目录。
How?
1,直接编辑系统的环境变量
2,使用变量来添加环境变量
2.4 运行过程
javac HelloWorld.java # 编译(语法层面),必须在该文件目录下才能成功编译 (注:windows 不区分大小写)
编译生成的字节码文件名为类名,而非java文件名。
注:编译后会生成若干个字节码文件(每声明一个类就对应一个字节码文件)。
java HelloChina # 运行HelloChina.class文件 使用类名,且无需带后缀
HelloWorld.java 文件内容如下:
class HelloChina{public static void main(String[] args){System.out.println("Hello,world!你好呀!!");}
}
① class “类”,后面跟类名。
② main()方法格式固定,必须牢记!public 权限,static 加载的时机,void表示无返回值;表示程序的入口
public static void main(String[] args){ }
形参 String[] args
可以变 ,可以写成:String args[]
或 String[] a
或String a[]
args
:全称为 arguments(参数)
③ 严格区分大小写!
④基本输出语句
System.out.println()
:自动换行
System.out.print()
:不会自动换行
⑤一个源文件中可以声明多个类,但是最多只能有一个类使用public进行声明且要求声明为public的类的类名与源文件名相同。
2.5 注释
注释掉的信息不参与编译。
单行注释: //
多行注释:/* */
注:①多行注释不能嵌套使用
文档注释:/** */
(Java特有)
文档注释内容可以被JDK提供的工具javadoc
所解析,生成一套以网页文件形式体现的该程序的说明文档。
/**
文档注释演示。这是我的第一个Java程序!^_^
@author zjw
@version 1.0
*/
public class HelloWorld{/**Java程序的入口@param args main方法的命令参数*/public static void main(String[] args){System.out.println("hello");}
}
编译命令如下。mydoc:指定生成的文件名。
javadoc -d mydoc -author -version HelloWorld.java
问题原因:未进行 public class HelloWorld的声明!
3. Java API文档
API (Application Programming Interface,应用程序接口),Java现成的类库调用接口,是Java提供的基本编程接口。
Java API文档,即为JDK使用说明书、帮助文档。
API文档:
- 在线看:https://docs.oracle.com/en/java/javase/17/docs/api/index.html
- 离线下载:https://www.oracle.com/java/technologies/javase-jdk17-doc-downloads.html
4. Java 核心机制
4.1 优缺点
优点:
①跨平台性:可移植性好,如Java的int永远都是32位,不像c++可能是16,32,可能根据编译器厂商规定的变化。
通过Java编写的应用程序在不同的系统平台上都可以运行。
**原理:**在操作系统上安装了一个Java虚拟机(JVM),由JVM来负责Java程序在该系统中的运行。
②面向对象性:面向对象是一种程序设计技术,适合大型软件的设计和开发。面向对象编程支持封装、继承、多态等特性,让程序更好达到高内聚、低耦合的标准。
③安全性高:适合于网络/分布式环境,需要提供一个安全机制以防恶意代码的工具。如安全防范机制
(ClassLoader类加载器),可以分配不同的命名空间以防替代本地的同名类、字节代码检查。
④健壮性:吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制。
⑤简单且高性能(如通过JIT即just in time即时编译技术提高运行效率)JIT在程序运行时提前把热点代码翻译成机器指令
。
缺点:语法复杂、严谨,一般适用于大型网站的开发,整个架构会比较重,并非适用于所有领域。
IOS设备:Objective C、Swift
浏览器中的处理:JavaScript
windows程序:C++或C#
Java:服务器端编程和跨平台客户端应用领域。
4.2 JVM功能说明
JVM(J
ava V
irtual M
achine ,Java虚拟机):是一个虚拟的计算机,是Java程序的运行环境。JVM具有指令集并使用不同的存储区域,负责执行指令,管理数据、内存、寄存器。
功能①:实现Java程序的跨平台性。
功能②:自动内存管理(内存分配、内存回收)
- Java程序在运行过程中,涉及到运算的
数据的分配
、存储
等都由JVM来完成 - Java消除了程序员回收无用内存空间的职责。提供了一种系统级线程跟踪存储空间的分配情况,在内存空间达到相应阈值时,检查并释放可被释放的存储器空间。
- GC的自动回收,提高了内存空间的利用效率,也提高了编程人员的效率,很大程度上减少了因为没有释放空间而导致的
内存泄漏
。
面试题答案:Java程序还是会出现内存溢出和内存泄露问题。
内存溢出:超出了本身的容量范畴。
**内存泄露:**程序执行过程中不再使用的内存空间,JVM通过相关算法判定之后并不认为它是垃圾。内存泄露过多会导致内存溢出。
GC:Garbage Collection本质是内存的自动管理,用来回收堆中的不再需要(使用)的对象。
**Java的GC机制:**在JVM中有一个低优先级的垃圾回收线程,正常情况下不会执行,只有在虚拟机空闲或当前堆内存不足时才会触发执行,扫描那些没有被引用的对象,并将它们添加到要回收的对象集合中,然后进行回收操作。
5. 企业真题
1,一个“.java“源文件中是否可以包括多个类?有什么限制?
答:是。一个源文件可以声明多个类,但是最多只能有一个声明为public且类名需同源文件名一致。
2,Java的优势?
答:社区及其繁荣,有大量的开源框架可以调用;跨平台性、面向对象性、简单高效、健壮性好
3,常用的命令行操作都有哪些?
答:熟悉常用的dos命令:dir 、 cd 、cd.. 、 cd/ cd\ 、md、rd等
4,Java目前主要得到应用场景有哪些?
JavaEE后台开发、Android客户端的开发、大数据的开发
5,Java中是否存在内存溢出、内存泄露?如何解决?举例说明(拼**)
答:是。
6,如何看待Java是一门半编译半解释型的语言?(携程)
二、变量与运算符
1. 关键字
官方地址: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
const 与 goto 为Java的保留字,not used但占有。
2. 标识符
Java中变量、方法、类、包等要素命名时使用的字符序列,成为标识符。即需要我们自己起名字的地方。
命名规则:(必须遵守!否则编译不通过)
由26个英文字母大小写,0-9 ,_或 $ 组成
数字不可以开头。 会分不清是变量还是值例如 int 123L = 12; double d2 = 123L ,为了“自洽”
不可以使用关键字和保留字,但能包含关键字和保留字。
Java中严格区分大小写,长度无限制。
标识符不能包含空格。
命名规范:(建议,否则会遭到鄙视)
包名:多单词组成时所有字母都小写:xxxyyyzzz。
例如:java.lang、com.atguigu.bean
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
例如:HelloWorld,String,System等
变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
例如:age,name,bookName,main,binarySearch,getName
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
例如:MAX_VALUE,PI,DEFAULT_CAPACITY
3. 变量
3.1分类及其注意事项
变量是程序中不可或缺的组成单位,最基本的存储单元。(内存层面)
Java中变量的三要素:数据类型、变量名、存储的值。(注:Java强类型的,每一个变量都需要指明其类型
)
数据类型 变量名 = 变量值
其中,变量值最重要。
Java中的变量按照数据类型分类:
基本数据类型(8种):整型: byte 、short 、int(default) 、long 对应的字节数:1 、 2 、 4 、 8浮点型:float 、double(default)字符型:char 布尔型:boolean
引用数据类型:类(class)数组(array)接口(interface)枚举(enum)注解(annotation)记录(record)
注意:
①变量只在其对应作用域内有效。
②在同一个作用域内不能声明两个同名的变量。
③变量值在赋值时,必须满足变量的数据类型,且在数据类型有效的范围内变化。
④声明long
类型变量时,需要提供后缀,大写的L
或小写的l
long l1 = 12345678L;
声明float
类型变量时,需要提供后缀,大写的F
或小写的f
float f1 = 1.23f;
⑤float类型的表示范围要大于long类型的表示范围,但是精度不高。
⑥Java中定义变量时采用合法的前向引用
即先定义后使用。
3.2 浮点型精度的说明
①并不是所有的小数都可以精确地表示 。二进制浮点数不能精确表示
0.1、0.01、0.001这样10的负次幂。
②浮点类型float、double的数据不适合在不容许舍入误差的金融计算领域。如果需要精确数字计算或保留指定位数的精度,需要使用BigDecimal类替换浮点型变量。
3.3 字符类型 char
Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他书面语的一个字符。
char(2个字节)的表示形式:
①使用一对单引号''
表示,内部有且仅有
一个字符。
②直接使用Unicode值
来表示字符型常量'\uXXX'
,XXX表示一个十六进制的整数。
char c1 = '\u0036';
System.out.println(c1);
③使用转义字符。
转义字符 | 说明 | Unicode表示方式 |
---|---|---|
\n | 换行符 | \u000a |
\t | 制表符 | \u0009 |
\" | 双引号 | \u0022 |
\' | 单引号 | \u0027 |
\\ | 反斜线 | \u005c |
\b | 退格符 | \u0008 |
\r | 回车符 | \u000d |
④使用具体字符对应的数值,比如ASCLL码。
char c11 = 97;
System.out.pringln(c11); // 'a' = 97 'A'=65 '0'=48
3.4 布尔类型 boolean
只有两个值:true false,Java中不存在用零表示false,非零表示true的用法!
布尔类型占用的字节数一般不谈,真正在内存中分配的字节数与int一样,即占4个字节。
3.5 基本数据类型的自动提升与强制类型转换
研究范围:不包含boolean类型
运算规则:
①自动类型提升:容量小的变量与容量大的变量做运算时,结果自动转换为容量大的数据类型。注:这里的容量大小指的是其表示数据范围大小而不是实际占用的内存大小。特别注意数据范围 float(4) > long(8) byte、short、char --> int --> long --> float --> double --> String特殊: ① byte、short、char类型之间两两做运算,结果为int
long l1 = 123L;
long l2 = 123; // 自动类型提升,int --> long
long l3 = 123123123123; // 等式右边为int类型,因为超出了int的范围所以报错
long l4 = 123123123123l; // 使用8个字节存储的long类型的值float 变量赋值时必须在值后边加'F'或'f',否则报错
float f1 = 12.3f;
float f2 = 12.3; // 默认12.3为double类型,大转小所以报错,即编译不通过byte b1 = 10;
int i1
相关文章:
跟康师傅学Java-基础语法
跟康师傅学Java-基础SE 一、Java语言概述 1. 基本概念 什么是Java?干什么的? 前端是服务员,java做后台的,服务器,好比餐馆的厨师! Java之父:詹姆斯.高斯林(James Gosling) 软件:一系列按照特定顺序组织的计算机数据和指令的集合。分为系统软件和应用软件。 程序…...
Java语言实现递归调用算法
1. 递归调用原理 递归是一种编程技巧,其中函数直接或间接地调用自身。递归的核心思想是将一个复杂问题分解为更小的子问题,直到问题变得足够简单可以直接解决。递归通常包含两个部分: 1. 基础情况(Base Case)ÿ…...
【数据结构_10】二叉树(1)
一、树 树是一种非线性的数据结构,是由n个有限节点组成一个具有层次关系的集合。树的每个节点能够延伸出多个子节点,但每个子节点只能由一个父节点。 树形结构中,子树之间不能有交集,否则就不是树形结构。 二、树的表示形式 1…...
c++:智能指针
1.智能指针使用场景与优势 void Func() { int* array1 new int[10]; int* array2 new int[10]; try { int len, time; cin >> len >> time; cout << Divide(len, time) << endl; } catch (...) { cout << "delete []" << arr…...
RISC-V简介
RISC-V简介 1. RISC-V RISC-V(发音为“riskfive”)是一个基于精简指令集(RISC)原则的全新开源指令集架构(ISA)。其中的字母“V”包含两层意思,一是这是Berkeley从RISCI开始设计的第五代指令集…...
Google Test 与 Google Mock:C++ 测试与模拟的完美结合
Google Test 与 Google Mock:C 测试与模拟的完美结合 摘要 本文深入解析 Google Test(GTest)和 Google Mock(GMock)的核心功能与使用方法,探讨两者在 C 项目中的联合应用及集成策略。通过详细的功能介绍、…...
c语言数据结构----------二叉排序树
#include <stdio.h> #include <malloc.h>//定义二叉排序树 typedef struct BSTnode {int key; //节点值int keyNull; //便于地址传递struct BSTnode *lchild;struct BSTnode *rchild; } BSTnode;//往二叉排序树插入结点 int BSTInsert(BSTnode *T, int k) {if (…...
Sysstat学习
Sysstat(System Statistics)是一个功能强大的开源工具集,用于监控 Linux 系统的性能和资源使用情况,特别适用于 Ubuntu 系统。它包含多个工具,如 sar、iostat、mpstat 和 pidstat,帮助系统管理员实时或历史…...
智能体开发范式革命:Cangjie Magic的颠覆性创新与行业重塑
开篇:一场静悄悄的技术革命 2025年春季,人工智能领域发生了一场意义深远却鲜为人知的变革。仓颉社区推出的Cangjie Magic智能体开发平台,正以润物细无声的方式重塑着AI应用的构建范式。这并非简单的工具迭代,而是一次从底层逻辑到顶层设计的全面革新。本文将带领读者深入探…...
k8s 下 java 服务出现 OOM 后获取 dump 文件
文章目录 背景解决第 1 步:通过 Dockerfile 挂载 NFS 盘第 2 步:修改 dump 路径为 NFS 盘路径第 3 步:OOM dump 验证参考背景 😂 背景:项目部署在RainBond(k8s)环境下,容器出现 OOM 异常后,k8s 会自动进行滚动更新。 恰恰因为滚动更新,会导致原来的容器被删除。这…...
16位海明码解码电路设计教程
## 1. 海明码基本原理 ### 1.1 什么是海明码 海明码(Hamming Code)是一种能够检测并纠正单比特错误的纠错码,由理查德海明(Richard Hamming)于1950年发明。它通过添加几个校验位(奇偶校验位)到原始数据中,使得数据在传输过程中发生单比特错误时能够被检测…...
九、数据库day01--认识
文章目录 一、认识数据库1.数据库分类关系型数据库核⼼要素示例 2. SQL 语⾔3. MySQL 数据库介绍4. 数据库连接⼯具 Navicat连接数据库操作步骤 总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、认识数据库 说明: 数据库是专⻔⽤来存储数据的软…...
2.深入剖析 Rust+Axum 类型安全路由系统
摘要 详细解读 RustAxum 路由系统的关键设计原理,涵盖基于 Rust 类型系统的路由匹配机制、动态路径参数与正则表达式验证以及嵌套路由与模块化组织等多种特性。 一、引言 在现代 Web 开发中,路由系统是构建 Web 应用的核心组件之一,它负责…...
深度学习 从入门到精通 day_02
1. 自动微分 自动微分模块torch.autograd负责自动计算张量操作的梯度,具有自动求导功能。自动微分模块是构成神经网络训练的必要模块,可以实现网络权重参数的更新,使得反向传播算法的实现变得简单而高效。 1.1 基础概念 1. 张量 :…...
Selenium 实现自动化分页处理与信息提取
Selenium 实现自动化分页处理与信息提取 在 Web 自动化测试或数据抓取场景中,分页处理是一个常见的需求。通过 Selenium,我们可以实现对多页面内容的自动遍历,并从中提取所需的信息。本文将详细介绍如何利用 Selenium 进行自动化分页处理和信…...
【系统搭建】DPDK实现两虚拟机基于testpmd和l2fwd的收发包
testpmd与l2fwd的配合构建一个高性能的虚拟网络测试环境。l2fwd服务工作在数据链路层,使用MAC地址寻址,很多基于DPDK的策略实现可以基于l2fwd进行开发。 一、拓扑结构示意 ------------------- 虚拟化层网络 ------------------- | 虚拟机1 …...
简单接口工具(ApiCraft-Web)
ApiCraft-Web 项目介绍 ApiCraft-Web 是一个轻量级的 API 测试工具,提供了简洁直观的界面,帮助开发者快速测试和调试 HTTP 接口。 功能特点 支持多种 HTTP 请求方法(GET、POST、PUT、DELETE)可配置请求参数(Query …...
C语言数据类型取值范围
32位C语言整型数据类型取值范围 64位C语言整型数据类型取值范围 C语言标准数据类型保证的取值范围 在编写程序时如果要方便移植,我们应该关注的是图2-11的取值范围。 摘录自《CSAPP》。...
【机器学习】大数据时代,模型训练慢如牛?解锁Spark MLlib与分布式策略
Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...
合成数据赋能AI:从生成到闭环的全景图谱
目录 合成数据赋能AI:从生成到闭环的全景图谱 🎯 项目目标 📄 白皮书 / PPT 大纲结构 一、合成数据概述(What & Why) 二、合成数据的核心生成技术(How) 三、合成数据适配任务…...
CS144 Lab0实战记录:搭建网络编程基础
文章目录 1 实验概述与背景2 ByteStream的设计与实现2.1 字节流抽象概述2.2 实现思路2.3 核心数据结构2.4 Writer实现细节2.5 Reader实现细节 3 WebGet应用实现 1 实验概述与背景 Stanford大学的CS144课程是计算机网络领域最著名的课程之一,其实验设计巧妙地引导学…...
杂记-LeetCode中部分题思路详解与笔记-HOT100篇-其三
时光荏苒啊,没想到这么快就到了四月份... 这个坑好久没写了,现在我们重启一下。 我看了一下之前的笔记,似乎是停留在了链表部分且HOT100中可以说最重要的链表题之一:LRU缓存居然没有写,真是岂有此理,让我…...
【python画图】:从入门到精通绘制完美柱状图
目录 Python数据可视化:从入门到精通绘制完美柱状图一、基础篇:快速绘制柱状图1.1 使用Matplotlib基础绘制1.2 使用Pandas快速绘图 二、进阶篇:专业级柱状图定制2.1 多系列柱状图2.2 堆叠柱状图2.3 水平柱状图 三、专业参数速查表Matplotlib …...
医疗设备预测性维护的合规性挑战与标准化路径研究
摘要 本研究从医疗设备全生命周期管理视角,探讨预测性维护技术面临的特殊合规性挑战及其标准化解决方案。通过分析全球12个主要医疗市场的监管差异,提出基于ISO 23510的通用合规框架,并验证其在三类典型医疗设备(生命支持类、影像…...
使用 XWPFDocument 生成表格时固定列宽度
一、XWPFDocument XWPFTable个性化属性 1.初始默认写法 XWPFTable table document.createTable(n, m); //在文档中创建一个n行m列的表格 table.setWidth("100%"); // 表格占页面100%宽度// 通过getRow获取行进行自定义设置 XWPFTableRow row table.getRow(0); XW…...
抽象的https原理简介
前言 小明和小美是一对好朋友,他们分隔两地,平时经常写信沟通,但是偶然被小明发现他回给小美的信好像被人拆开看过,甚至偷偷被篡改过。 对称加密算法 开头的通信过程比较像HTTP服务器与客户端的通信过程,全明文传输…...
Chakra UI框架中响应式断点
默认的断点:base是默认样式,不带任何媒体查询,适用于所有屏幕。 sm是30em(约480px) md是48em(768px) lg是62em(992px) xl是80em(1280px) 2xl是96e…...
【cocos creator 3.x】cocos creator2.x项目升级3.x项目改动点
1、基本改动 基本改动:去掉了cc.,改成在顶部添加导入 项目升级时候直接将cc.去掉,根据提示添加引用 node只保留position,scale,rotation,layer 其余属性如opacity,如果需要使用需要在节点手动添加UIOpacity组件 3d层和ui层分开…...
【android telecom 框架分析 01】【基本介绍 2】【BluetoothPhoneService为何没有源码实现】
1. 背景 我们会在很多资料上看到 BluetoothPhoneService 类,但是我们在实际 aosp 中确找不到具体的实现, 这是为何? 这是一个很好的问题!虽然在车载蓝牙电话场景中我们经常提到类似 BluetoothPhoneService 的概念,但…...
Linux:进程:进程调度
进程在CPU上运行具有以下特性: 竞争、独⽴、并⾏、并发 竞争性:系统进程数⽬众多,⽽CPU资源很少甚至只有一个,所以进程之间是具有竞争属性的。为 了⾼效完成任务,更合理竞争相关资源,便具有了优先级 独⽴性: 为了避…...
2025年探秘特种设备安全管理 A 证:守护安全的关键凭证
在现代工业与生活中,特种设备如锅炉、压力容器、电梯、起重机械等广泛应用,它们给我们带来便利的同时,也伴随着较高的安全风险。为了确保这些设备的安全运行,保障人民生命财产安全,特种设备安全管理显得尤为重要&#…...
WebSocket 实现数据实时推送原理
WebSocket 实现数据实时推送的核心机制在于其全双工通信能力和持久的连接特性。以下是其工作原理的详细步骤: 1. 握手阶段(HTTP 升级协议) 客户端发起请求:通过发送一个带有特殊头部的 HTTP 请求,请求协议升级。 GET …...
快速迭代收缩-阈值算法(FISTA)
文章目录 1. 数学与优化基础2. FISTA 算法的原理、推导与机制3. Matlab 实现4. FISTA 在图像处理与压缩感知中的应用4.1. 基于小波稀疏先验的图像去噪4.2 压缩感知图像重建 1. 数学与优化基础 在许多信号处理与机器学习问题中,我们希望获得稀疏解,即解向…...
XC6SLX100T-2FGG484I 赛灵思 XilinxFPGA Spartan-6
XC6SLX100T-2FGG484I 是Xilinx 推出的Spartan-6 LXT 系列FPGA芯片,采用45nm工艺设计,以高性价比和低功耗为核心 系列定位:Spartan‑6 LXT,中端逻辑与 DSP 加速 逻辑资源:101 261 个逻辑单元(LE࿰…...
DP 32bit位宽数据扰码实现和仿真
关于DisplayPort 1.4协议中扰码用的16-bit LFSR的移位8个时钟周期后的输出表达式我们已经用迭代的方法推导过,那么移位32个时钟周期的输出表达式同样可以迭代32次推导出,或者将移位8个时钟的输出表达式迭代3次也可以得到。以下就是移位32个时钟周期的输出…...
Electricity Market Optimization 探索系列(V)
本文参考链接link \hspace{1.6em} 众所周知, 社会福利是指消费者剩余和生产者剩余的和,也等价于产品的市值减去产品的成本,在电力市场中也非常关注社会福利这一概念,基于电力商品的同质性的特点,我们引入反价格需求函数来形象地刻…...
vue3 element-plus el-time-picker控制只显示时 分,并且控制可选的开始结束时间
只显示时分 控制只显示时分 HH:mm 控制只显示时分秒 HH:mm:ss 全部代码: <template><el-time-pickerstyle"width: 220px !important;"v-model"timeValue"format"HH:mm"value-format"HH:mm"/> </template&…...
从技术本质到未来演进:全方位解读Web的过去、现在与未来
一、Web的本质定义 Web(万维网)是一种基于**超文本传输协议(HTTP)和统一资源标识符(URI)**构建的分布式信息系统。它的核心在于通过超链接将全球范围内的信息资源连接成网状结构,使任何接入互联网的设备都能访问这些资源。Web的本质特征体现在三个方面: 跨平台性:无论…...
C++十进制与十六进制
在C中,可以使用不同的方式来表示十进制和十六进制数值。下面是一个简单的示例代码,展示了如何在C中表示和输出十进制和十六进制数值: #include <iostream> #include <iomanip>int main() {int decimalValue 255; // 十进制数值…...
MySQL基本语法
本地登录:mysql -u 用户名 -p 查看数据库:show databeases 创建库:create database 名字; 删除库:drop database 名字; 选择库:use 名字; 创建表:create table 表名 在…...
机器学习有多少种算法?当下入门需要全部学习吗?
机器学习算法如同工具箱中的器械——种类繁多却各有专攻。面对数百种公开算法,新手常陷入"学不完"的焦虑。本文将拆解算法体系,为初学者指明高效学习路径。 一、算法森林的全景地图 机器学习算法可按四大维度分类: 监督学习&#…...
【c语言】深入理解指针2
文章目录 一、指针数组指针数组模拟二维数组 二、数组指针二维数组传参的本质 三、字符指针变量四、函数指针变量4.1. 函数指针的应用4.2 两端有趣的代码4.3. typedef关键字4.3.1 typedef 的使用4.3.2. typedef与#define对比 五、函数指针数组函数指针数组的应用 一、指针数组 …...
Nacos
Nacos是阿里巴巴的产品, 现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高。 官网地址:Redirecting to: https://nacos.io/ GitHub: https://github.com/alibaba/nacos 1.Nacos快入门 Nacos可以直…...
Linux,redis群集模式,主从复制,读写分离
redis的群集模式 主从模式 (单项复制,主复制到从) 一主两从 一台主机上的一主两从 需要修改三个配置文件 主要端口不一样 redis-8001.conf redis-8002.conf redis-8003.conf 哨兵模式 分布式集群模式 redis 安装部署 1,下载…...
《手环表带保养全攻略:材质、清洁与化学品避坑指南》
系列文章目录 文章目录 系列文章目录前言一、表带材质特性与专属养护方案二、清洁剂使用红黑榜三、家庭清洁实验:化学反应警示录四、保养实践方法论总结 前言 手环作为现代生活的智能伴侣,表带材质选择丰富多样。从柔软亲肤的皮质到耐用耐磨的金属&…...
【Leetcode 每日一题 - 补卡】1534. 统计好三元组
问题背景 给你一个整数数组 a r r arr arr,以及 a 、 b 、 c a、b 、c a、b、c 三个整数。请你统计其中好三元组的数量。 如果三元组 ( a r r [ i ] , a r r [ j ] , a r r [ k ] ) (arr[i], arr[j], arr[k]) (arr[i],arr[j],arr[k]) 满足下列全部条件ÿ…...
医疗设备预测性维护合规架构:从法规遵循到技术实现的深度解析
在医疗行业数字化转型加速推进的当下,医疗设备预测性维护已成为提升设备可用性、保障医疗安全的核心技术。然而,该技术的有效落地必须建立在严格的合规框架之上。医疗设备直接关乎患者生命健康,其维护过程涉及医疗法规、数据安全、质量管控等…...
如何在 IntelliJ IDEA 中安装 FindBugs-IDEA 1.0.1
以下是 FindBugs-IDEA 1.0.1 插件在 IntelliJ IDEA 中的安装步骤(适用于较旧版本的 IDEA,新版本可能需使用替代插件如 SpotBugs): 方法一:手动下载安装(适用于无法通过市场安装的情况) 下载插件…...
小车正常但是加载不出地图 找不到mapserver
Request for map failed; trying again... 找不到mapserver 原因: bash [ERROR] [1744895448.714854952]: failed to open image file "/home/liyb/catkin_ws/src/nav_demo/map/crossing.pgm": Couldnt open /home/xxx/catkin_ws/src/nav_demo/map/cr…...
无头开发模式
“无头”开发模式(Headless Development Mode)是指在没有直接连接物理显示器(monitor)、键盘或鼠标等输入输出设备的情况下,通过远程工具(如 SSH、SCP、rsync、VNC 或 Web 界面)对设备进行开发、…...