(二)变量与运算符概括

本文详细介绍了Java编程中的变量、运算符和数据类型转换。讲解了变量的定义、命名规则及基本数据类型,包括整型、浮点型、字符型和布尔型。同时,讨论了字符串类型String以及变量的自动类型提升和强制类型转换。此外,还涵盖了算术运算符、比较运算符和逻辑运算符的使用,并举例说明了运算符的优先级。通过对这些基础知识的探讨,帮助读者深入理解Java编程的基础概念。
摘要由CSDN通过智能技术生成

变量与运算符

数据类型,常量,变量

常量

固定不变的值, 直接量(字面量) .

变量

变量的定义

顾明思义,是可以变化的量.其本质是一块内存空间,用来存放某一类型的常量

特征:
1.变量没有固定值,该区域的数据可以在同一类型变化
2.可以被重复使用
3.拥有名字,变量名
4.有属于自己的存储空间    
声明变量格式:
数据类型 变量名 = 初始值;
数据类型 变量名;

变量命名规则

  • 同一作用域内,变量名不能重复
  • 可以用数字,字母,下划线,$来命名,但是不能数字开头

变量命名规范

  • 满足驼峰法命名:classCount
  • 见名知意

基本数据类型的转换

数据类型分为:基本数据类型,引用数据类型

引用数据类型

  • 数组
  • 类 String等
  • 接口

基本数据类型

基本数据类型分别为:

整型:
byte(1字节) , short(2字节) , int(4字节) , long(8字节)
    1.long类型常量,要加L或者l
    2.整数类型默认为 int 类型  
小数类型:
float(单精度浮点型)(4字节) , double(双精度浮点型)(8字节)
    1.float类型精确到6-7位,double精确到15-162.float类型常量,要加F或者f
字符型:
char(2字节) : 'a' 单引号
布尔型:
boolean(1字节) :用于表示对错 true ,false

String 字符串类型

String name = "小罗";  //用双引号括起来

例子

//int类型  4字节
System.out.println(10);
//long类型 8字节
System.out.println(15L);
//float类型 4字节
System.out.println(3.14F);
//double类型 8字节
System.out.println(3.14);
//char类型  2字节
System.out.println('a');
//boolean类型 1字节
System.out.println(true);

注意:

float和double为浮点数,浮点数不精确,存在舍入误差

//float与double存在精度问题,不能做等于比较
 float  f2 = 3.1415926f;
 double f3 = 3.1415926;
 System.out.println(f2); //3.1415925  存在精度丢失 存小数点6~7位
 System.out.println(f3);//3.1415926  存小数点15~16位:0.11.0/10 不相等 **特别**不能做等于的比较

基本数据类型转换

  • 自动类型转换:范围小的数据类型直接转换为范围大的数据类型
  • 强制类型转换:范围大的数据类型强制转换为范围小的数据类型
自动类型转换
//自动类型转换(隐式)
 long num1 = 20;  //整数默认为int类型
 //long类型转换为float 类型
 float f = num1;
 System.out.println(f);  //20.0
 //float 转换为double类型
 double d = f;

注意:

//int类型能自动转换成float类型,一般选择double和int类型进行结合使用
//自动类型转换时,存在精度问题
int count = 2147483647;
float price = count; 
System.out.println(price); //2.14748365E9

//特殊情况:jvm内部优化,我们可以直接把int类型的常数赋值给byte,short,char
byte count1 = 15;
short count2 = 10;
char count3 = 97;

这里提及一下
    float4个字节为什么比long8个字节大?
    因为底层的实现方式不同
自动类型提升

数值会自动容纳提升到最大的数据类型

//在进行运算时,多种数据类型进行运算,最终会提升到最高的数据类型. 
double d1 = 55 + 3.14f + 3.14 + 88L;
System.out.println(d1);

char c = 'a'; //a对应的ASCII码为97
int c1 = c + 1;
System.out.println(c1);  //98
强制类型转换
//强制类型转换(显式)
//定义一个byte类型,一个int类型
        byte b1= 2;
        int  b2 = 5;    
/*byte b3 = b1+b2; //编译报错,因为b2是int类型,此时b1也是int类型,b3是byte类型  */
//强转byte类型
byte dd = (byte)(b1+b2);
System.out.println(dd);

例子:

//精度丢失的类型转换:把多余的小数点去掉.double类型强转int类型
int i = (int)3.14;
System.out.println(i); //3

//特殊情况:信息丢失的强制类型转换
short count7 = 300;
byte count8 = (byte)count;
System.out.println(count8); //44
//注意:如果运算过程中,类型不一致,自动进行强制类型转换
char c ='a';
c += 1;  //c = (char)(c+1) 作出了强制转换
System.out.println(c); //b

算术运算符

加减乘除,取模运算:

//定义a,b变量
int a = 12;
int b = 5;

//加减乘除
//加号可以进行加法运行,字符串拼接,正负号表示
System.out.println(a+b);//17
System.out.println(a-b);//7
System.out.println(a*b);//60
System.out.println(a/b);//整除  2

//取模(取余数)
System.out.println(12%5); // 2

//加号还可以进行字符串拼接
System.out.println(5+4+",祝你们99");

System.out.println(10/0); //报错,除数不能为0,ArithmeticException

自增和自减

  • 自增:++

  • 自减:–

    int a1= 10;
    int b1 = ++a1;  //先对a1进行+1,在运行结果
    System.out.println("a1="+a1+",b1="+b1); //a1=11,b1=11
    
    int a2 = 6;
    int b2 = a2++; //先进行运算,再加1
    System.out.println("a2="+a2+",b2="+b2);//a2=7,b2=6
    
    

赋值运算符

变量 = 表达式或者常量值

运算符运算规则范例结果
=赋值int a=5;5
+=加后赋值int a=5; a+=2;7
-=减后赋值int a=5; a-=2;3
*=乘后赋值int a=5; a*=2;10
/=整除后赋值int a=5; a/=2;2
%=取模后赋值int a=5; a%=2;1
a +=10 ;  //等于 a = a +10; 

int a3 = 7;
a3 += 10;  //a3 = a3+10 即 7+10=17
System.out.println(a3);  //17

比较运算符

比较运算符: == ,!=,<,>,>=.<=

比较常量与变量之间的大小关系,结果是布尔类型boolean

格式:

boolean  result  = 表达式A  比较运算符  表达式B;
//常量操作
System.out.println(10>2);  //true
System.out.println(10>=2); //true
System.out.println(10<5);//false
System.out.println(10<=5);//false
System.out.println(10==10);//true
System.out.println(10!=10);//false

//变量操作
int a = 10;
int b = 2;
boolean result = a > b;
System.out.println(result); //true

三元运算符

三元运算符:有三个元素参与表达式运算

数据类型 变量 = boolean表达式 ? 结果A : 结果B;
  • 为true,结果是A
    为false,结果是B

  • 结果A与结果B数据类型是相同

例子:

//需求:判断99是不是偶数
int a = 99;
String result = a % 2==0 ? "偶数" : "奇数";
System.out.println(result);

//需求:分页,55条数据,每页10条,一共多少页
int totalCount = 55;
int pageSize = 10;
int totalPage = totalCount % pageSize ==0 ?totalCount/pageSize :totalCount/pageSize+1;
System.out.println(totalPage);

逻辑运算符

运算符运算规则例子结果
&false & truefalse
|false | truetrue
^异或true^falsetrue
!非(取反)!truefalse
&&短路与false && truefalse
||短路或false || truetrue

例子:

  int a = 10;
  int b = 20;
  int c = 30;

          //与操作
System.out.println( (a>b) & (a>c));//false & false = false
System.out.println((a>b) & (a<c));//false & true   = false
System.out.println((a<b) & (a>c));//true & false   = false
System.out.println((a<b) & (a<c));//true & true    = true

        //或操作
System.out.println((a > b) | (a > c));// false | false  =false
System.out.println((a > b) | (a < c)); // false | true  =true

        //非操作
System.out.println((a > b)); // false
System.out.println(!(a > b)); // !false=true

        /*
         *&,|:无论左右真假,都得运行
         *&&:左边确认为真,右边继续执行 ,左边为假,右边不参与运行.
         *||:左边为真,右边不参与运行
         */

System.out.println(false & 1/0==1); //报错,右边执行了
System.out.println(false && 1/0==2); //不报错,右边没有执行

System.out.println(true | 1/0==1);  //报错,右边执行了
System.out.println(true || 1/0==1); //不报错,右边没有执行

运算符优先级

思维导图

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值