**变量
变量的命名规则
基本命名法则
1.一个变量名只能包含数字, 字母, 下划线(语法上也允许使用中文/美元符($),但是 不建议使用);
2.数字不能开头;
3. 变量名是大小写不同,即 Name和 name 是两个不同的变量.
*变量指的是程序运行时可变的量. 相当于开辟一块内存空间来保存
约定俗成
- 变量命名要具有描述性, 见名知意;
- 变量名最好不使用拼音;
- 变量名的词性推荐使用名词;
- 变量命名推荐小驼峰命名法, 当一个变量名由多个单词构成的时候, 除了第一个单词之外, 其他单词首字母都大写;例如max和maxValue.
变量的作用域
变量的作用域规定了变量所能使用的范围,只有在作用域范围内变量才能被使用。根据变量声明地点的不同,变量的作用域也不同。根据作用域的不同,一般将变量分为不同的类型:类变量、局部变量、方法参数变量及异常处理参数变量。
1.局部变量是指在方法或者方法代码块中定义的变量,其作用域是其所在的代码块;
class Test {
public static void main(String[] args) {
{
int a = 8;
System.out.println(a); // 编译通过;
}
System.out.println(a); // 编译失败, 找不到变量a
2.类变量也称为成员变量,声明在类中,不属于任何一个方法,作用域是整个类;
3.方法参数变量的作用域是整个方法;
4.异常处理参数变量的作用域是在异常处理块中,该变量是将异常处理参数传递给异常处理块,与方法参数变量类似。
变量基本类型
1.整型(int):4字节
数据范围:-2^31-2^31-1,即 -21亿到21亿
//语法格式
int 变量名 = 初始值;
//代码示例
int num = 10;
2.长整型(long):8字节
数据范围: -2^63 -> 2^63-1
//语法格式
short 变量名 = 初始值;
//代码示例
short value = 0L;
3.短整型(short):2字节
数据范围:-2^15->2^15-1,即 -32768 -> +32767
//语法格式
short 变量名 = 初始值;
//代码示例
short value = 0;
4.字节型(byte):1字节
数据范围: -127-> 128
//语法格式
byte 变量名 = 初始值;
//代码示例
byte value = 0;
5.单精度浮点型(float):4字节
//语法格式
float 变量名 = 初始值;
//代码示例
float num =1.0F;
6.双精度浮点型(double):8字节
用到浮点数都优先考虑 double, 不太推荐float
//语法格式
double 变量名 = 初始值;
//代码示例
double num = 1.0;
7.布尔型(boolean):1比特位或1字节
boolean 类型的变量只有两种取值, true(1) 表示真, false (0)表示假. Java 的 boolean 类型和其他类型不能相互转换
//语法格式
boolean 变量名 = 初始值;
//代码示例
boolean value = true;
8.字符型(char):2字节
//语法格式
char 变量名 = '初始值';
//代码示例
char ch ='a';
Java中字符种类很多,包括中文
char ch = '小';
System.out.println(ch);
执行 javac 的时候可能出现错误,此时在执行 javac 时加上 -encoding UTF-8 ,即javac -encoding UTF-8 Test.java
** String 不是基本类型, 而是引用类型!**
//语法格式
String 变量名 = "初始值“;
//示例
String name = "zhangsan";
**运算符
算术运算符
基本四则运算符(+、-、*、/、%)
- / (除法)
int a = 3;
int b = 2;
System.out.println(a / b); //输出1
float a = 3.0;
int b = 2;
System.out.println(a / b); //输出1.5
int a = 3;
float b = 2.0;
System.out.println(a / b); //输出1.5
int a = 3;
int b = 2;
System.out.println(float a / b); //输出1.5
0不能作为除数
- % (取余)
double a = 6.5;
int b = 2;
System.out.println(a % b);//输出0.5
增量赋值运算符 (+= 、-=、 *=、 /= 、%=)
int a = 10;
a *= 3; // 等价于 a = a * 3,其余相同
System.out.println(a);
自增/自减运算符( ++ 、–)
不管是前置++,还是后置++,都是先将变量的值加1,然后参与运算。二者之间真正的区别是:前置++是将变量的值加1,使用增值后的变量进行运算的,而后置++是先将变量赋值给一个临时变量,接下来对变量的值加1,然后使用那个临时变量进行运算。–同理
- 前置++和后置++举例
public static void main (String[] args){
int i = 3;
int j = 20*i++;
System.out.println(j); //输出60
}
public static void main (String[] args){
int i = 3;
int j = 20*++i;
System.out.println(j); //输出80
}
逻辑运算符(==、 !=、 <、 >、 <= 、>=)
关系运算符的表达式返回值都是 boolean 类型.
int a = 4;
int b = 2;
System.out.println(a == b);
System.out.println(a != b);
System.out.println(a < b);
System.out.println(a > b);
System.out.println(a <= b);
System.out.println(a >= b);
逻辑运算符(&&、 || 、!)
逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是 boolean .
&& :如果左侧表达式值为 false, 则表达式的整体的值一定是 false, 无需计算右侧表达式.
|| : 如果左侧表达式值为 true, 则表达式的整体的值一定是 true, 无需计算右侧表达式.
位运算符(&、 | 、~ 、^)
- 按位与 &: 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0.
int a = 10;
int b = 20;
System.out.println(a & b); //01010和10100按位与00000输出0
- 按位或 |: 如果两个二进制位都是 0, 则结果为 0, 否则结果为 1.
int a = 10;
int b = 20;
System.out.println(a | b); //01010和10100按位或11110输出30
- 按位取反 ~: 如果该位为 0 则转为 1, 如果该位为 1 则转为 0
int a = 0xa; //十六进制
System.out.printf("%x\n", ~a);//输出fffffff5
- 按位异或 ^: 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1.
int a = 10;
int b = 20;
System.out.printf("%x\n", a ^ b);//01010和10100按位异或11110输出1e即30
移位运算符(<<、>>、>>>)
左移 <<: 最左侧位不要了, 最右侧补 0.
右移 >>: 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)
无符号右移 >>>: 最右侧位不要了, 最左侧补 0.
条件运算符(三目运算符)
表达式1 ? 表达式2 : 表达式3
当表达式1 的值为真时, 整个表达式的值为表达式2 的值; 当表达式1的值为假时, 整个表达式的值为表达式3的值.
int a = 66;
int b = 88;
int max = a>b?a:b; //输出88
在学习阶段,有错误谢谢指正哦!