Java 标识符
Java的组成部分都需要名字,类名、变量名和方法名都被叫做标识符,使用标识符,应注意以下这些情况:
- 所有的标识符都由字母、数字、下划线_ 和 美元符$ 组成。
- 第一个字符不能是数字。(3num ,-num错误)(num2,$num,_num 正确)
像(_____)也是一个合法的标识符,但是不合理,所以要避免这种写法。 - 关键字不能用于标识符。
编写java程序时应注意下面:
- java 对大小写敏感,所以 Hello 和 hello 不同。
- 所有的类名应该采用大驼峰命名法,即每个单词的首字母大写,例如MyFirstJavaClass。
- 所有的方法名应该采用小驼峰命名法,也就是除了第一个单词的首字母不用大写,后面单词的首字母都要大写,例如 getMax。
- java 程序也是从 main 函数开始执行,其他方法可以放在 main 函数前,也可以放在 main 后,但是方法不能嵌套,也就是不能再方法里再写方法。
Java 基本数据类型
在 java 中固定的值成为常量,按类型又分为以下几种类型:
字符串常量:由双引号括起来的,例如:“HelloWorld”、“苹果”、“123”。
整型常量:整数,没有小数点。例如:123、-123。
浮点型常量:有小数点。例如:1.23。
字符常量:由单引号括起来的单个字符。例如:‘a’,‘1’。
布尔常量:只有 true 和 false。
java 里的基本数据类型分为四类:整型、浮点型、字符型和布尔型。
具体分为下面八种:
数据类型 | 关键字 | 占用内存 | 范围 |
---|---|---|---|
字节型 | byte | 1字节 | -128~127 |
短整型 | short | 2字节 | -32768~32767 |
整型 | int | 4字节 | -231~231-1 |
长整型 | long | 8字节 | -263 ~ 263-1 |
单精度浮点型 | float | 4字节 | 有范围,一般不关注 |
双精度浮点型 | double | 8字节 | 有范围,一般不关注 |
字符型 | char | 2字节 | 0~65535 |
布尔型 | boolean | 没有明确规定 | true 和 false |
注意在 java 中,char 是占两个字节,和 C 语言中不一样。
byte b=123;
short s=12345;
int i=213;
//用于比较大的数,后面可以用小写l或者大写L,但小写l和1很像,所以一般用L
long l=123L;
//浮点数默认为double型,所以后面需要加上f或者F,否则会报错
float f=4.0f;
double d=12.3;
char c='c';
char c1='中';
boolean bo=true;
如果超过了数据类型的有效范围,那么就会报错。例如:byte b=128; 就是错误的。
自动类型转换
整型、浮点型、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。转换从低到高。
byte, short, char -----> int -----> long -----> float -----> double
byte、 short 、char 在运算时会转换成 int 型在进行运算。
数据类型转化注意:
- 不能和 boolean 类型进行类型转换,也不存在像 C 语言中,0 表示false,非 0 表示true。
- 把容量大的类型转换成容量小的类型时,需要用强制类型转换。
//byte和short 转换成int
byte b=123;
short s=12345;
int i=b+s;
System.out.println(i); //12468
强制转换
数据范围大的数据类型转换成数据范围小的数据类型时就需要进行强制转换。
byte b;
short s=128;
b=(byte)s; //把short型强制转换成byte
浮点数转换成 int 型,是把小数点全舍弃,而不是进行四舍五入。
float f=3.14f;
double d=3.99;
System.out.println((int)f); //输出3
System.out.println((int)d); //输出3
Java 运算符
运算符就是数学当中的加+、减-、乘*、除/、等。java 中的运算符可以分为以下几种:
算数运算符,关系运算符、逻辑运算符、位运算符、移位运算符以及条件运算符等。
算数运算符
int a=12;
int b=5;
System.out.println(a+b); //17
System.out.println(a-b); //7
System.out.println(a*b); //60
System.out.println(a/b); //整数除整数,不会像数学中那样有小数位,结果为2
System.out.println((float) a/b); //如果需要小数位,可以先强转成浮点型,结果为2.4
System.out.println(a%b); //取模运算符,结果也就是a除以b后的余数,结果为2
在除法和取模运算中,右操作数不能为0。
增量运算符
+=、 -=、 *=、 %=。
运算完成后,会将结果赋给做操作数。
int a=5;
int b=5;
int c=5;
int d=15;
int e=10;
a+=1; //相当于a=a+1
b-=1; //相当于b=b-1
c*=2; //相当于c=c*2
d/=3; //相当于d=d/3
e%=3; //相当于e=e%3
System.out.println(a); //6
System.out.println(b); //4
System.out.println(c); //10
System.out.println(d); //5
System.out.println(e); //1
自增自减符
单独使用时:前置–和后置-- ,并无区别,都会使变量减一。
混合使用时:前置–就会先自减1,在使用变量的值,后置–会先使用变量的值,然后才会自减1。
int a=5;
int b=5;
//前置--和后置-- 单独使用时,并无区别,都会使变量减一,
a--;
--b;
System.out.println(a); //4
System.out.println(b); //4
//混合使用时,--在前时就会先减一,c变成4,在赋值给d
int c=5;
int d=--c;
//--在后时就会先使用c的值4,赋给f,然后c在减一变成3
int f=c--;
System.out.println(c); //3
System.out.println(d); //4
System.out.println(f); //4
关系运算符
java 中关系运算符主要有六个: 等于== 、 不等于!= 、小于< 、 大于> 、小于等于<= 、大于等于>= ,其计算结果是 true 或者 false 。
注意:==是等于,=是赋值。
int a=3;
int b=5;
System.out.println(a==b); //false
System.out.println(a>b); //false
System.out.println(a<b); //true
System.out.println(a>=b); //false
System.out.println(a<=b); //true
逻辑运算符
逻辑与 &&:表达式1 && 表达式2,表达式1和表达式2都为 true,运算结果才为true
逻辑或 ||:表达式1 || 表达式2,表达式1和表达式2当中只要有一个为true,那结果结尾true
逻辑非 !:! 表达式,真变假,假变真。
注意:
&& 中,表达式1 为false的话,表达式2是不会计算的。
|| 中,表达式1位true的话,表达式2也不会计算。
int a=3;
int b=5;
System.out.println(a>2&&b>2); //true
System.out.println(a<2&&b>2); //false
System.out.println(a>=2&&b<2); //false
System.out.println(a>5||b>2); //true
System.out.println(a>2||b>5); //true
位运算符
数据存储的最小单位是字节,一个字节是由8个二进制位组成。我们可以使用位运算符来操作二进制位。
按位与 &:两个数的二进制位都是1,结果就是1,否则是0。
按位或 |:两个数的二进制位只要有一个为1,结果就是1。
按位取反 ~:1变0,0变1。只有1个操作数。
按位异或 ^:两个二进制位相同为0,不相同为1。相同的两个数异或,结果为0,0异或其他数,结果不变;
int a=10;
int b=12;
System.out.println(a&b); //8
System.out.println(a|b); //14
System.out.println(~a); //-11,二进制位0变成1后,结果超过int的范围
System.out.println(a^b); //6
System.out.println(a^a); //0
System.out.println(a^0); //10
移位运算符
移位运算符有三个:<<、 >> 、>>> ,都是二元运算符,且都是按照二进制比特位来运算的。左移一位,相当于 × 2。右移一位,相当于 ÷ 2。
左移 <<:最左侧位不要了,最右侧补 0。
右移 >>:最右侧位不要了,最左侧补符号位(正数补0, 负数补1)
无符号右移 >>>:最右侧位不要了,最左侧补 0。没有无符号左移。
条件运算符
表达式1 ? 表达式2 : 表达式3
当表达式1 的值为 true 时,整个表达式的值为表达式2 的值。
当表达式1 的值为 false 时,整个表达式的值为表达式3 的值。
int a=10;
int b=12;
int c=8;
//可以找出a和c中较大值
System.out.println(a>c?a:c); //10
//找出a和b中较大值
System.out.println(a>b?a:b); //12
以上就是java中的运算符,运算符之间是有优先级的,我们可以在需要的地方添加括号,保证先运算即可。