**变量

变量的命名规则

基本命名法则

1.一个变量名只能包含数字, 字母, 下划线(语法上也允许使用中文/美元符($),但是 不建议使用);
2.数字不能开头
3. 变量名是大小写不同,即 Name和 name 是两个不同的变量.

*变量指的是程序运行时可变的量. 相当于开辟一块内存空间来保存

约定俗成

  1. 变量命名要具有描述性, 见名知意;
  2. 变量名最好不使用拼音;
  3. 变量名的词性推荐使用名词;
  4. 变量命名推荐小驼峰命名法, 当一个变量名由多个单词构成的时候, 除了第一个单词之外, 其他单词首字母都大写;例如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

在学习阶段,有错误谢谢指正哦!