中国网站建设公司/软文营销推广

中国网站建设公司,软文营销推广,三顿半vi设计,WordPress QQ 微运算符 1.隐式转换和强制转换 类型转换的分类 1.隐式转换: 取值范围小的数值 转换为 取值范围大的数值 2.强制转换: 取值范围大的数值 转换为 取值范围小的数值隐式转换的两种提升规则 取值范围小的,和取值范围大的进行运算,小的…

运算符

1.隐式转换和强制转换

 类型转换的分类
1.隐式转换:
取值范围小的数值 转换为 取值范围大的数值
2.强制转换:
取值范围大的数值 转换为 取值范围小的数值隐式转换的两种提升规则
取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算
byte short char 三种类型的数据在运算的时候,都会直接先提升为 int,然后再进行运算byte => intint => long => float => doubleshort => int
//        判断结果的数据类型:
//        byte b1 = 10;
//        byte b2 = 20;
//        result = b1 + b2;   // 数据类型 int
//
//        int i = 10;
//        long n = 100L;
//        double d = 20.0;
//        result = i + n + d;   // 数据类型 double
//
//        byte b = 10;
//        short s = 20;
//        long n = 100L;
//        result = b + s + n;   // 数据类型 long
强制转换
如果把一个取值范围大的数值,赋值给取值范围小的变量。是不允许直接赋值的。如果一定要这么做就需要加入强制转换。
格式:目标数据类型 变量名 =(目标数据类型) 被强转的数据;
        //        范例:double a = 12.3;int b = (int) a;byte b1 = 100;byte b2 = 100;byte result = (byte)(b1 + b2);System.out.println(result);// -56  结果就发生错误了 因为要转换的数据过大

2.字符串和字符的加操作

字符串的 “+” 操作
当 “+” 操作中出现字符串时,这个 “+” 是字符串连接符,而不是算术运算符了。会将前后的数据进行拼接,并产生一个新的字符串。
“123” + 123  结果为  “123123”
连续进行 “+” 操作时,从左到右逐个执行。
1 + 99 + “年黑马”  结果为  “100 年黑马”
// 当 字符+字符 或 字符+数字 时,会把字符通过 ASCII 码表查询到对应的数字再进行计算。System.out.println(1 + 'a'); //98System.out.println('a' + 'c'); //196System.out.println('a' + "abc"); //aabc

3.自增自减运算符

//        单独使用: ++ 和 -- 无论是放在变量的前边还是后边,单独写一行结果是一样的。
//        参与计算:
//        先用后加int a = 10;int b = a++;
//        先加后用int a = 10;int b = ++a;

4.赋值运算符和关系运算符

        赋值运算符符号      作用                    说明=          赋值         int a = 10,将 10 赋值给变量 a+=     加后赋值       a += b,将 a + b 的值给 a-=     减后赋值       a -= b,将 a - b 的值给 a*=     乘后赋值       a *= b,将 a × b 的值给 a/=     除后赋值       a /= b,将 a ÷ b 的商给 a%=     取余后赋值  a %= b,将 a ÷ b 的余数给 a关系运算符符号             说明==     a==b,判断 a 和 b 的值是否相等,成立为 true,不成立为 false!=     a!=b,判断 a 和 b 的值是否不相等,成立为 true,不成立为 false>      a>b,判断 a 是否大于 b,成立为 true,不成立为 false>=     a>=b,判断 a 是否大于等于 b,成立为 true,不成立为 false<      a<b,判断 a 是否小于 b,成立为 true,不成立为 false<=     a<=b,判断 a 是否小于等于 b,成立为 true,不成立为 false

5.四种逻辑运算符和两个短路逻辑运算符

        符号    作用         说明&        逻辑与(且) 并且,两边都为真,结果才是真|        逻辑或        或者,两边都为假,结果才是假^        逻辑异或       相同为 false,不同为 true!        逻辑非        取反&&   短路与        结果和 & 相同,但是有短路效果||   短路或        结果和 | 相同,但是有短路效果

