变量和运算符(二)

定义变量

变量就是一切通过内存分配并赋值的量,分为不可变变量和可变变量

变:能保存一些可变的量,比如年龄,收入等

便: 方便,一次定义,“到处”(作用域内)使用

(1)过程

  • 定义 int i;

  • 赋值 i = 5; 定义和赋值可以一起 int i = 5;

  • 使用;

(2)定义变量的规则

  1. 变量名字里不能有空格。

  2. 避免使用关键字,class public int static

  3. 避免使用汉字,不要使用英文和拼音混着写

  4. 整体是驼峰命名,首字母小写 lowerCamelCase

  5. $和_可以到处使用,但是不建议当做开头

  6. 数字不能开头

3、基础数据类型的运算

(1)算术运算符

+  -  *  /   %    ++   --  

 i++--i 其实相当于 i = i+1;

int num1 = 12;
++num1;
System.out.println(num1);

结果是13
int num1 = 12;
num1++;
System.out.println(num1);

结果是13
int num1 = 12;
int num2 = num1++;
System.out.println(num2);

结果是:12
    先赋值后计算
int num1 = 12;
int num2 = ++num1;
System.out.println(num2);

结果是:13
    先计算后赋值

看看以下的代码:

byte num1 = 12;
long num2 = 13;
long num3 = num1 + num2;
int num1 = 12;
int num2 = 13;
int num3 = num1 + num2;
System.out.println(num3);

结论:

算术运算符,int以下的做运算,结果都是int类型,long和其他的类型做运算,结果是long。

++i 和 i++的区别

如果不赋值都是自增1

如果赋值,i++ 是 先把i赋值给其他变量,然后自增, ++i是先赋值再自增。

(2)逻辑运算符-真值表

逻辑运算的结果是布尔型 boolean 与 或 非

 与

条件1 condition1条件2 condition2结果
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse

条件1 condition1条件2 condition2结果
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse

条件1 condition1结果
truefalse
falsetrue

符号表示:   & | ! && ||

boolean flag1 = true;
		boolean flag2 = false;
		
		boolean flag3 = flag1 & flag2;
		boolean flag4 = flag1 | flag2;
		boolean flag5 = !flag1;
		
		
		int num1 = 12;
		int num2 = 15;
		boolean flag6 = num1 >= num2;
		boolean flag7 = num1 == num2;
		
		
		boolean flag8 = (num1 >= num2) & (num1 == num2);
		
		System.out.println(flag8);

短路运算符

&& 短路运算符 如果短路运算的结果是false,那么结果直接就是false, 不会继续运算后边的逻辑

|| 短路运算符 如果短路运算的结果是true,那么结果直接就是true, 不会继续运算后边的逻辑

看看以下代码:

byte num1 = 12;
byte num2 = 13;
byte num3 = num1 & num2;
byte num1 = 12;
long num2 = 13;
long num3 = num1 & num2;
char c1 = '1';
char c2 = '2';
char c3 = c1 & c1;
System.out.println('a');
System.out.println('a'+'b');

亦或

^ 相同为零 不同为1

 (3)赋值运算符号:  

+= -= *= /= =

i += 5 相当与 i = i + 5;

(4)三目运算符

条件 ? 结果1 : 结果2;

条件的结果一定是boolean ,只能是true或者false;

条件是可以复杂的

boolean condition1 = 5 > 3;
boolean condition2 = 5 > 3;
boolean condition3 = 5 > 3;
int num = (condition1 && (condition2 || condition3)) ? 1 : 2;

6)位移运算符

符号说明
<<左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0)
>>"有符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则在高位补1.
>>>"无符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数。采用0扩展机制,也就是说,无论值的正负

4、数据类型的转型

int类型的变量转long,怎么转,自动转。

int num1 = 152;
long num2 = num1;
System.out.println(num2);

 long类型的变量转int,怎么转,强转。

long num1 = 2345645645645464564L;
int num2 = (int)num1;
System.out.println(num2);

float类型转long

float num1 = 234545654654654564564564.4F;
long num2 = (long)num1;
System.out.println(num2);

long类型转float

long num1 = 2345645645645464564L;
float num2 = num1;
System.out.println(num2);

结论:

任何有精度缺失(有可能让两个数变成完全不一样的两个数)的转型都需要强转,jvm不给你负责。

取值范围大的转取值范围小的自动转,反之需要强转。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值