Java标识符和运算符

Java标识符和运算符

任何一门程序设计语言都必须包括标识符,关键字,注释符等,它们是构成程序的基本元素,不同的语言所采用的符号标准有所不同。Java语言源代码采用的是被称为统一编码的Unicode字符集,它支持多种语言。将Unicode字符集中的字符按照一定的使用规则就可以构成Java语言的符号。

标识符
在Java语言中,用来为变量、类、数组或方法命名的有效字符序列称为标识符。标识符是用户自定义的名称来标识程序中的各类变量、类、数组或方法等。
命名规则如下:

  1. 只能由字母、下划线、数字和$符号组成,不能包含其他符号,例如空格以及#、%等特殊符号。
  2. 只能以字母下划线和$开头。
  3. 不能与关键字同名,即标识符内可以包含关键字,但不能与关键字一样。
  4. 严格区分大小写,但没有长度限制。
    此外,为便于理解,提高程序可读性,建议使用简短且能清楚表明意思的单词或拼音序列作为标识符。
    一些合法的标识符如下:
    Username, UserName, username,userName,ww_123, _teacher, student$
    一些非法的标识符如下:
    123student, a%,this

注意: Java 源代码使用的是Unicode码,Unicode 码用16位表示一个字符,其标准字符集里包含了65535个字符,比通常使用的ASCII码字符集大得多。Unicode 兼容了许多不同的字母表,包括常见语种的字母。英文字母、数字和标点符号在Unicode和ASCII字符集中有相同的值。因此,Java 可使用的字符不仅可以是英文字母等,也可以是汉字、朝鲜文、俄文、希腊字母以及其他许多语言中的文字。

关键字
Java的关键字(Key Word)又称保留字( Reserved Word),是在Java语言中被赋予了特定语法含义的一串字符,它不能用来作为标识符的变量、类、数组等命名,所有的Java关键字都是小写字母。将常用的一些关键字按照它们的作用讲行分举如下。
(1)基本数据类型:boolean、 byte、 char、 double、 float、 int、 long、 short。
(2)访问控制:private、 protected、 public
(3)程序控制:break、 continue、 return、 do、 while、 if、 else、 for、 instanceof、
switch、 case、default
(4) 变量、类、包、接口、方法的修饰:abstract.、 class 、 extends 、 final、 implements、 interface、 native、 new、 static、 synchronized、 transient、 volatile、 super、 this 、void、 import、 packageo
(5)异常处理:catch、 finally、 try、 throw、 throws
注意:Java中的true、false和null并不是关键字,但也不能把它们作为标识符使用。此外,goto、const是Java预留的关键字,目前尚未被使用。

运算符
运算符是一-类特殊的符号,专门用来实现不同数据类型的各种运算。Java语言提供了丰富的运算符,其中包括赋值运算符、算术运算符、关系运算符、逻辑运算符和位运算符等。

一个 常量或者一个变量可以看成是最简单的表达式。一般的表达式是指由运算符和操作数组合在一起的符合Java 语法规则的式子。根据运算符的不同,表达式主要有赋值表达式、算术表达式、关系表达式和逻辑表达式等。

运算符的种类:
算术运算符、位运算符、赋值运算符、关系运算符、逻辑运算符、三目运算符、类型相关运算符

  1. 1.算术运算符

作用:执行基础的四则运算
+ - * / % ++ –
取余运算(模运算):

//模运算(取余运算)
int a = 13;
int b = 3;
System.out.println(a % b);

自增运算符:++
作用:操作一个变量(单目运算符),以步长为1,将运算数的值进行自增
i++:先用后加:①将变量中的值取出,进行打印或四则运算(用)②对变量进行步长为1的自增③将自增完毕量重新赋值给变量
++i:先加后用:①对变量进行步长为1的自增②将自增完毕量重新赋值给变量③将变量中的值取出,进行打印或四则运算(用)

     int i1 = 0;
     System.out.println(i1++);
     System.out.println(i1);
     System.out.println("----------");
     int i2 = 0;
     System.out.println(++i2);
     System.out.println(i2);
     System.out.println("----------");
     int i3 = 0;
     int i4 = 0;
     System.out.println(i3++ + ++i3); //2:0 + 2
     System.out.println(++i4 + i4++); //2:1 + 1
     System.out.println("----------");
     System.out.println(i3); //2
     System.out.println(i4); //2