6.三元运算符和运算符的优先级

        (三元运算符 / 三元表达式) 格式格式:关系表达式? 表达式1: 表达式2;
//        范例:求两个数的较大值int max = a > b ? a : b;System.out.println(a > b ? a : b);
        计算规则首先计算关系表达式的值如果值为 true,表达式 1 的值就是运算结果如果值为 false,表达式 2 的值就是运算结果小括号()的优先级最高

判断和循环

1.顺序结构

//    顺序结构语句是 Java 程序默认的执行流程,按照代码的先后顺序,从上到下依次执行System.out.println("努力做主人喜欢的事");System.out.println("大小姐驾到!统统闪开!");System.out.println("凛冬已至,故乡的梅花开了吗");System.out.println("心怀不惧,方能翱翔于天际");

2.分支结构if

   if格式if(关系表达式){语句体;}if 的注意点:大括号的开头可以另起一行书写,但是建议写在第一行的末尾在语句体中,如果只有一句代码,大括号可以省略不写如果对一个布尔类型的变量进行判断,不要用 == 号if (关系表达式) {语句体1;} else {语句体2;}执行流程:I. 首先计算关系表达式的值II. 如果关系表达式的值为 true 就执行语句体 1III. 如果关系表达式的值为 false 就执行语句体 2IV. 继续执行后面的其他语句if (关系表达式1) {语句体1;} else if (关系表达式2) {语句体2;}...else {语句体 n + 1;}执行流程:I. 首先计算关系表达式 1 的值II. 如果为 true 就执行语句体 1;如果为 false 就计算关系表达式 2 的值III. 如果为 true 就执行语句体 2;如果为 false 就计算关系表达式 3 的值IV. ……V. 如果所有关系表达式结果都为 false,就执行语句体 n+1

3.分支结构switch

        switch(表达式) {case 值1:语句体1;break;case 值2:语句体2;break;...default:语句体n+1;break;}执行流程:I. 首先计算表达式的值。II. 依次和 case 后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到 break 就会结束。III. 如果所有的 case 后面的值和表达式的值都不匹配,就会执行 default 里面的语句体,然后结束整个 switch 语句。default 的位置和省略位置:default 不一定是写在最下面的,我们可以写在任意位置。只不过习惯会写在最下面省略:default 可以省略,语法不会有问题,但是不建议省略。case 穿透就是语句体中没有写 break 导致的。执行流程:首先还是会拿着小括号中表达式的值跟下面每一个 case 进行匹配。如果匹配上了,就会执行对应的语句体,如果此时发现了 break,那么结束整个 switch 语句。如果没有发现 break,那么程序会继续执行下一个 case 的语句体,一直遇到 break 或者右大括号为止使用场景:如果多个 case 的语句体重复了,那么我们考虑利用 case 穿透去简化代码。
//        用箭头简写int number = 1;switch (number){case 1 -> {System.out.println("一");break;}case 2 -> {System.out.println("二");break;}case 3 -> {System.out.println("三");break;}default -> {System.out.println("没有这种选项");break;}}
//        省略大括号switch (number){case 1 -> System.out.println("一");case 2 -> System.out.println("二");case 3 -> System.out.println("三");default -> System.out.println("没有这种选项");}

4.循环语句for

        格式:for (初始化语句 ;条件判断语句 ;条件控制语句) {循环体语句;}执行流程:
① 执行初始化语句
② 执行条件判断语句,看其结果是 true 还是 false如果是 false,循环结束如果是 true,执行循环体语句
③ 执行条件控制语句
④ 回到②继续执行条件判断语句

5.循环语句while

    初始化语句;while(条件判断语句){循环体语句;条件控制语句;}for 和 while 的区别:for 循环中,控制循环的变量,因为归属 for 循环的语法结构中,在 for 循环结束后,就不能再次被访问到了while 循环中,控制循环的变量,对于 while 循环来说不归属其语法结构中,在 while 循环结束后,该变量还可以继续使用

循环高级综合练习

1.无限循环和跳转控制语句

