java变数运算_JavaSE (三)变量与运算符

2变量的使用

2.1按数据类型分类

public class VarTest2{

public static void main(String[] args){

//整型 byte short int long

byte b = 127; //表数范围 -128 ~ 127

long l = 123789L; //long类型常量后面需要加"l"或者"L",注意一般加大L

//浮点型 float double

float f = 12.3f; //float类型常量后面需要加"f"或"F"

double d = 12.9;

double d2 = .5; // .5 等于 0.5

//字符型 char

char c = 'a';

c = '中';

c = 'ふ';

c = '\n';

//c = 'ab'; //只能存放一个字符

c = '\u0096';

System.out.print("aaaaaaaaaaaa");

System.out.print(c);

System.out.print("bbbbbbbbbbbb");

//布尔型 :只有两个值 true 或 false

boolean boo = false;

System.out.println(boo);

System.out.println("-----------------------默认常量--------------------");

//java的整型常量默认为 int 型

byte n = 15; //底层对15进行了强制类型转换所以可以直接赋值

long n2 = 123564654654654564L;

//Java 的浮点型常量默认为double型

float num1 = 12.3f;

}

}

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))自动类型提升:小容量和大容量的变量作运算,用大容量的类型来接收数据。

public class VarTest3{

public static void main(String[] args){

//思考?两个不同的类型做运算,结果用什么接收。

short s = 123;

int a = 100;

a = a + s; //short和int做运算-使用int类型变量来接收

float f = 12.3f; //float - 4字节

long ll = 123L; //long - 8字节

f = f + ll;

System.out.println("--------------------------");

//注意 : byte short char三者之间做运算先提升为int类型

byte number = 100;

short number2 = 200;

int number3 = number + number2;

char c = 'a';

int aa = 1;

number3 = c + aa;

System.out.println(number3);

}

}

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

public class VarTest4{

public static void main(String[] args){

/*

强制类型可能会损失精度

*/

int a = 128;

byte b = (byte)a;

System.out.println(b);

double d = 12.5;

int a2 = (int)d;

System.out.println(a2);

System.out.println("---------------------------");

int a3 = 12;

byte b2 = (byte)a3;

System.out.println(b2);

System.out.println("---------------------------");

int a4 = 1000;

long ll2 = (long)a4;

System.out.println(ll2);

}

}

注意:

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

字符串的赋值方式:

public class VarTest5{

public static void main(String[] args){

//String类型的声明和赋值方式

String str = "hello java";

String str2 = new String("aaaa"); //这种方式先了解即可

System.out.println(str);

System.out.println(str2);

System.out.println("--------------------------------------");

int a = 10;

String str3 = str + a;

System.out.println(str3);

boolean boo = true;

String str4 = str + boo;

System.out.println(str4);

System.out.println("--------------------------------------------");

int number = 12;

char c = 'a';

String str5 = "cangjie";

System.out.println(str5 + number + c); // cangjie12a

System.out.println(number + c + str5); //109cangjie

System.out.println(str5 + (number + c)); //cangjie109

System.out.println(number + str5 + c); //12cangjiea

System.out.println("--------------------------------------------");

float ff = 12.5f;

String str11 = ff + "";

System.out.println(str11);

}

}

说明:

4、进制

4.1进制的表示

4.2二进制:

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

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

2、负数的

public class JinZhiTest{

public static void main(String[] args){

int a = 0B10;

a = 010;

a = 0x10;

System.out.println(a);

}

}

5、运算符

算术运算符

说明:前++后++前—后—的区别是什么?代码:

//除

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 : 表达式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);

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值