java基础知识汇总
以下内容是学习《java核心技术卷1》的学习笔记
一、一个简单的java应用程序
public class App {
public static void main(String[] args) {
System.out.println("yuanyexiaolu");
}
}
代码解释:
关键字public称为访问修饰符,这些修饰符用于控制程序的其他部分对这段代码的访问级别。class表明java程序中的全部内容都包含在类中。目前只需要将类理解为程序逻辑的一个容器,程序逻辑定义了应用程序的行为。类是构建所有java应用程序和applet的构建块。java应用程序中的全部内容都必须放置在类中。
关键字clas后面紧跟类名。java中定义类名的规则比较宽松,不要使用java保留字即可。类名是以大写字母开头的名词。如果名字由多个单词组成,每个单词的第一个字母都应该大写。
源代码的文件名必须与公共类的名字相同,并使用.java作为扩展名。所以以上演示代码的文件名为:App.java,在类的源文件中必须包含一个main方法。java中使用“{}”划分程序的各个部分。每个句子必须使用分号结束。
二、注释
单行注释://
多行注释:/**/
文档注释:/**开始 */结束
三、数据类型
java中一共有8中基本类型,其中有4中整型、2种浮点类型、1中字符类型char,1中布尔类型;
1、整型
int 4字节
short 2字节
long 8字节
byte 1字节
注意:长整型数值有一个后缀L或l(400000l)。十六进制数值有一个前缀0x。
2、浮点类型
float 4字节
double 8字节
注意事项:
float类型的数值有一个后缀F或f。如果没有后缀F的浮点数值总是默认为double类型。当然也可以在浮点数后面加D或d。
3、char类型
char类型原本用于表示单个字符。char类型的字面量值用单引号括起来。
4、布尔类型
布尔类型有两个值:false 和true,用来判断逻辑条件。整型值和布尔值之间不能进行互相转换。
三、变量与常量
java中变量用来存储值,常量就是值不变的变量。
1、声明变量
在java中,每个变量都有一个类型(type)。在声明变量时,先指定变量的类型,然后是变量名。
如:
double number;
boolean flage;
int student;
可以发现,每个声明都以分号结束。由于声明是一条完整的java语句,而所有java语句都以分号结束,所以这里的分号是必须的。
变量名必须是一个以字母开头并由字母或数字构成的序列,且大小写敏感。
2、变量初始化
声明一个变量之后,必须用赋值语句对变量进行显式初始化,千万不要使用未初始化的变量。要想对一个已经声明过的变量进行赋值,就需要将变量名放在等号左侧,在把一个适当取值的java表达式放在等号的右侧。
如:
int number=90;
3、常量
在java中,利用关键字final指示常量。
如:
final double number=89.5;
注意:
关键字final表示这个变量只能被赋值一次,一旦被赋值之后,就不能够再更改了。习惯上,常量名使用全大写。
在java中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为类常量(class constant)。可以使用关键字static final设置一个类常量。
如:
public static final doucle NUMBER=20.2;
注意事项:
需要注意,类常量的定义位于main方法的外部。因此,在同一个类的其他方法中也可以使用这个常量。而且,如果一个常量被声明为public,那么其他类的方法也可以使用这个常量。
四、运算符
1、算术运算符
在java中,使用算术运算符+,-,*,/表示加,减,乘,除运算。整数的求余操作用%表示。
2、数学函数与常量
在Math类中,包含了各种各样的数学函数。在编写不同类别的程序时,可能需要的函数也不同。
要想计算一个数值的平方根,可使用Math.sqrt方法;
要想实现幂运算,可使用Math.pow方法,pow接收两个参数,第一个参数为底数,第二个参数为指数;
其他一些数学相关计算,在需要的时候可以自行查资料。
3、数值类型之间的转换
byte--short--int--long--doublue
char--int--float--double
long--float
int--double
在java中进行运算的时候,先要将两个操作数转换为同一种类型,在进行计算。
4、结合赋值和运算符
可以在赋值中使用二元运算符。一般来说,要把运算符放在=好左边。
如:+=
5、自增与自减运算符
前自增:++i,先对i值加1,然后进行相关运算;
后自增:i++,相关运算结束后,对i值加1;
6、关系和boolean运算符
java包含丰富的关系运算符,要检测相等性,可以使用两个等号==,另外使用!=检测不相等。
最后,还有经常使用的<(小于),>(大于),<=(小于等于),>=(大于等于)运算符。
逻辑运算相关:&&符号表示“与”运算,||表示逻辑“或”运算。
7、括号与运算符级别
如果不使用圆括号,就按照给出的运算符优先级次序进行计算。同一个级别的运算符按照从左到右的次序进行计算。
五、字符串
从概念上讲,java字符串就是Unicode字符序列。java没有内置的字符串类型,而是在标准java类库中提供了一个预定义类,很自然地叫做string。每个用双引号括起来的字符串都是string类。
举例如下:
String example=""; //空字符串
String name ="yuanyexincun";
1、子串
String类的substring方法可以从一个较大的字符串提取出一个子串。
如:
String greeting="yuanyexincun";
String s=greeting.substring(0,3) //yua
解释:substring的两个参数,分别表示起始位置和结束位置。
2、拼接
和绝大多数程序设计语言一样,java语言允许使用+号连接两个字符串。
public class App {
public static void main(String[] args) {
String name1="yuanye";
String name2="xincun";
System.err.println(name1+name2); //yuanyexincun
}
}
3、不可变字符串
String类没有提供修改字符串中某个字符的方法。在java中实现修改字符串内容的方法,可以提取想要保留的子串,再与希望替换的字符拼接。
如:我想讲字符串内容“yuanyexicun” 改为“yuanyexiaohu”
String name="yuanyexincun";
String name=name.substring(0,6)+"xiaohu";
4、检测字符串是否相等
我们可以使用equals方法检测两个字符串是否相等。
语法如下:
str1.equals(str2)
解释:
如果字符串str1与字符串str2相等,则返回true,否则,返回false。str1和str2可以是字符串变量,也可以是字符串字面量。
要想检测两个字符串是否相等,而不区分大小写,可以使用equalsIgnoreCase方法。
语法如下:
“Xiaohu".equalsIgnoreCase("xiaohu")
解释:
最后该语句运行的结果为true,表示这两个字符串的内容是相等的。
注意事项:
一定不要使用==运算符检测两个字符串是否相等。这个运算符只能够确定两个字符串时会否存放在同一个位置上。如果字符串在同一个位置上,它们必然相等,但是完全有可能将内容相同的多个字符串副本放置在不同的位置上。
5、空串与Null串
空串“”是长度为0的字符串。可以调用以下代码检测一个字符串是否为空:
if (str.length()==0) 或者 if(str.equals(""))
空串是一个java对象,有自己的串长度(0)和内容(空)。 不过,string变量还可以存在一个特殊的值,名为null。表示目前没有任何对象与该变量关联。
6、码点与代码单元
java字符串由char值序列组成。最常用的Unicode字符使用一个代码单元就可以表示,而辅助字符需要一对代码单元表示。
length方法将返回采用utf-16编码表示给定字符串所需要的代码单元数量。
如:
String name="xiaohu";
int n=name.length(); //6
String类还有许多方法,这里不依次举例,需要的时候查找即可。
7、构建字符串
有时候,需要由较短的字符串构建字符串。使用字符串拼接的方式来达到这个目的,效率比较低,每次拼接字符串时,都会构建一个新的String对象。使用StringBuilder类就可以避免这个问题的发生。
语法如下:
首先构建一个空的字符串构建器:
StringBuilder builder = new StringBuilder();
当每次需要添加一部分内容时,就调用append方法。
builder.append(ch); //添加了一个单个字符
字符串构建完成时就调用toString方法,将可以得到一个String对象,其中包含了构建器中的字符序列。
String conpleteString=builder.toString();
六、输入与输出
为了增加后面示例程序的趣味性,需要程序能够接收输入,并适当地格式化程序输出。接下来,我们将学习使用基本的控制台来实现输入输出。
1、读取输入
前面已经看到,将输出打印到“标准输出流”(即控制台窗口)是一件非常容易得事情,只需要调用System.out.println即可。然而,读取“标准输入流”System.in就没有那么简单了。要想通过控制台进行输入,首先需要构造一个与“标准输入流” System.in关联的Scanner对象。
语法如下:
Scanner in= new Scanner(System.in)
实例如下:
import java.util.Scanner;
public class test {
public static void main(String[] args) {
try (Scanner in = new Scanner(System.in)) { // 使用 try-with-resources 提供自动关闭
System.out.print("请输入您的姓名:");
String name = in.nextLine();
System.out.println("您输入的姓名是:" + name);
}
}
}
解释:
nextLine方法将读取一行输入。 要想读取一个单词(以空白符作为分隔符),可以调用next()方法。
读取一个整数,就使用nextIntf()方法。
读取一个浮点数,就使用nextDouble()方法。
注意事项:
Scanner类定义在java.util包中,当使用的类不是定义在基本java.lang包中时,一定要使用import指令导入相应的包。
2、格式化输出
可以使用语句System.out.print(x)将数值x输出到控制台。这条命令将以x的类型所允许的最大非0数位个数打印输出x。
java5沿用了C语言函数库中的printf方法。格式化输出基本一致
如:
public class test {
public static void main(String[] args) {
float number=10.232f;
System.out.printf("%5.1f",number);
}
}
可是使用静态的String.format方法创建一个格式化的字符串,而不打印输出.
实例如下:
String message =String.format("Hello",%s. Next yeat, you'll be "%d",name,age)
七、控制流程
1、块作用域
块(即复合语句)是指若干条java语句组成的语句,并用一对大括号括起来。块确定了变量的作用域。一个块可以嵌套在另一个快中。但是不能在嵌套的两个块中声明同名的变量。
2、条件语句
和绝大多数程序设计语言一样,java常常希望在某个条件为真时执行多条语句。
条件语句的语法如下:、
if (条件) 执行语句
if(条件) 执行语句1 else 执行语句2
if(条件1) 执行语句1 else if(条件2) 执行语句2 else 执行语句3
注意:
else子句与最邻近的if构成一组。
3、循环
当条件为true时,while循环执行一条语句(也可以是一个块语句)。
一般语法如下:
while (条件) 执行语句;
还有一种while循环语法——先执行语句,再判断条件:
do 执行语句
while (条件)
4、确定循环
for循环语句是支持迭代的一种通用结构,由一个计数器或类似的变量控制迭代次数,每次迭代后这个变量将会更新。
具体实例如下:
for (int i=0;i<=10;i++)
System.out.println(i);
5、多重选择:switch语句
在处理多个选项时,使用if/else结构显得有些笨拙。java有一个与c/c++完全一样的seitch语句。
具体语法如下:
Switch( 变量)
{
case 1:
.....
break;
case 2:
.....
break;
default:
break;
}
解释:
Switch语句将从与选项值相匹配的case标签开始执行,直到遇到break语句,或者执行到switch语句的结束为止。如果没有相匹配的case标签,而有default子句,就执行这个子句。
6、中断控制流程的语句
break和continue,前者直接结束当前循环;后者结束本次循环,直接进入到下一次循环。
八、大数
如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中两个很有用的类:BigInteger和BigDecimal。这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现任意精度的整数运算,BigDecimal实现任意精度的浮点数运算。
注意:
大数不能使用人们熟悉的算符运算符(如:+和*)处理,而需要使用大数类中的add和mutiply方法。
具体实例:
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
BigInteger a=BigInteger.valueOf(100);
BigInteger b=BigInteger.valueOf(10);
BigInteger c=a.add(b);
System.out.println(c);
}
}
九、数组
数组存储相同类型值的序列。
1、声明数组
数组是一种数据结构,用来存储同一类型的集合。通过一个整型下标可以访问数组中的每一个值。
在声明数组变量时,需要指出数组类型(数据元素类型紧跟[])和数组变量的名字。
实例:
int [] a; //声明了一个整型数组a
不过,这条语句只声明了变量a,并没有将a初始化为一个真正的数组。应该使用new操作符创建数组。
实例如下:
int [] a= new int[100]; //这条语句声明并初始化了一个可以存储100个整数的数组
注意:
一旦创建了数组,就不能再改变它的长度(但是可以改变单个的数组元素)。
在java中,提供了一种创建数组对象并同时提供初始值的简写形式,
实例如下:
int[] number={1,2,3,5,6};
注意:
这个语法中不需要使用new,甚至不同指定长度。
2、访问数组元素
一旦创建了数组,就可以在数组中填入元素。
实例如下:
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
int[] number =new int[10];
for(int i=0;i<10;i++){
number[i]=i;
System.out.println(number[i]);
}
}
}
3、for each循环
java有一种功能很强的循环结构,可以用来依次处理数组(或其他元素集合)中的每个元素,而不必考虑指定下标值。
这种增强的for循环的语句格式为:
for (变量:集合表达式) 执行语句;
解释:
需要定义一个变量用于暂存集合中的每一个元素,并执行相应的语句(也可以是语句块)。collection这一集合表达式必须是一个数组或者是一个实现了Iterable接口的类对象(如ArrayList)。
具体事例如下:
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
int[] number =new int[10];
for(int i=0;i<10;i++){
number[i]=i;
}
for(int temp: number){
System.out.println(temp);
}
}
}
使用场景:不用遍历数组元素索引,直接打印数组元素。
4、数组拷贝
在java中,允许将一个数组变量拷贝到另一个数组变量。这时,两个变量将引用同一个数组。
如果希望将一个数组的所有值拷贝拷贝到一个新的数组中去,就要使用Arrays类的copyof方法。
语法如下:
int[] copiedLuckyNumbers= Arrays.copyOf(array1,array1.length);
解释:
第2个参数是新数组的长度,这个方法通常用来增加数组的大小。如果数组元素是数值型,那么额外的元素将被赋值为0;如果数组元素是布尔型,则将赋值为false。相反,如果长度小于原始数组的长度,则只拷贝前面的值。
具体实例:
import java.lang.reflect.Array;
import java.math.BigInteger;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] number =new int[10];
for(int i=0;i<10;i++){
number[i]=i;
}
int[] new_array=Arrays.copyOf(number, 5);
for (int i:new_array)
System.out.println(i);
}
}
5、命令行参数
前面已经看到一个java数组重复出现过很多次,每一个java应用程序都有一个带String arg[]参数的main方法。这个参数表明main方法将接收一个字符串数组,也就是命令行上指定的参数。
6、数组排序
要想对数值型数组进行排序,可以使用Arrays类中的sort方法。
具体实例:
import java.lang.reflect.Array;
import java.math.BigInteger;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] number=new int[10];
for (int i=0;i<10;i++)
number[i]=(int)(Math.random()*10); //random随机返回0~1之间的数,乘10将数字扩大十倍。
Arrays.sort(number);
for (int i:number)
System.out.println(i);
System.out.printf("当前数组的长度为:%d",number.length);
}
}
7、多维数组
多维数组将使用多个下标访问数组元素,它使用与表示表格或者更加复杂的排列形式。
java中二维数组的声明为:
double[][] example;
初始化语法为:
example=new double[row][col]
另外如果知道数组元素,就可以不调用new,而直接使用简写形式对多维数组进行初始化。
具体实例如下:
int[][] example=
{
{1,2,3,},
{4,5,6},
}
一旦数组初始化,就可以利用两个中括号访问各个元素。如:example[i][j]
相关文章:
java基础知识汇总
以下内容是学习《java核心技术卷1》的学习笔记 一、一个简单的java应用程序 public class App { public static void main(String[] args) { System.out.println("yuanyexiaolu"); } } 代码解释: 关键字public称为访问修饰符,这些修饰…...
2.点位管理|前后端如何交互——帝可得后台管理系统
目录 前言点位管理菜单模块1.需求说明2.库表设计3.生成基础代码0 .使用若依代码生成器最终目标1.创建点位管理2.添加数据字典3.配置代码生成信息4.下载代码并导入项目 4.优化菜单——点位管理1.优化区域管理2.增加点位数3. 合作商4.区域管理中添加查看详情功能5.合作商添加点位…...
Redis基础二(spring整合redis)
Springboot整合Redis 一、Springboot整合redis redis可以通过使用java代码来实现 第一部分文档中 在终端操作redis的所有命令,Spring已经帮我们封装了所有的操作,所以变得很简单了。 Spring专门提供了一个模块来进行这些操作的封装,这…...
JAVA开源项目 教学资源库系统 计算机毕业设计
本文项目编号 T 067 ,文末自助获取源码 \color{red}{T067,文末自助获取源码} T067,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析5.4 用例设计5.4.1 管…...
二分查找算法专题(2)
找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: 优选算法专题 对于二分查找算法不是很了解或者只了解一部分的小伙伴一定要去看下面这篇博客:二分查找算法的介绍与另外一种查找方…...
[Python] 编程入门:理解变量类型
文章目录 [toc] 整数常见操作 浮点数字符串字符串中混用引号问题字符串长度计算字符串拼接 布尔类型动态类型特性类型转换结语 收录专栏:[Python] 在编程中,变量是用于存储数据的容器,而不同的变量类型则用来存储不同种类的数据。Python 与 C…...
C(九)while循环 --- 军训匕首操情景
匕首操,oi~oi~oi~~~~~ 接下来的几篇推文,杰哥记录的是三大循环结构的运行流程及其变式。 本篇的主角是while循环。👉 目录: while循环 的组成、运行流程及其变式关键字break 和 continue 在while 循环中的作用while 循环的嵌套题目…...
C#秒如何转为时分秒格式
将秒数转换为分钟和秒数可以通过简单的数学运算来实现。假设你有一个整数表示秒数,可以通过以下方式转换为分钟: 将秒数除以 3600 来获取时钟的整数部分。 将秒数求余 3600的结果除以60 来获取分钟的整数部分。 用秒数求余 60 来获取余下的秒数。 具体实现函数如下: //…...
重学SpringBoot3-集成Redis(三)
更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(三) 1. 引入 Redis 依赖2. 配置 RedisCacheManager 及自定义过期策略2.1 示例代码:自定义过期策略 3. 配置…...
【Spine】引入PhotoshopToSpine脚本
引入 右键Photoshop图标,选择属性 打开文件所在位置 找到目录下的\Presets\Scripts文件夹。 找到Spine目录下的\scripts\photoshop文件夹下的PhotoshopToSpine.jsx 复制它,丢到Photoshop刚才找的那个目录下。 使用 打开.psd文件,检查不要…...
【Linux】详解Linux下的工具(内含yum指令和vim指令)
文章目录 前言1. Linux下软件安装的方式2. yum2.1 软件下载的小知识2.2 在自己的Linux系统下验证yum源的存在2.3 利用yum指令下载软件2.4 拓展yum源(针对于虚拟机用户) 3. vim编辑器3.1 vim是什么?3.2 如何打开vim3.2 vim各模式下的讲解3.2.1…...
MacBook 使用 brew 安装 MySQL
目录 (1)准备工作1.1 更新 brew (2)正式安装2.1 安装MySQL:2.2 启动mysql (3)初始化数据库3.1 选择验证密码组件3.2 密码强度3.3 删除匿名用户3.4 禁用root用户远程连接3.5 删除test数据库3.6 重…...
java中有两个list列表,尽量少的去循环
java中有两个list列表,一个list列表是paymentRecord,另外一个list是listApplyBase,paymentRecord中的lendCode字段值跟listApplyBase中的repaymentCode字段值是对应的,用stream流去循环paymentRecord列表,然后判断当pa…...
Java中的状态机实现:使用Spring State Machine管理复杂状态流转
在软件开发中,我们经常会遇到需要处理各种状态以及状态之间转换的场景。这些状态转换有时会变得非常复杂,特别是当涉及到多个状态,并且每个状态都有多个可能的触发事件导致不同的状态变化时。手动编写这样的逻辑不仅容易出错,而且…...
[Notes] Computer Network - Overwiew
What is the Internet? The Internet is a global network of interconnected computers that communicate using standard protocols (rules). It’s not a single entity but a network of networks that allows millions of devices worldwide to exchange data. In simp…...
MyBatisPlus——学习笔记
MyBatisPlus 一、导入依赖 <!-- MyBatisPlus --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.2</version></dependency><!-- MySql --><de…...
运维自动化shell脚本总结
运维自动化是提升IT管理效率的关键,使用Shell脚本可以有效地实现许多日常任务的自动化。以下是一些常见的Shell脚本应用及其总结,涵盖基本概念、实用示例和最佳实践。 1. Shell脚本基础 1.1 Shell脚本定义 Shell脚本是一系列命令的集合,通…...
前端学习第三天笔记 JavaScript JavaScript的引入 数据类型 运算符 条件语句 字符串
这里写自定义目录标题 JavaScriptJavaScript引入到文件嵌入到HTML文件中引入本地独立js文件引入网络来源文件 JavaScript的注释方式嵌入在HTML文件中的注释JavaScript的输出方式数据类型原始类型(基础类型)合成类型(复合类型) 运算…...
C++教程一口气讲完!(万字讲解)( ̄y▽ ̄)╭ Ohohoho... 下
C 常量 常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。 常量可以是任何的基本数据类型,可分为整型数字、浮点数字、字符、字符串和布尔值。 常量就像是常规的变量,只不过常量的值在定义后不能进行修改。 …...
unity软件安装教程
目录 一、Unity Hub的安装 二、Unity Hub的基础设置 语言切换 安装默认路径 安装unity编辑器和visual Studio 申请许可证 创建新项目 Unity和Visual Studio进行绑定 一、Unity Hub的安装 打开浏览器输入以下网址:unity.cn,打开unity官网 点击下载&#x…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能
指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...
Java并发编程实战 Day 11:并发设计模式
【Java并发编程实战 Day 11】并发设计模式 开篇 这是"Java并发编程实战"系列的第11天,今天我们聚焦于并发设计模式。并发设计模式是解决多线程环境下常见问题的经典解决方案,它们不仅提供了优雅的设计思路,还能显著提升系统的性能…...
算法250609 高精度
加法 #include<stdio.h> #include<iostream> #include<string.h> #include<math.h> #include<algorithm> using namespace std; char input1[205]; char input2[205]; int main(){while(scanf("%s%s",input1,input2)!EOF){int a[205]…...