//for格式的无限循环
for(;;){System.out.println("学习");
}
//while格式的无限循环
while(true){System.out.println("学习");
}
注意事项
无限循环的下面不能再写其他代码了,因为循环永远停不下来,那么下面的代码永远执行不到
//1.continue跳过某一次循环
for (int i = 1; i <= 5; i++) {if(i == 3){//结束本次循环,继续下次循环continue;}System.out.println("小老虎在吃第" + i + "个包子");
}
//2.结束整个循环
for (int i = 1; i <= 5; i++) {if(i == 3){//结束整个循环break;}System.out.println("小老虎在吃第" + i + "个包子");

数组

1.数组的概述和静态初始化

        数组:是一种容器,可以用来存储同种数据类型的多个值数组容器在存储数据的时候,需要结合隐式转换考虑格式一:数据类型 [] 数组名范例:int [] array格式二:数据类型 数组名 []范例:int array[]数组的初始化初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程。数组初始化的两种方式1.静态初始化2.动态初始化数组的静态初始化初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程完整格式:数据类型 [] 数组名 = new 数据类型 []{元素1,元素2,元素3...};范例:int [] array = new int []{11, 22, 33};范例:double [] array2 = new double []{11.1, 22.2, 33.3};简化格式:数据类型 [] 数组名 = {元素1,元素2,元素3...};范例:int [] array = {11, 22, 33};范例:double [] array2 = {11.1, 22.2, 33.3};
//需求1:定义数组存储5个学生的年龄int[] arr1 = new int[]{11,12,13,14,15};int[] arr2 = {11,12,13,14,15};//需求2:定义数组存储3个学生的姓名String[] arr3 = new String[]{"zhangsan","lisi","wangwu"};String[] arr4 = {"zhangsan","lisi","wangwu"};//需求3:定义数组存储4个学生的身高 1.93double[] arr5 = new double[]{1.93,1.75,1.73,1.81};double[] arr6 = {1.93,1.75,1.73,1.81};

2.数组的地址值和元素访问

double[] arr6 = {1.93,1.75,1.73,1.81};
System.out.println(arr6);//[D@23fc625e  地址值
扩展:
解释一下地址值的格式含义 [D@23fc625e
[ :表示当前是一个数组
D:表示当前数组里面的元素都是double类型的
@:表示一个间隔符号。(固定格式)
23fc625e:才是数组真正的地址值,(十六进制)平时我们习惯性的会把这个整体叫做数组的地址值
数组元素访问
格式:数组名[索引];
索引:也叫做下标,角标。
索引的特点:从 0 开始,逐个 + 1 增长,连续不间断利用索引对数组中的元素进行访问
1.获取数组里面的元素
格式: 数组名[索引]
int[] arr = {1,2,3,4,5};
//获取数组中的第一个元素
//其实就是0索引上对应的元素
int number = arr[0];
System.out.println(number);//1
//获取数组中1索引上对应的数据,并直接打印出来
System.out.println(arr[1]);//2//2.把数据存储到数组当中
//格式:  数组名[索引] = 具体数据/变量;
arr[0] = 100;
System.out.println(arr[0]);//100

3.数组的遍历

        int[] arr = {1,2,3,4,5};
在Java当中,关于数组的一个长度属性,length
调用方式:数组名.lengthSystem.out.println(arr.length);for (int i = 0; i < arr.length; i++) {//i: 0 1 2 3 4System.out.println(arr[i]);}扩展:
自动的快速生成数组的遍历方式
idea提供的
数组名.fori

4.数组的动态初始化和常见问题

        数组动态初始化动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。格式:数据类型[] 数组名 = new 数据类型[数组长度];范例:int[] arr = new int[3];
//在创建的时候,由我们自己指定数组的长度,由虚拟机给出默认的初始化值String[] arr = new String[50];
//添加学生arr[0] = "zhangsan";arr[1] = "lisi";
//获取System.out.println(arr[0]);//zhangsanSystem.out.println(arr[1]);//lisiSystem.out.println(arr[2]);//打印出来的是默认初始化值null
数组默认初始化值的规律
整数类型:默认初始化值0
小数类型:默认初始化值0.0
字符类型:默认初始化值'\u0000' 空格
布尔类型:默认初始化值 false
引用数据类型:默认初始化值 null
int[] arr2 = new int[3];
System.out.println(arr2[0]);//0
System.out.println(arr2[1]);//0
System.out.println(arr2[2]);//0
数组动态初始化和静态初始化的区别
动态初始化:手动指定数组长度,由系统给出默认初始化值。
只明确元素个数,不明确具体数值,推荐使用动态初始化
静态初始化:手动指定数组元素,系统会根据元素个数,计算出数组的长度。
需求中已经明确了要操作的具体数据,直接静态初始化即可。
数组常见问题当访问了数组中不存在的索引,就会引发索引越界异常。

5.数组的内存圈

Java 内存分配
栈:方法运行时使用的内存,比如 main 方法运行,进入方法栈中执行
堆:存储对象或者数组,new 来创建的,都存储在堆内存
方法区:存储可以运行的 class 文件
本地方法栈:JVM 在使用操作系统功能的时候使用,和我们开发无关
寄存器:给 CPU 使用,和我们开发无关

方法

1.什么是方法

        什么是方法?方法是程序中最小的执行单元实际开发中,什么时候用到方法?重复的代码、具有独立功能的代码可以抽取到方法中实际开发中,方法有什么好处?可以提高代码的复用性可以提高代码的可维护性

2.最简单的方法定义和调用

        方法定义格式public static void 方法名 (){方法体(就是打包起来的代码);}范例public static void playGame (){七个打印语句;}方法调用格式方法名();范例playGame();注意:方法必须先定义后调用,否则程序将报错
//定义一个方法
public static void playGame(){System.out.println("选人物");System.out.println("准备开局");System.out.println("对线");System.out.println("崩盘");System.out.println("骂队友");System.out.println("送人头");System.out.println("GG");
}
//调用方法
playGame();

3.带参数的方法定义和调用

        带参数的方法定义单个参数格式:public static void 方法名(参数){......}范例:public static void method(int number){......}多个参数格式:public static void 方法名(参数1, 参数2, ......){......}范例:public static void getSum(int number1, int number2){......}带参数的方法调用单个参数单个参数:方法名(参数);范例 1:method(10);范例 2:method(变量);多个参数多个参数:方法名(参数1, 参数2, ……);范例 1:getSum(10,20);范例 2:getSum(变量1, 变量2);
    public static void main(String[] args) {getSum(10,20);}public static void getSum(int num1, int num2){int result = num1 + num2;System.out.println(result);}
    形参和实参形参:全称形式参数,是指方法定义中的参数实参:全称实际参数,方法调用中的参数注意:方法调用时,形参和实参必须一一对应,否则程序将报错。

4.带返回值方法的定义和调用

        方法的返回值其实就是方法运行的最终结果如果在调用处要根据方法的结果,去编写另外一段代码逻辑为了在调用处拿到方法产生的结果,就需要定义带有返回值的方法带返回值方法定义格式public static 返回值类型 方法名(参数) {方法体;return 返回值;}范例public static int getSum(int a, int b) {int c = a + b;return c;}带返回值方法的调用直接调用:方法名 (实参);赋值调用:整数类型 变量名 = 方法名 (实参);输出调用:System.out.println (方法名 (实参));
        return 关键字方法没有返回值:可以省略不写。如果书写,表示结束方法方法有返回值:必须要写。表示结束方法和返回结果

5.方法的重载

        方法的重载在同一个类中,定义了多个同名的方法,这些同名的方法具有同种的功能。每个方法具有不同的参数类型或参数个数,这些同名的方法,就构成了重载关系简单记:同一个类中,方法名相同,参数不同的方法。与返回值无关。参数不同:个数不同、类型不同、顺序不同

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899613.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis-07.Redis常用命令-集合操作命令

一.集合操作命令 SADD key member1 [member2]&#xff1a; sadd set1 a b c d sadd set1 a 0表示没有添加成功&#xff0c;因为集合中已经有了这个元素了&#xff0c;因此无法重复添加。 SMEMBERS key: smembers set1 SCARD key&#xff1a; scard set1 SADD key member1 …

李飞飞、吴佳俊团队新作:FlowMo如何以零卷积、零对抗损失实现ImageNet重构新巅峰

目录 一、摘要 二、引言 三、相关工作 四、方法 基于扩散先前的离散标记化器利用广告 架构 阶段 1A&#xff1a;模式匹配预训练 阶段 1B&#xff1a;模式搜索后训练 采样 第二阶段&#xff1a;潜在生成建模 五、Coovally AI模型训练与应用平台 六、实验 主要结果 …

美观快速的react 的admin框架

系统特色&#xff1a; - &#x1f3a8; 精心设计的UI主题系统&#xff0c;提供优雅的配色方案和视觉体验 - &#x1f4e6; 丰富完整的组件库&#xff0c;包含大量开箱即用的高质量组件 - &#x1f528; 详尽的组件使用示例&#xff0c;降低开发者的学习成本 - &#x1f680…

【C++】 string底层封装的模拟实现

目录 前情提要Member functions —— 成员函数构造函数拷贝构造函数赋值运算符重载析构函数 Element access —— 元素访问Iterator —— 迭代器Capacity —— 容量sizecapacityclearemptyreserveresize Modifiers —— 修改器push_backappendoperator(char ch)operator(const …

计算机网络相关知识小结

计算机网络 1.计算机网络&#xff1a;独立计算机&#xff0c;通信线路连接&#xff0c;实现资源共享 2.组成&#xff1a;资源子网和通信子网 3.拓扑分类 4.范围&#xff1a;LAN, MAN. WAN 5、有线和无线 6.按照方向&#xff1a;单工、双工&#xff0c;全双工 7.传输对象方式&a…

16-CSS3新增选择器

知识目标 掌握属性选择器的使用掌握关系选择器的使用掌握结构化伪类选择器的使用掌握伪元素选择器的使用 如何减少文档内class属性和id属性的定义&#xff0c;使文档变得更加简洁&#xff1f; 可以通过属性选择器、关系选择器、结构化伪类选择器、伪元素选择器。 1. 属性选择…

【弹性计算】异构计算云服务和 AI 加速器(四):FPGA 虚拟化技术

《异构计算云服务和 AI 加速器》系列&#xff0c;共包含以下文章&#xff1a; 异构计算云服务和 AI 加速器&#xff08;一&#xff09;&#xff1a;功能特点异构计算云服务和 AI 加速器&#xff08;二&#xff09;&#xff1a;适用场景异构计算云服务和 AI 加速器&#xff08;…

鸿蒙harmonyOS:笔记 正则表达式

从给出的文本中&#xff0c;按照既定的相关规则&#xff0c;匹配出符合的数据&#xff0c;其中的规则就是正则表达式&#xff0c;使用正则表达式&#xff0c;可以使得我们用简洁的代码就能实现一定复杂的逻辑&#xff0c;比如判断一个邮箱账号是否符合正常的邮箱账号&#xff0…

[首发]烽火HG680-KD-海思MV320芯片-2+8G-安卓9.0-强刷卡刷固件包

烽火HG680-KD-海思MV320芯片-28G-安卓9.0-强刷卡刷固件包 U盘强刷刷机步骤&#xff1a; 1、强刷刷机&#xff0c;用一个usb2.0的8G以下U盘&#xff0c;fat32&#xff0c;2048块单分区格式化&#xff08;强刷对&#xff35;盘非常非常挑剔&#xff0c;usb2.0的4G U盘兼容的多&a…

大模型架构记录12【Agent实例-tool】

运行根目录下几个ipynb文件- Learn-Agent.ipynb- 学习《Custom agent 自定义代理》部分- v1-Create-Custom-Agent.ipynb- v2-Create-Custom-Agent.ipynb- 基于v1&#xff0c;新增一些职位描述&#xff08;JD&#xff09;信息- v3-Create-Custom-Agent.ipynb- 基于v2&#xff0c…

在MCU工程中优化CPU工作效率的几种方法

在嵌入式系统开发中&#xff0c;优化 CPU 工作效率对于提升系统性能、降低功耗、提高实时性至关重要。Keil 作为主流的嵌入式开发工具&#xff0c;提供了多种优化策略&#xff0c;包括 关键字使用、内存管理、字节对齐、算法优化 等。本文将从多个方面介绍如何在 Keil 工程中优…

Java开发者指南:深入理解HotStuff新型共识算法

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、全栈领域优质创作者、高级开发工程师、高级信息系统项目管理师、系统架构师&#xff0c;数学与应用数学专业&#xff0c;10年以上多种混合语言开发经验&#xff0c;从事DICOM医学影像开发领域多年&#xff0c;熟悉DICOM协议及…

opencv图像处理之指纹验证

一、简介 在当今数字化时代&#xff0c;生物识别技术作为一种安全、便捷的身份验证方式&#xff0c;正广泛应用于各个领域。指纹识别作为生物识别技术中的佼佼者&#xff0c;因其独特性和稳定性&#xff0c;成为了众多应用场景的首选。今天&#xff0c;我们就来深入探讨如何利…

【STM32】知识点介绍一:硬件知识

文章目录 一、电源引脚简介二、电平信号三、电路分析 一、电源引脚简介 VCC、GND、VDD和VSS是电子电路中常见的术语&#xff0c;代表着不同的电源引脚或电压。 VCC&#xff08;Voltage at the Common Collector&#xff09;&#xff1a;VCC是指集电极&#xff08;Collector&am…

什么是 SEO(搜索引擎优化)?

您有网站吗&#xff0c;或者您正在考虑创建一个网站&#xff1f;您想吸引更多人加入您的业务吗&#xff1f;如果答案是肯定的&#xff0c;那么毫无疑问&#xff1a;SEO 应该是您营销工作的一部分。这是建立品牌和吸引用户访问您的网站的好方法。但它实际上意味着什么呢&#xf…

鸿蒙HarmonyOS NEXT设备升级应用数据迁移流程

数据迁移是什么 什么是数据迁移&#xff0c;对用户来讲就是本地数据的迁移&#xff0c;终端设备从HarmonyOS 3.1 Release API 9及之前版本&#xff08;单框架&#xff09;迁移到HarmonyOS NEXT&#xff08;双框架&#xff09;后保证本地数据不丢失。例如&#xff0c;我在某APP…

【现代深度学习技术】现代卷积神经网络04:含并行连接的网络(GoogLeNet)

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上&#xff0c;结合当代大数据和大算力的发展而发展出来的。深度学习最重…

【ESP32】ESP32与MQTT通信:实现传感器数据监测与设备控制

ESP32与MQTT通信 1 项目概览2 硬件组成3 MQTT协议解析MQTT协议简介MQTT核心概念本项目中的MQTT应用 4 MQTT Broker选择EMQX Broker其他常用MQTT Broker 5 代码解析初始化与配置MQTT消息处理发布传感器数据 6 MQTT话题TOPIC设计7 EMQX的优势在IoT项目中的体现8 MQTT通信流程9 应…

每天一篇目标检测文献(六)——Part One

今天看的是《Object Detection with Deep Learning: A Review》 目录 一、摘要 1.1 原文 1.2 翻译 二、介绍 2.1 信息区域选择 2.2 特征提取 2.3 分类 三、深度学习的简要回顾 3.1 历史、诞生、衰落和繁荣 3.2 CNN架构和优势 一、摘要 1.1 原文 Due to object dete…

Arthas线上问题诊断器

Arthas是Alibaba开源的java诊断工具 解决问题 这个类从哪个jar 包加载的&#xff1f;为什么会报各种相关的Exception&#xff1f; 遇到问题无法在线上debug&#xff0c;不能直通过加载日志再重新发布 有什么办法可以监控到JVM的实时运行状态&#xff1f; …