变量与运算符

目录

 

1关键字与标识符

1.1 java关键字的使用

  1.2 保留字

1.3 标识符的使用

1.4 规则与规范

2 变量的使用

2.1按数据类型分类

2.2定义变量的格式:

2.3变量使用的注意点:

3变量间的运算

3.1基本数据类型间运算

3.2 String与基本数据类型(8种)间运算

4进制

4.1进制的表示

4.2二进制:

5运算符

算术运算符

赋值运算符

比较运算符(关系运算符)

逻辑运算符

位运算符

三元运算符

6数据的交换


1关键字与标识符

1.1 java关键字的使用

  • 定义:Java语言赋予了特殊含义,用做专门用途的字符串(单词)
    • 特点:关键字中所有字母都为小写

  1.2 保留字

现版本暂未使用,但以后的版本可能作为关键字进行使用

1.3 标识符的使用

标识符:凡是需要自己命名的地方都叫做标识符

1.4 规则与规范

  1. 定义合法标识符规则:
    • 26个英文字母大小写,0-9 _$ 组成  
    • 数字不可以开头。
    • 不可以使用关键字和保留字,但能包含关键字和保留字。
    • Java中严格区分大小写,长度无限制。
    • 标识符不能包含空格。
  2. Java中的名称命名规范:
    • 包名:多单词组成时所有字母都小写:xxxyyyzzz
    • 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
    • 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
    • 常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ

2 量的使用

2.1按数据类型分类

2.2定义变量的格式:

格式: 变量的类型  变量名 = 变量值

例:

//声明一个变量并赋值
		int number = 20;
		//声明一个变量
		int number2;
		//给变量赋值
		number2 = 30;
		System.out.println(number2);
		//变量可以被多次赋值后一次赋值覆盖前一次的值
		number2 = 50;
		//int number2 = 100; 编译错误 - 同一作用域内的变量名不可重复
		int a,b,c; //同时声明了三个变量
		a = b = c = 10; //同时给三个变量赋值
		int aa = 10,bb = 20,cc = 30;

2.3变量使用的注意点:

①先声明再使用

②作用域 :声明它的那对大括号内

③在同一个作用域中变量名不能相同

④变量可以被多次赋值,后一次赋值覆盖前一次的值

 

3变量间的运算

3.1基本数据型间运算

  一 基本数据类型之间的运算(7种 不包括(boolean))

  1. 自动类型提升:小容量和大容量的变量作运算,用大容量的类型来接收数据。

byte,short,char -> int -> long -> float -> double

     2.强制类型转换:自动类型提升的逆过程。

注意:①容量指是变量的表数范围

  ②byte,short,char三者之间做算先自提升为int类

 

3.2 String基本数据类型(8种)间运算

符串的赋值方式:

String str = “aaa”;

String s = new String(“bbb”);

明:

1.String与基本数据类型间只能做连接运算

2.String与基本数据类型做运算结果只能是String

4

4.1进制的表示

二进制:以0b或0B开头 。比如:0b10

八进制:以0开头.比如010

十六进制:以0x或0X开头。比如0x10

4.2二

①所有数字在计算机的底层都是以什么方式存在?进制

②计算机以什么样的形式保存所有的整数?

什么是原码,反码,补码?

1、正数的原码,反码,补码相同

2、负数的

  • 原码:直接将一个数值换成二进制数。最高位是符号位
  • 反码:除符号位外,将原码取反(0变1,1变0)
  • 补码:在反码的基础上加1

5运算符

算术运算符

说明:

  1. 前++后++前区别是什么?
  • 前++ :先自增1,后赋值
  • 后++ :先赋值,再自增1
  • 前-- :先自减1,后赋值
  • 后-- :先赋值,再自减1
  • 代码:

    	//除 
    		int number = 10;
    		int number2 = 4;
    		int number3 = number / number2; //2
    
    		double number4 = number / number2; //2.0
    
    		number4 = (number + 0.0) / number2; //2.5
    
    		number4 = (double)number / number2; //2.5
    
    		number4 = (double)(number / number2); //2.0
    
    //使用场景 : 判断是否可以整除。 比如  x % 5 == 0 如果条件满足那么就可以整除
    		System.out.println(0 % 2); //0
    		System.out.println(1 % 2); //1
    		System.out.println(2 % 2); //0
    		System.out.println(3 % 2); //1
    		System.out.println(4 % 2); //0
    		System.out.println(5 % 2); //1
    		System.out.println(6 % 2); //0
    
    		System.out.println("-------------------------------------------");
    		//思考?取模结果的正负和什么有关? 和被模数有关。被模数是正的结果就为正,被模数是负的结果就为负
    		System.out.println(-3 % 2); // -1
    		System.out.println(3 % -2); //1
    		System.out.println(-3 % -2); //-1

赋值运算符

相关面试题:

①编译不通过,因为short类型变量运算符时会先自动类型提升为int类型

②编译可以通过,不会改变原来的数据类型

 

比较运算符(关系运算符)

说明:结果都是boolean类型

 

逻辑运算符

说明:

1.逻辑与和短路与。当运算符的两边有一个为false结果就为false

 2.逻辑或和短路或。当运算符的两边有一个为true结果就为true

 3.逻辑非。取反。(如果a的值为true结果为false.如果a的值为false结果为true)

 4.逻辑异或。当运算符的两边值相同结果为false.两边的值不同结果为true

 

  特点 :

1.逻辑运算符是对boolean类型进行运算的

2.逻辑运算符的结果为boolean类型

 

位运算符

说明:

>> (右移):  在一定范围内,每向右移一位。原来的数除以2

<< (左移) : 在一定范围内,每向左移一位。原来的数乘以2

>> : 如果是正数最高位用0补,如果是负数最高位用1补

>>> (无符号右移) :

 

三元运算符

格式 : (条件表达式)?表达式1 : 表达式2

1.条件表达式的结果只能是boolean类型。如果结果为true返回的结果为表达式1.否则结果为表达式2.

2.三元素运算符可以嵌套使用,但是不建议。

3.表达式1和表达式2的类型要保持一致

    //需求?求三个数中的最大值
		int aa,bb,cc;
		aa = 10;
		bb = 20;
		cc = 30;
	
		int maxNumber = (aa > bb)? aa : bb;
		maxNumber = (maxNumber > cc)? maxNumber : cc;
		System.out.println(maxNumber);

代码 :

6数据的交换


public class Demo {         
public static void main(String[] args) {
	
	//方式一 : 
		/*
			优点:容易理解。基本数据类型和引用数据类型都可以采用如下方式
			缺点:多创建一个变量。占用了内存。
		*/
		
		int temp = a;
		a = b;
		b = temp;
		

		//方式二:
		
		/*优点 : 效率高
			缺点 :可能会造成精度损失(溢出),只能用于(基本数据类型)数值
		*/
		
		a = a + b; // a = (a + b)

        b = a - b; // b = (a + b) - b;

		a = a - b; // a = (a + b) - b(a);
		

		//方式三
		a = a ^ b; //a (k) = a ^ b
		b = a ^ b; //  k(a ^ b) ^ b
		a = a ^ b; // k(a ^ b(a)) ^ b
		System.out.println("a=" + a + " b=" + b);
	}

}

猜你喜欢

转载自blog.csdn.net/weixin_42405670/article/details/83035323