JavaSE学习-常量&变量&运算符

本文深入探讨了变量的分类及作用域,详细解释了常量、变量的概念,并全面覆盖了算术、逻辑、位运算符等多种运算符的使用场景与规则。
常量

常量就是一个固定不变的或是一个已知的具体的数据,例如:1、2、false等
常量分为整数、小数、布尔、字符串、字符五种类型,都是可以直接打印输出的

变量

就是计算机分配的一块存储地址,一块存储空间,通俗理解变量就是一个容器用来存东西的
(3) 变量的分类
a) 成员变量
1) 成员变量声明在类的结构体中,若没有赋值,则系统会根据数据类型分配默认值
2) 若是方法中需要时,可以直接使用成员变量。若方法有为静态方法时,成员变量需要有static修饰。
b) 局部变量
1) 直接声明在方法体的内部,必须初始化赋值,不存在默认值。
2) 若是局部变量和成员变量名字相同,方法体使用时优先使用体内局部变量(就近原则)
(4) 变量的作用域
a)作用域详解
1) 成员变量:在整个类中都可以使用
2) 局部变量:在局部的大括号中可以使用,外部或者不同区域的大括号中不可以使用
3) 使用的变量,必须声明在使用之前。
b)局部变量与成员变量区别
1) 量使用之前必须得有值
2) 成员变量系统会分配默认值(默认值意义不大)
3) 作用域范围不同
4) 成员变量的值,随着对象的存在而一直存在
5) 局部变量为了辅助方法完成功能而临时存在,方法使用完毕,局部变量生命周期结束

运算符

(1) 算数运算符
运算符符号:+ - * / %
例如:
0.0/0.0—>为NaN,任何的NaN都不等于自己
(2) 自增自减
1) 符号:++ –
2) 增自减只能够用于变量,不能用于常量
3) 增自减运算的优先级 比 算术运算符 高
4) a++ 和 ++a 的区别
a) 把整个表达式看成是一个整体。如果变量名在前面,那么整个表达式的值就是原来值不变。
b) 如果变量名在后面,那么整个表达式的值就是原来的值加1.
(3) 赋值运算符(掌握)
1) 符号:= += -= *= /= %=
2) 从右到左,把符号右边的值赋值到左边的变量中
3) 把五个分别看成是一个整体: 例如 += 看成是一个符号,不要看成两个;

 int i=3;
 i2;// 表示把2 累加到变量 i 中
 i -=1;
 i *=3;
 i /=3;
 i%=3;
 特例:
 short s = 3;
 s += 2;//存在隐式转换
 short  s = 3;
 s = s+2;//结果值是int,int不能自动转换为short

(4) 比较运算符
1) 比较运算符:(二元运算符)只能有两个参数参与运算,只能在相同类型之间进行比较,比较的结果为boolean类型
2) 符号: >= <= == != instanceof(比较类型只能用于引用数据类型)
(5) 逻辑运算符
1) 逻辑运算符:
& | && || ^ !
2) 逻辑运算符用于组合判断;如:10<20<30
3) 若两边得到的值是boolean类型就是逻辑运算
4) 逻辑运算符两边所得的值只能是Boolean类型
5) & 并且,若两边都是true则为true
6) | 或者,两边有一个为true则为true
7) && 并且,两边都为true则为true,若左边为false则直接为false不会计算右边(常用)
8) || 或者,其中一个为true则为true,若左边为true则不会计算右边,若左边为false则会计算右边
9) ^ 异或,同为true或同为false,结果都为false,一个true和一个false结果为true
10) ! 非,表示与当前条件取反
(6) 位运算符
1) 位运算就是:进制位的运算,二进制数据的运算
2) & | ^ ~ << >>>>>
3) 位运算就是 二进制的位进行运算。
示例:比如计算 125+176 ,从数学的角度是怎么计算的?
同理,位运算也类似,比如 3&4
4) 可以把1看成是true,把0看成是false
a) & :与 位运算,两边为1,结果为1
b) | :或 位运算,有一个为1,结果为1
c) ^ : 异或,两边不一样,就为1,否则为0
d) ~ : 取反,1变成0 ,0 变成1 ~(-5)结果4
e) << : 向左位移动,例如1<<3 结果8
f) >>: 向右位移动,例如8>>2
g) >>>: 无符号向右移动
(7) 三目运算符
1) 三目运算符(三元运算符,有三个参数参与运算):
2) A ? B : C(?和: 为固定写法)
3) A:为Boolean类型的值或者是一个表达式
4) B:值1
5) C:值2
6) 三目运算符根据A的结果来判断值为B或C
7) 若A=true;则值为B,反之为C(B和C值的类型一般相同,也可以不同)
注意: 不要受 ? 和 : 的干扰,它们只是一个固定语法格式而已

内容概要:本文围绕六自由度机械臂的人工神经网络(ANN)设计展开,重点研究了正向与逆向运动学求解、正向动力学控制以及基于拉格朗日-欧拉法推导逆向动力学方程,并通过Matlab代码实现相关算法。文章结合理论推导与仿真实践,利用人工神经网络对复杂的非线性关系进行建模与逼近,提升机械臂运动控制的精度与效率。同时涵盖了路径规划中的RRT算法与B样条优化方法,形成从运动学到动力学再到轨迹优化的完整技术链条。; 适合人群:具备一定机器人学、自动控制理论基础,熟悉Matlab编程,从事智能控制、机器人控制、运动学六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)建模等相关方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握机械臂正/逆运动学的数学建模与ANN求解方法;②理解拉格朗日-欧拉法在动力学建模中的应用;③实现基于神经网络的动力学补偿与高精度轨迹跟踪控制;④结合RRT与B样条完成平滑路径规划与优化。; 阅读建议:建议读者结合Matlab代码动手实践,先从运动学建模入手,逐步深入动力学分析与神经网络训练,注重理论推导与仿真实验的结合,以充分理解机械臂控制系统的设计流程与优化策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值