Java从入门到精通 - Java入门
Java 入门
此笔记参考黑马教程,仅学习使用,如有侵权,联系必删
文章目录
- Java 入门
- 01 Java快速入门
- 1. Java 是什么?能干什么?
- 1.1 Java 背景知识
- 1.2 Java 能做什么?
- 1.3 Java 技术体系
- 2. 如何使用 Java(搭建 Java 开发环境)
- 2.1 如何获取 JDK
- 2.2 如何安装 JDK
- 2.3 如何验证 JDK 是否安装成功
- 3. 掌握 DOS 窗口常见命令
- 4. 开发HellowWorld 程序
- 4.1 Java 程序开发的三个步骤
- 4.2 编写代码
- 4.3 编译代码、运行代码
- 总结
- 5. HelloWorld 程序常见问题
- 5.1 HelloWorld 案例常见错误
- 5.1.1 Windows 的文件扩展名没有勾选
- 5.1.2 代码写对了,但是忘记保存了
- 5.1.3 文件名和类名不一致
- 5.1.4 大小写错误,单词拼写错误,存在中文符号,找不到 main 方法
- 5.1.5 括号不配对
- 5.1.6 编译、执行使用不当
- 6. 补充知识:Java 程序的执行原理
- 6.1 计算机能认识的机器语言长什么样子?
- 6.2 使用机器语言编程来实现呼吸灯效果
- 6.3 编程语言发展历程
- 6.4 为什么学习高级编程语言?
- 总结
- 6.5 BUG
- 7. 补充知识:JDK 的组成、跨平台原理
- 7.1 JDK 的组成
- 7.2 Java 的跨平台、工作原理
- 总结
- 8. 补充知识:JDK 安装后 Path 和 Java_home 环境变量
- 8.1 Path 环境变量
- 8.2 Path 环境变量的原理
- 8.3 为 java、javac 配置 Path 的注意事项
- 8.4 重新配置了环境变量后,必须要检测是否配置成功
- 8.5 配置 Java_home 环境变量
- 总结
- 02 IDEA 开发工具的使用
- 1. Intellij IDEA 开发工具概述、安装
- 1.1 集成开发环境(IDE,Integrated Development Environment)
- 1.2 Intellij IDEA 简介
- 1.3 IDEA 的下载、安装
- 2. 使用 IDEA 编写第一个 Java 程序
- 2.1 IDEA 管理 Java 程序的结构
- 2.2 使用 idea 开发第一个 Java 程序的步骤:
- 2.3 编写代码
- 总结
- 3. IDEA 字体、主题、背景色设置、快捷键操作
- 3.1 IDEA 中设置主题、字体
- 3.2 IDEA 常用快捷键
- 4. IDEA 的其他常见操作
- 03 Java 基础语法
- 1. 注释
- 1.1 定义
- 1.2 注释有哪些
- 1.3 注释的特点
- 1.4 多学一招
- 总结
- 2. 字面量
- 2.1 定义
- 代码实现
- 总结
- 3. 变量
- 3.1 定义
- 3.2 为什么要用变量?
- 3.3 变量在计算机中的执行原理
- 3.4 变量有啥特点?
- 3.5 变量有啥应用场景?
- 代码实现
- 总结
- 4. 变量使用注意事项
- 4.1 使用变量的几个注意事项
- 代码实现
- 总结
- 5. 关键字、标识符
- 5.1 关键字
- 5.2 标识符
- 总结
- 总结
01 Java快速入门
1. Java 是什么?能干什么?
1.1 Java 背景知识
- Java 是美国 sun 公司(Stanford University Network)在1995年推出的一门计算机高级编程语言
- Java 早期称为 Oak(橡树),后期改名为 Java
- Java 之父:詹姆斯·高斯林(James Gosling)
- 2009年 sun 公司被 Oracle 公司收购
1.2 Java 能做什么?
- 桌面应用开发
- 各种税务管理软件,IDEA
- 企业级应用开发
- 微服务,大型互联网应用
- 移动应用开发
- Android,医疗设备
- 服务器系统
- 应用的后台
- 大数据开发
- hadoop
- 游戏开发
- 我的世界 MineCraft
1.3 Java 技术体系
技术体系 | 说明 |
---|---|
Java SE(Java Standard Edition):标准版 | Java技术的核心和基础 |
Java EE(Java Enterprise Edition):企业版 | 企业级应用开发的一套解决方案 |
Java ME(Java Micro Edition):小型版 | 针对移动设备应用的解决方案 |
2. 如何使用 Java(搭建 Java 开发环境)
- Java 的产品叫 JDK(Java Development Kit:Java 开发者工具包),必须安装 JDK 才能使用 Java
JDK 的发展史
ps:LTS:long-term support 长期支持版
2.1 如何获取 JDK
- 通过 Oracle 官方网站获取
- http://www.oracle.com
- 注意:针对不同操作系统,下载对应的安装包
2.2 如何安装 JDK
- 傻瓜式安装,直接下一步…
- 注意1:安装路径中不要包含中文和空格
- 注意2:所有的开发工具最好安装到统一目录
2.3 如何验证 JDK 是否安装成功
- 打开命令行窗口;
- 按下 Win+R,在运行输入框中输入 cmd,敲回车
- 看 Java、Javac 是否可用;
- 检查 Java、Javac 的版本号;
前置知识:了解 JDK 中的 Java、Javac 的基本作用
说明:将来我们写好的 Java 程序都是高级语言,计算机底层是硬件不能识别这些语言,必须先通过 javac 编译工具进行翻译,然后再通过 java 执行工具执行才可以驱动机器干活
3. 掌握 DOS 窗口常见命令
常用命令 | 作用 |
---|---|
D: | 切换到某个盘下:D: , C: |
dir | 查看当前路径下的文件信息 |
cd | 进入单级目录:cd itheima 进入多级目录:cd D:\itheima\JavaSE\第一天 回退到上一级目录:cd … 回退到盘符根目录:cd \ |
cls | 清屏 |
4. 开发HellowWorld 程序
4.1 Java 程序开发的三个步骤
- 开发 Java 程序,需要三个步骤:编写代码,编译代码,运行代码
注意事项:
- 第一个 java 程序建议使用记事本书写
- 建议代码文件名全英文,首字母大写,满足驼峰模式,源代码文件的后缀必须是.java
4.2 编写代码
- 第一个程序的代码如下:
注意:文件名必须与代码中的类名一致
保存文件:ctrl + s
4.3 编译代码、运行代码
- 编译:javac 文件名.java
范例:javac HelloWorld.java
- 运行:java 类名
范例:java HelloWorld
总结
- 开发一个 Java 程序要经历那些步骤?
- 编写、编译(javac)、运行(java)
- Java 代码编写有什么基本要求?
- 文件名的后缀必须是 java 结尾
- 文件名必须与代码的类名称一致
- 必须使用英文模式下的符号
5. HelloWorld 程序常见问题
5.1 HelloWorld 案例常见错误
5.1.1 Windows 的文件扩展名没有勾选
解决方案:必须勾选文件扩展名,再新建 Java 文件
5.1.2 代码写对了,但是忘记保存了
必须要 Ctrl + s
5.1.3 文件名和类名不一致
5.1.4 大小写错误,单词拼写错误,存在中文符号,找不到 main 方法
5.1.5 括号不配对
5.1.6 编译、执行使用不当
6. 补充知识:Java 程序的执行原理
6.1 计算机能认识的机器语言长什么样子?
- 机器语言:00011100 00110101 …
- 计算机底层都是硬件电器,可以通过不通电和通电,表示0、1
6.2 使用机器语言编程来实现呼吸灯效果
6.3 编程语言发展历程
- 机器语言
- 汇编语言
- 高级语言
6.4 为什么学习高级编程语言?
- 更简单:使用接近人类自己的语言书写,翻译器再将其翻译成计算机能理解的机器指令
总结
- Java 程序的执行原理是什么样的?
- 不管是什么样的高级编程语言,最终都是翻译成计算机底层可以识别的机器语言
- 机器语言是由说明组成的啊?
- 0和1
6.5 BUG
- 原意是臭虫或者虫子,现在用来代指在电脑系统或者程序中隐藏的一些问题或者漏洞
7. 补充知识:JDK 的组成、跨平台原理
7.1 JDK 的组成
- JVM(Java Virtual Machine):Java 虚拟机,真正运行 Java 程序的地方
- 核心类库:Java 自己写好的程序,给程序员自己的程序调用的
- JRE(Java Development Kit):Java 开发工具包(包括上面所有)
7.2 Java 的跨平台、工作原理
- 一次编译、处处可用
- 因为 sun 公司针对不同的系统平台都贴心的给我们写好了对应的 jvm 虚拟机
总结
- JDK 有哪些组成啊?
- JVM 虚拟机:真正运行 Java 程序的地方
- 核心类库:Java 自己写好的一些程序,给咱们的程序员用的
- 开发工具:javac、java、…
- Java 的跨平台是什么含义,Java 如何实现跨平台的?
- 一次编译、处处可用
- 我们的程序只需要开发一次,就可以在各种安装了 JVM 的系统平台上运行
8. 补充知识:JDK 安装后 Path 和 Java_home 环境变量
8.1 Path 环境变量
- Path 环境变量用于记住程序路径,方便在命令行窗口的任意目录启动程序
- 举例:在命令行窗口的任意目录下启动 QQ
- path 环境变量位置在:我的电脑 -> 属性 -> 高级系统设置 -> 高级 -> 环境变量
8.2 Path 环境变量的原理
- 当我们在 Path 中配置某个程序路径后,启动命令行窗口时,是如何去找该程序的
8.3 为 java、javac 配置 Path 的注意事项
- 目前较新的 JDK 安装时会自动配置 javac、java 程序的路径到 Path 环境变量中去,因此,javac、java可以直接使用
- 注意:以前的老版本的 JDK 在安装的是没有自动配置 Path 环境变量的,此时必需要自己配置 Path 环境变量
- 把 java 程序中的 bin 包路径放进去即可
8.4 重新配置了环境变量后,必须要检测是否配置成功
- 打开命令行窗口,输入
javac -version
及java -version
分别看版本提示
8.5 配置 Java_home 环境变量
- JAVA_HOME:告诉操作系统 JDK 安装在了哪个位置 (将来其他技术要通过这个环境变量找 JDK)
- 注意:较新版本的 JDK 只是自动配置了 Path,没有自动配置 JAVA_HOME
推荐:Path %JAVA_HOME%\bin
不推荐:Path D:\soft\java\jdk-17.01\bin
总结
- 什么是 Path 环境变量?
- Path 环境变量用于配置程序的路径
- 方便我们在命令行窗口的任意目录启动程序
- JDK 安装时,环境变量需要注意什么?
- 较新版本的 JDK 会自动配置 PATH 环境变量,较老的 JDK 版本则不会
- 建议还是自己配置一下“Path”、“JAVA_HOME”
02 IDEA 开发工具的使用
1. Intellij IDEA 开发工具概述、安装
之前的开发工具存在一些问题
- 文本编辑工具:记事本、NotePad++、EditPlus、sublime…编写代码时没有错误提醒、没有智能代码提醒、需要自己进行编译、执行,功能不够强大
1.1 集成开发环境(IDE,Integrated Development Environment)
- 把代码编写,编译,执行等多种功能综合到一起的开发工具,可以进行代码智能提示,错误提醒,项目管理等等
- 常见的 Java IDE 工具有:Eclipse、MyEclipse、Intellij IDEA、Jbuilder、NetBeans等
1.2 Intellij IDEA 简介
- Intellij IDEA 一般简称 IDEA ,在代码错误提醒,智能代码补全等多方面表现的都非常优秀,是进行 Java 开发时,很多企业首选的开发工具
1.3 IDEA 的下载、安装
若是为就业学习推荐下载企业版,具体过程 b 站上搜,一大堆
2. 使用 IDEA 编写第一个 Java 程序
2.1 IDEA 管理 Java 程序的结构
- project(项目、工程)
- module(模块)
- package(包)
- class(类)
这么划分是为了便于我们管理项目代码
2.2 使用 idea 开发第一个 Java 程序的步骤:
- 创建工程 new Project(空工程)
- 创建模块 new Module
- 创建包 new Package
- 创建类
- 编写代码、并启动
2.3 编写代码
package com.feng.hello;public class HelloWorld {public static void main(String[] args) {System.out.println("Hello World");}
}
总结
- 使用 idea 开发 java 程序的步骤是什么?
- project -> module -> package -> class
- project 中可以创建多个 module
- module 中可以创建多个 package
- package 中可以创建多个 class
2.创建都用哪个关键字?
- New project / module / package / class
- idea 中的 java 程序是自动编译和执行的,那编译后的 class 文件在哪里?
- 在工程路径下的一个 out 文件夹里
3. IDEA 字体、主题、背景色设置、快捷键操作
3.1 IDEA 中设置主题、字体
- 主题配置
- 字体配置
- IDEA 背景色设置
3.2 IDEA 常用快捷键
- 组合几个键一起按下完成某件事,可以提高开发效率
快捷键 | 功能效果 |
---|---|
main/psvm、sout、… | 快速键入相关代码 |
Ctrl + D | 复制当前行数据到下一行 |
Ctrl + Y | 删除所在行,建议用 Ctrl + X |
Ctrl + ALT + L | 格式化代码 |
ALT + Shift + ↑,ALT + Shift + ↓ | 上下移动当前代码 |
Ctrl + /,Ctrl + Shift + / | 对代码进行注释(讲注释的时候再说) |
4. IDEA 的其他常见操作
- 删除类文件
- 修改类名称
- 修改模块
- 导入模块
- 删除模块(了解)
- 打开工程
- 关闭工程
03 Java 基础语法
1. 注释
1.1 定义
什么是注释
- 注释是写在程序中对代码进行解释说明的文字,方便自己和其他人查看,以便理解程序的
1.2 注释有哪些
- 单行注释
// 注释内容,只能写一行
- 多行注释
/*注释内容1注释内容2
*/
- 文档注释:
文档注释的内容是可以提取到一个程序说明文档中去的
/**注释内容注释内容
*/
1.3 注释的特点
- 注释不影响程序的执行
1.4 多学一招
快捷键进行注释 | 功能效果 |
---|---|
Ctrl + / | 单行注释(对当前行进行注释) |
Ctrl + Shift + / | 对选中的代码进行多行注释 |
总结
- 注释是什么?
- 写在程序中对程序进行解释说明的文字
- Java 程序中书写注释的方式有几种,各自有什么不同
- 单行注释:
//
- 多行注释:
/* */
- 文档注释:
/** */
- 注释有什么特点?
- 不影响程序的执行,编译后的 class 文件中已经没有注释了
- 注释的快捷键是怎么用的?
- Ctrl + / 单行注释(对当前行进行注释)
- Ctrl +Shift + / 对选中的代码进行多行注释
写注释是一个利人利己的好习惯!!!
2. 字面量
2.1 定义
- 计算机是用来处理数据的,字面量就是告诉程序员:数据在计算机中的书写格式
常用数据:
常用数据 | 生活中的写法 | 程序中的写法 | 说明 |
---|---|---|---|
整数 | 666,-88 | 666, -88 | 写法一致 |
小数 | 13.14,-5.21 | 13.14, -5.21 | 写法一致 |
字符 | A,0,我 | ‘A’, ‘0’, ‘我’ | 程序中必须使用单引号,有且仅有一个字符 |
字符串 | 我嘞个雷 | “HelloWorld”, “我嘞个雷” | 程序中必须使用双引号,内容可有可无 |
布尔值 | 真、假 | true, false | 只有两个值:true:代表真,false:代表假 |
空值 | 值是:null | 一个特殊的值,空值(后面会讲解作用,暂时不管) |
代码实现
package a_java入门.c_Literal;public class LiteralDemo {public static void main(String[] args) {// 目标:需要同学们掌握常见数据在程序中的书写格式// 1. 整数System.out.println(666);// 2. 小数System.out.println(99.5);// 3. 字符:必须要用单引号闻起来,有且仅有一个字符System.out.println('a');System.out.println('0');System.out.println('中');System.out.println(' '); // 空字符// 特殊的字符:\n 代表换行的意思 \t 代表的是一个TabSystem.out.println('中');System.out.println('\n');System.out.println('国');System.out.println('\t');// 4. 字符串:必须用双引号围起来,里面的内容其实可以随意System.out.println("我爱你中国abc");System.out.println("");System.out.println(" ");System.out.println("我");// 5. 布尔值:只有2个值 true falseSystem.out.println(true);System.out.println(false);}
}
总结
- 字面量这个知识是告诉同学们什么?
- 数据在程序中的书写格式
- 字符、字符串在程序中的书写格式有什么要求?
- 字符必须用单引号围起来,有且仅能一个字符
- 字符串必须用双引号围起来
- 几个常见的特殊值的书写格式?
- true、false、null、\n、\t
3. 变量
3.1 定义
- 变量是用来记住程序要处理的数据的
变量的定义格式
3.2 为什么要用变量?
- 使用变量记要处理的数据,编写的代码更灵活,管理代码更方便
3.3 变量在计算机中的执行原理
变量就是内存中的一块区域,可以理解为一个盒子,用来装一个数据的!
3.4 变量有啥特点?
- 变量中的数据是可以被替换的
int age2 = 18;
System.out.println(age2);age2 = 19; // 赋值:从右边往左边执行
System.out.println(age2);age2 = age2 + 1;
System.out.println(age2);
3.5 变量有啥应用场景?
- 写程序对数据进行数据处理就很方便了
// 5. 需求:钱包有9.5元,收到了10元红包,又发出去了5元红包,请输出各阶段钱包的情况
double money = 9.5;
System.out.println(money);// 收红包10元
money = money + 10;
System.out.println(money);// 发出去5元
money = money - 5;
System.out.println(money);
代码实现
package a_java入门.d_variable;public class VariableDemo1 {public static void main(String[] args) {// 目标:认识变量,掌握使用变量的好处,变量的特点,应用场景// 1. 定义一个整形变量记住一个整数// 数据类型 变量名 = 数据;// 注意:=在Java中是赋值的意思,从右往左看int age = 23;System.out.println(age);// 2. 记住一个人的成绩double score = 99.5;System.out.println(score);System.out.println("--------------------------------------");// 3. 使用变量的好处:便于扩展和维护int number = 666; // 万一有一天要将666改为888,直接在这改一个地方就行System.out.println(number);System.out.println(number);System.out.println(number);System.out.println(number);System.out.println(number);System.out.println(number);System.out.println("--------------------------------------");// 4. 变量的特点:里面装的数据可以被替换int age2 = 18;System.out.println(age2);age2 = 19; // 赋值:从右边往左边执行System.out.println(age2);age2 = age2 + 1;System.out.println(age2);System.out.println("--------------------------------------");// 5. 需求:钱包有9.5元,收到了10元红包,又发出去了5元红包,请输出各阶段钱包的情况double money = 9.5;System.out.println(money);// 收红包10元money = money + 10;System.out.println(money);// 发出去5元money = money - 5;System.out.println(money);}
}
总结
- 变量是什么,变量的完整定义格式是什么样的?
- 用来存储一个数据的,本质是内存中的一块区域
- 数据结构 变量名称 = 数据
- 为啥要用变量,变量有啥好处?
- 使用变量记要处理的数据,编写的代码更灵活,管理代码更方便
- 变量有什么特点?基于这个特点,变量有啥应用场景?
- 变量里装的数据可以被替换
4. 变量使用注意事项
4.1 使用变量的几个注意事项
- 变量要先声明才能使用
- 变量是什么类型,就应该用来装什么类型的数据,否则报错
- 变量是从定义开始到 “}” 截止的范围有效;且同一个范围内,定义的多个变量,它们的名称不能一样
- 变量定义的时候可以不赋初始值;但在使用时,变量里必须有值否则报错
代码实现
package a_java入门.d_variable;public class VariableDemo2 {public static void main(String[] args) {// 目标:搞清楚使用变量的几点注意事项// 1. 变量要先声明才能使用int age = 18;System.out.println(age);// 2. 变量是什么类型,就应该用来装什么类型的数据,否则报错//age = 9.8;// 3. 变量是从定义开始到 "}" 截止的范围有效;且同一个范围内,定义的多个变量,它们的名称不能一样{int a = 19;// int a = 23;System.out.println(a);}// System.out.println(a);System.out.println(age);int a = 23;// int age = 25;//4. 变量定义的时候可以不赋初始值;但在使用时,变量里必须有值否则报错int number;number = 100;System.out.println(number);}
}
总结
使用变量时有那些注意点?
- 变量要先声明,才能使用
- 变量是什么类型,就应该用来装什么类型的数据
- 变量存在访问范围,同一个范围内,多个变量的名字不能一样
- 变量定义时可以不赋初始值;但在使用时,变量里必须有值
5. 关键字、标识符
5.1 关键字
- Java 语言自己用到的一些词,有特殊作用的,我们称之为关键字,如:public、class、int、double、…
- 注意:关键字是 java 用了的,我们就不能用来作为:类名、变量名,否则会报错!
注意:关键字很多,不用刻意去记
5.2 标识符
- 标识符就是名字,我们写程序时会起一些名字,如类名、变量名等等都是标识符
标识符的要求
- 基本组成:由数字、字母、下划线(_)和美元符($)等组成
- 强制要求:不能以数字开头、不能用关键字作为名字、且是区分大小写的
标识符的建议规范
- 变量名称:满足标识符规则,同时建议用英文、有意义、首字母小写,满足“驼峰模式”,例如:
int studyNumber = 59;
- 类名称:满足标识符规则,建议全英文、有意义、首字母大写,满足“驼峰模式”,例如:
HelloWorld, Student
总结
- 什么是关键字?
- 关键字就是 Java 自己要用到的词,并且有特殊含义的一些词
- 我们就不能用来做为:类名、变量名,否则会报错
- 什么是标识符
- 标识符就是名字
- 标识符的规则:由数字、字母、下划线、美元符等组成,且不能数字开头,不能用关键字做为名字
总结
相关文章:
Java从入门到精通 - Java入门
Java 入门 此笔记参考黑马教程,仅学习使用,如有侵权,联系必删 文章目录 Java 入门01 Java快速入门1. Java 是什么?能干什么?1.1 Java 背景知识1.2 Java 能做什么?1.3 Java 技术体系 2. 如何使用 Java&…...
SLAM中的状态估计理论:从基础到前沿的完整解析
SLAM中的状态估计理论:从基础到前沿的完整解析 一、SLAM状态估计基础与问题建模 1.状态估计问题的数学描述 在SLAM(Simultaneous Localization and Mapping,同时定位与地图构建)中,状态估计问题的核心在…...
Android 自带的分享功能分享到三方应用
1. 分享视频到三方应用 var shareIntent Intent(Intent.ACTION_SEND)shareIntent.setType("video/*")shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(path))startActivity(Intent.createChooser(shareIntent, "")) 2. 分享音频到三方应用 var sha…...
宇树科技开启“人形机器人格斗盛宴”
2025年5月至6月,一场备受瞩目的全球性科技盛事——全球首届“人形机器人格斗大赛”将由杭州宇树科技隆重开启。赛事将带来前所未有的机器人格斗视觉冲击,吸引全球目光聚焦。 为打造顶级参赛队伍,宇树科技的技术精英团队已连续多周开展密集的算…...
K8S - 命名空间实战 - 从资源隔离到多环境管理
引言 在传统的物理机或虚拟机环境中,不同业务应用共享资源,容易导致权限冲突、资源争用和管理混乱。Kubernetes 通过 命名空间(Namespace)实现资源逻辑隔离,将集群划分为多个虚拟子集群,从而解决以下问题&…...
【安全扫描器原理】基于协议的服务扫描器
【安全扫描器原理】基于协议的服务扫描器 1.概述2.服务扫描的基本原理3.WWW服务扫描4.FTP服务扫描5.Telnet服务扫描1.概述 一台计算机逻辑上可以提供多项服务,每安装一个服务,即打开了一个或多个端口。从这个角度上看,每个服务对应一个或几个指定端口,反之,如果能检测到某…...
第十六届蓝桥杯 2025 C/C++组 数列差分
目录 题目: 题目描述: 题目链接: 思路: 核心算法: 思路详解: 代码: 代码详解: 题目: 题目描述: 题目链接: P12342 [蓝桥杯 2025 省 B/Py…...
模式识别的基本概念与理论体系
前面在讨论专家系统时曾经说过,为了使计算机具有自动获取知识的能力,除了应使它具有学习能力外,还应使它具有能识别诸如文字、图形、图象、声音等的能力,计算机的这种识别能力是模式识别研究的主要内容。当然,模式识别…...
机器学习,深度学习
定义(非正式):不进行明确编程的情况下,提供大量数据让计算机进行自我学习分类:监督(supervised)学习,无监督(unsupervised)学习监督学习:提供的数据中包含了问题到正确答案(x到y)的映射…...
smolagents - Guided tour
https://colab.research.google.com/github/huggingface/notebooks/blob/main/smolagents_doc/en/pytorch/guided_tour.ipynbhttps://colab.research.google.com/github/huggingface/notebooks/blob/main/smolagents_doc/en/pytorch/guided_tour.ipynb...
【keil使用】无法打开keil工程,只有空白界面的解决方法
【keil使用】无法打开keil工程,只有空白界面的解决方法 一、最常见的原因 在我们新建keil工程或下载其他大佬的keil工程的时候可能会出现工程无法正常打开的情况,如图所示: 其中最常见的一个原因就是keil工程的目录路径太长了,W…...
openEuler 22.03 安装 Nginx,支持离线安装
目录 一、环境检查1.1 必要环境检查1.2 在线安装(有网络)1.3 离线安装(无网络) 二、下载Nginx2.1 在线下载2.2 离线下载 三、安装Nginx四、开机自启服务五、开放防火墙端口六、常用命令 一、环境检查 1.1 必要环境检查 # 查看 g…...
Excel 数组功能及应用示例
Excel表格中的数组(Array)是一个可以同时存储和操作多个数据的结构。数组可以是单行、单列(一维数组)或多行多列(二维数组)。在Excel中,数组公式或动态数组功能可以一次性处理多个值,…...
C++后端服务器开发:侵入式与非侵入式程序结构解析
在C后端服务器开发中,架构设计是决定系统性能、可扩展性和可维护性的关键因素之一。尽管不同的业务需求会导致服务器架构的多样化,但网络通信模块作为所有服务的通用部分,为我们提供了一个抽象和讨论的基础。基于此,我们可以将服务…...
「Mac畅玩AIGC与多模态09」开发篇05 - 使用自定义天气查询插件开发智能体应用
一、概述 本篇介绍如何在 macOS 环境下,通过编写自定义 OpenAPI Schema,将天气查询服务接入 Dify 平台,并开发基于实时天气信息的智能体应用。本案例培养路径参数与查询参数结合的插件开发技巧,实现智能体和外部实时数据的动态联动。 二、环境准备 1. 确认本地开发环境 …...
Maven插件学习(五)—— 将项目构建生成的 OSGi Bundles(或 Features)发布到一个 P2 仓库
发布OSGi Bundles到一个 P2 仓库 读取项目中properties文件中的属性 <plugin><groupId>org.codehaus.mojo</groupId><artifactId>properties-maven-plugin</artifactId><version>1.0-alpha-2</version><executions><exec…...
欧拉计划 Project Euler61(循环的多边形数)题解
欧拉计划 Project Euler 61 题解 题干思路code 题干 思路 先生成所有四位数的多边形数集合分类保存,然后dfs找即可 code // 2512 1281 8128 2882 8256 5625 // 28684 #include <bits/stdc.h>using namespace std;using ll long long;typedef vector<i…...
C语言与Unix的传奇起源
C语言与Unix的传奇起源 背景:Multics项目的困境 这段历史要从20世纪60年代中叶的美国说起。当时,三大技术巨头——麻省理工学院(MIT)、AT&T贝尔实验室和通用电气(GE)——联手为GE-645大型机开发一个名…...
C#扩展方法与Lambda表达式基本用法
C# 扩展方法与 Lambda 表达式详解 一、扩展方法详解 1. 基本概念 扩展方法允许为现有类型"添加"方法,而无需修改原始类型或创建派生类型。 定义条件: 必须在静态类中定义方法本身必须是静态的第一个参数使用this修饰符指…...
C#规避内存泄漏的编码方法
C#规避内存泄漏的编码方法 内存泄漏是C#开发中常见的问题,尽管.NET有垃圾回收机制(GC),但不当的编码实践仍可能导致内存无法被及时回收。以下是系统性的规避内存泄漏的方法: 一、理解内存泄漏的常见原因 未释放的事件订阅静态…...
ARM 指令集(ubuntu环境学习) 第一章:ARM 指令集概述
1.1 ARM 架构简介 ARM(Advanced RISC Machine)是一种精简指令集计算机(RISC)架构,最初由英国的 ARM Holdings 公司设计。与复杂指令集计算机(CISC)不同,RISC 架构通过使用简单且高效的指令集,使得处理器能够以更高的速度和更低的功耗执行任务。ARM 架构被广泛应用于各…...
OpenCV实战教程:从零开始的计算机视觉之旅
第一部分:基础入门 OpenCV简介 什么是OpenCV及其应用领域开发环境搭建(Windows/MacOS/Linux)安装配置和第一个程序"Hello OpenCV" 图像基础 图像的数字表示方式色彩空间(RGB、HSV、灰度图)图像读取、显示与…...
零基础做自动驾驶集成测试(仿真)
图 1:使用 GPUDrive 进行极快的多代理模拟。上图:GPUDrive 中 Waymo Open Motion Dataset 场景的鸟瞰图,方框表示受控智能体,圆圈表示其目标。底部:相应的代理视图,以一个代理为中心。可以根据用户的目标轻…...
阿里云dns服务器不可用怎么办?dns可以随便改吗?
阿里云DNS服务器不可用怎么办?dns可以随便改吗? 当DNS服务器不可用时,可能导致无法访问网站或网络服务。以下是常见的解决方法: 1. 检查网络连接 确保设备已连接到互联网(如Wi-Fi或有线网络)。 尝试访问其他网站或服务&#x…...
神经网络用于地震数据时空均匀插值的方法与开源资料
神经网络用于地震数据时空均匀插值的方法与开源资料 地震数据的不均匀采样是一个常见问题,神经网络提供了一种有效的解决方案。以下是关于如何使用神经网络进行地震数据时空均匀插值的概述和可用资源。 主要方法 1. 基于深度学习的插值方法 卷积神经网络(CNN)&a…...
线性微分方程与非线性微分方程
方程一 d x d t x \frac{dx}{dt} x dtdxx 这是一个一阶线性常微分方程,可以直接分离变量求解。 将变量分离: d x x d t \frac{dx}{x} dt xdxdt 两边积分: ∫ 1 x d x ∫ 1 d t ⇒ ln ∣ x ∣ t C \int \frac{1}{x} \, dx \…...
Windows查看和修改IP,IP互相ping通
Windows系统 查看IP地址 winr 输入cmd 打开终端使用 ipconfig 或 ipconfig -all 命令查看当前网络 IPV4地址 Windows系统 修改IP地址 自动获取IP(DHCP): 打开 控制面板,点击 网络和Internet。点击 网络和共享中心。选择 更改适配…...
ESP32开发之freeRTOS的信号量
什么是信号量信号量能干啥信号量的函数实例举例总结什么是信号量 简而言之,就是发出通知,接收通知的任务获得通知后去干啥啥。通知有多有少。自定义通知数量的,叫计数型信号量;只有有无(即“0”,“1”)通知的,叫二进制信号量。 信号量能干啥 资源管理:控制多个任务对…...
CRMEB-PRO系统定时任务扩展开发指南
适用场景 当系统内置定时任务类型无法满足业务需求时,开发者可通过本教程快速掌握自定义定时任务的扩展方法。本指南以"定时检测服务"为例,演示完整开发流程。 我想添加一个定时任务 ,而这里没有我需要的,我怎么来添加 比如我想添加一个定时检…...
单片机不同通信方式的适用场景
一、串口通信 UART 通信双方约定好波特率,每次发送一个字节(8位数据) 这种通信方式一共有2根线,且互相独立不受影响。 串口通信的缺点 二、RS232和RS485 优点是能够远距离传输信号 RS232达到30m RS485达到1000m 同时RS485还具有一对多的功能 三、S…...
【神经网络与深度学习】探索全连接网络如何学习数据的复杂模式,提取高层次特征
引言 全连接网络(Fully Connected Network,FCN)是深度学习中的重要架构,广泛用于模式识别、分类和回归任务。其强大的特征提取能力使其能够自动学习输入数据中的复杂模式,并逐步形成高层次特征。这种能力主要依赖于参…...
股指期货贴水对对冲的影响大吗?
如果你持有股票,又担心股市下跌,可能会想到用股指期货来“对冲风险”——比如买入股票的同时,卖出股指期货合约。但如果股指期货处于贴水状态(期货价格低于现货价格),对冲效果会受影响吗? 一、…...
浙江大学 | DeepSeek系列公开课 | 当艺术遇见AI:科艺融合的前沿探索
今天要给大家分享一份由浙江大学出品的DeepSeek系列公开课第三季第一期,公开课的主题是当艺术遇见AI,科艺融合的新探索。本报告系统展示了浙江大学在艺术与人工智能融合领域的研究成果,涵盖古画修复流程、色彩复原技术、诗画融合模型、图像召…...
(Go Gin)Gin学习笔记(三)数据解析和绑定:结构体分析,包括JSON解析、form解析、URL解析,区分绑定的Bind方法
1. 数据解析和绑定 bind或bindXXX函数(后文中我们统一都叫bind函数)的作用就是将请求体中的参数值绑定到对应的结构体上,以方便后续业务逻辑的处理 1.1 JSON数据解析和绑定 客户端传参,后端接收并解析到结构体 package mainim…...
【JavaEE】网络原理之初识(1.0)
目录 编辑 局域网与广域网 IP地址和端口号 实现简单的服务器客户端交互 简单理解socket TCP和UDP的差别(初识) socket面对udp DatagramSocket API DatagramSocket 构造方法 DatagramSocket 方法: DatagramPacket API Data…...
Go与Cpp的本质区别
这个问题是我们经常听到的问题 常见的观点有 Go 与 C 的差异主要体现在设计哲学、内存管理、并发模型、语法特性及应用场景等方面,以下从多个维度进行详细对比: 一、内存管理机制 C:需手动管理内存(如 new/delete、智能…...
Vulkan 学习(16)---- 使用 VertexBuffer
Vertex Buffer 创建一个 VertexBuffer 存储 Vertex data,代替之前在 Shader 中使用固定顶点值的做法 Vertex Shader 修改 GLSL 的 VertexShader 如下: 注意这里指定了 input Vertex data 的 location 和 格式 #version 450 layout(location 0) in vec2 inPosit…...
论文阅读 2024 arxiv Comprehensive Assessment of Jailbreak Attacks Against LLMs
总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 Comprehensive Assessment of Jailbreak Attacks Against LLMs https://arxiv.org/pdf/2402.05668 https://www.doubao.com/chat/4015423571416834 速览 这篇论文是关于大…...
SIFT特征点检测
刚看完了SIFT特征点检测的原理,阅读的是两篇csdn博客,一个全面和一个最全面,不得不说,你俩写的都很全面,这么用心奉献知识的博主是全人类的财富。 现在用我这张笨拙的嘴先说一下我理解的流程 首先先将图像扩大一倍&a…...
开源模型应用落地-qwen模型小试-Qwen3-8B-快速体验-pipeline方式(二)
一、前言 阿里云最新推出的 Qwen3-8B 大语言模型,作为国内首个集成“快思考”与“慢思考”能力的混合推理模型,凭借其 80 亿参数规模及 128K 超长上下文支持,正在重塑 AI 应用边界。该模型既可通过轻量化“快思考”实现低算力秒级响应,也能在复杂任务中激活深度推理模式,以…...
Python os.path.join()路径拼接异常
问题 在使用os.path.join()对两个路径进行拼接,如:/University/School/和/Department/Class/进行拼接,最终的结果为/Department/Class/,而/University/School/却不知所踪。 import osos.path.join(“/University/School/”, “/…...
Flink之DataStream
Apache Flink 的 DataStream API 是用于 处理无限(流)或有限(批)数据流的核心编程模型,适用于事件驱动、实时分析、ETL 等场景。相比 Flink Table API,DataStream API 提供了更强的灵活性和底层控制能力。 …...
WHAT - Tailwind CSS + Antd = MetisUI组件库
文章目录 Tailwind 和 Antd 组件库MetisUI 组件库 Tailwind 和 Antd 组件库 在 WHAT - Tailwind 样式方案(不写任何自定义样式) 中我们介绍了 Tailwind,至于 Antd 组件库,我们应该都耳熟能详,官网地址:htt…...
【LLM】MOE混合专家大模型综述(重要模块原理)
note 当前的 MoE 架构就是一个用显存换训练时长/推理延迟的架构MoE 目前的架构基本集中在于将原先 GPT 每层的 FFN 复制多份作为 n 个 expert,并增加一个 router,用来计算每个 token 对应到哪个 FFN(一般采用每个 token 固定指派 n 个 exper…...
量子机器学习中的GPU加速实践:基于CUDA Quantum的混合编程模型探索
引言:量子机器学习的新范式 在量子计算与经典机器学习交叉融合的前沿领域,量子机器学习(Quantum Machine Learning, QML)正经历着革命性突破。然而,随着量子比特规模的增长和算法复杂度的提升,传统计算架构…...
CentOS Linux 环境二进制方式安装 MySQL 5.7.32
文章目录 安装依赖包新建用户解压初始化配置文件启动服务登录MySQL修改密码停止数据库 安装依赖包 yum -y install libaio perl perl-devel libncurses* autoconf numactl新建用户 useradd mysql解压 tar xf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.32-l…...
数学:拉马努金如何想出计算圆周率的公式?
拉马努金(Srinivasa Ramanujan)提出的圆周率(π)计算公式,源于他对数学模式的超凡直觉、对无穷级数和模形式的深刻洞察,以及独特的非传统数学思维方式。尽管他的思考过程带有强烈的个人色彩,甚至…...
Java 未来技术栈:从云原生到 AI 融合的企业级技术演进路线
一、云原生架构:重构 Java 应用的运行范式 1.1 微服务架构的深度进化 Java 在微服务领域的实践正从 Spring Cloud 向服务网格(Service Mesh)演进。以 Istio 为代表的服务网格技术,通过 Sidecar 模式实现服务间通信的透明化管理&…...
mid360驱动安装以及联合相机标定
1 mid360 安装 1.1 安装 一定要使用 SDK2和 ROS2驱动(livox_ros_driver2) 先安装SDK2,再安装livox_ros_driver2 GitHub - Livox-SDK/Livox-SDK2: Drivers for receiving LiDAR data and controlling lidar, support Lidar HAP and Mid-360. GitHub - Livox-SDK/l…...
LeetCode —— 572. 另一棵树的子树
572. 另一棵树的子树 题目:给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所…...