1.2 位运算符
作用:操作整数的2进制位
注意:Java的位运算符不适用于浮点值

(了解:)
二进制位的表示形式:
5:0000 0000 0000 0000 0000 0000 0000 0101 --> 12^0 + 02^1 + 1*2^2 = 1 + 0 + 4 = 5
9:0000 0000 0000 0000 0000 0000 0000 1001
二进制整数的表示码制:
二进制表示整数统一使用补码表示:
正整数:补码 == 源码
负整数:补码:去除正负位,得到绝对值位,将绝对值位:按位取反,末位加1
-5:0000 0000 0000 0000 0000 0000 0000 0101
取绝对值:1(000 0000 0000 0000 0000 0000 0000 0101)
按位取反:1(111 1111 1111 1111 1111 1111 1111 1010)
末尾加1:1(111 1111 1111 1111 1111 1111 1111 1011)
-5:1111 1111 1111 1111 1111 1111 1111 1011
二进制位负数求绝对值:
①忽略符号位
②将绝对值位:末尾减1,再取反
1(111 1111 1111 1111 1111 1111 1111 1011)
1(111 1111 1111 1111 1111 1111 1111 1010)
1(000 0000 0000 0000 0000 0000 0000 0101)

&:与运算
作用:全1为1,有0全0
5:0000 0101
9:0000 1001
&:0000 0001 = 1

|:或运算
作用:有1为1,全0为0
5:0000 0101
9:0000 1001
|:0000 1101 = 13

~:取反运算(单目运算符)
作用:01互换
5:0000 0101
~:1111 1010 = -6

^:异或运算
作用:相同为0,不同为1
5:0000 0101
9:0000 1001
^:0000 1100 = 12

>>:右移运算 作用:将2进制位向右进行移动,最右边的2进制位溢出,空位在左侧,用符号位补齐 现象:正整数向右位移1位,相当于除以1次2,右移运算不会改变运算数的符号
  5:0000 0101
>> 2:0000 0001

<<:左移运算
作用:将2进制位向左进行位移,最左边的2进制位溢出,空位在右侧,用0补齐
现象:正整数向左位移1位,相当于乘以1次2,左移运算有可能改变运算数的正负
5:0000 0101
<< 2:0001 0100

>>>:无符号右移运算
作用:将2进制位向右进行移动,最右边的2进制位溢出,空位在左侧,统一使用0补齐
现象:无符号右移得到的结果一定是正数
        5:0000 0101
>>> 1:0000 0010
       -5:1111 1011
>>> 1:0111 1101

1.3 赋值运算符
传统的赋值运算符只有一个:=
i1 += 5; : 在i1这个变量原值的基础上加上一个5,并将运算结果重新赋值回i1
+=:赋值运算符的扩展
+= -= *= /= %= &= |= ^= >>= <<= >>>=
赋值运算符扩展的规则:
①被扩展的运算符必须是双目运算符
②被扩展的运算符运算结果必须是数字

1.4 关系运算符
作用:用来表示两个数字类型晕算数的大小、等于等关系
< <= == != >= >

1.5 逻辑运算符
&:同真为真,一假全假
|:有真为真,全假为假
!:真假互换
^:相同为假,不同为真
&&:短路与:如果参与与运算的两个条件中,第一个条件就是假的,后序判断条件不执行
||:短路或:如果参与或运算的两个条件中,第一个条件就是真的,后序判断条件不执行

1.6 三目运算符
解释名词:运算符的目数:就是参与当前运算符运算的运算数个数
单目运算符:++ – ~ !
双目运算符:+ - * / % >> << >>> & && | || == != < <= > >=
三目运算符:?:
作用:实现最简单的条件分支:根据一个条件是否达成,判断返回哪个具体的值
使用公式:条件成立吗 ? 成立返回这个 : 不成立返回这个;
注意:三目运算符长得像表达式,但是这个东西本质上还是运算符,只要是运算符就需要一个结果变量接收其运算结果
练习题:
通过三目运算符的嵌套,实现对int型整数a和b的大小关系的判断:
要求:
a > b:返回“大于”字符串
a == b:返回“等于”字符串
a < b:返回“小于”字符串

    int a = 10;
    int b = 15;
    String resultStr = a > b ? "大于" : (a == b ? "等于" : "小于");
    System.out.println(resultStr);

1.7 运算符的结合性
结合性:一个运算符从哪边向哪边进行运算
大部分的运算符都是从左向右进行结合的

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值