初识Java—数据类型变量与运算符详解

目录

一、Java数据类型与变量

1、数据类型变量

2、数据类型转换

包装类

二、Java运算符

1、算术符

1.1 基本四则运算符:加减乘除模(+ - * / %

1.2 增量运算符 += -= *= %=

1.3 自增/自减运算符 ++ \ --

1.4 关系运算符

1.5 逻辑运算符

1.6 位运算符

1.7 条件运算符

1.8 移位运算符

这里准备一些复习知识点


一、Java数据类型与变量

1、数据类型变量

    数据类型包括基本数据类型引用数据类型。

     基本数据类型:整数类型、浮点类型、字符类型与布尔类型

  (1)整数类型:byte(1字节)、short(2字节)、int(4字节)、Long(8字节)

  (2)浮点类型:float(单精度浮点数,4字节)、double(双精度浮点数,8字节)

  (3)字符类型:char(2字节)

  (4)布尔类型:boolean("true"或"false")

注意点:  

  • 整型默认为int型,浮点型默认为double
  • 整型变量long的初始值后加L或者l,推荐加L
  • 浮点变量float的初始值后加F或者f,推荐加F
  • 布尔类型的变量boolean只有两种取值, true 表示真, false 表示假

2、数据类型转换

Java数据类型转换包括:自动类型转换和强制类型转换

(1)自动类型转换

  特点:数据范围小的转为数据范围大的时会自动进行

System.out.println(100);//整型默认为int
System.out.println(3.14);//浮点型默认为double


int a=100;
long b=10L;
b=a;//a和b都为整型,a的范围小于b的范围,编译器自动把a的类型提升为long赋给b
a=b;//编译报错,long类型比int类型范围大,有数据丢失不安全

float c=1.34F;
double d=2.56;
d=c;//float的范围小于double的范围,编译器自动把c的类型提升为double赋给d
c=d;//编译报错,double类型比float类型范围大,有数据丢失不安全

(2)强制类型转换

特点:

  • 当进行操作时,代码需要进过一定操作才能转换,强制类型转换不一定能成功
  • 不相干类型不能转换,例如:int不能与boolean进行强制类型转换
int a = 10;
long b = 100L;
b = a; // int-->long,数据范围由小到大,隐式转换
a = (int)b; // long-->int, 数据范围由大到小,需要强制转换,否则编译失败


float f = 3.14F;
double d = 5.12;
d = f; // float-->double,数据范围由小到大,隐式转换
f = (float)d; // double-->float,数据范围由大到小,需要强制转换,否则编译失败

a = d; // 报错,类型不兼容
a = (int)d; // int没有double表示的数据范围大,需要强转,小数点之后全部丢弃

boolean flag = true;
a = flag; // 编译失败:类型不兼容
flag = a; // 编译失败:类型不兼容

结论:

  1. 对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算
  2. 不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的。
  3. 不相干类型不能转换,例如:int不能与boolean进行强制类型转换

包装类

int的包装类型为 Integer ,char的包装类型为Character ,其他数据类型的包装类型为首字母大写


二、Java运算符

1、算术符

1.1 基本四则运算符:加减乘除模(+ - * / %

int a = 3;
int b = 2;
// 在数学中应该是1.5 但是在Java中输出结果为1 会向下取整,即小数点之后全部舍弃掉了
System.out.println(a / b);

// 如果要得到数学中的结果,可以使用如下方式
double d = a*1.0 / b;
System.out.println(d);

1.2 增量运算符 += -= *= %=

int a = 1;
a += 2; // 相当于 a = a + 2
System.out.println(a); // 输出3
a -= 1; // 相当于 a = a - 1
System.out.println(a); // 输出2
a *= 3; // 相当于 a = a * 3
System.out.println(a); // 输出6
a /= 3; // 相当于 a = a / 3

1.3 自增/自减运算符 ++ \ --

     (1) 如果单独使用,【前置++】和【后置++】没有任何区别
     (2)如果混合使用,【前置++】先+1,然后使用变量+1之后的值,【后置++】先使用变量原来的值,表达式 结束时给变量+1
            只有变量才能使用自增 /自减运算符,常量不能使用,因为常量不允许被修改

混合使用 口诀:

        ++在前,先自增 后赋值    (++在后,先赋值  后自增)

         --在前,先自减  后赋值

1.4 关系运算符

关系运算符主要有六个: ==  !=  <  >  <=  >= ,其计算结果是 true 或者 false 。
int a = 10;
int b = 20;
// 注意:在Java中 = 表示赋值,要与数学中的含义区分
// 在Java中 == 表示相等
System.out.println(a == b); // false
System.out.println(a != b); // true
System.out.println(a < b); // true
System.out.println(a > b); // false
System.out.println(a <= b); // true
System.out.println(a >= b); // false

1.5 逻辑运算符

逻辑运算符主要有三个: && || ! ,运算结果都是 boolean类型。
1.5.1    逻辑与 &&
语法规则:表达式1 && 表达式2,左右表达式必须是boolean类型的结果。
c34d1e47ec0a4559b32d9e1b49250868.png

1.5.2   逻辑 ||
语法规则:表达式1 || 表达式2,左右表达式必须是boolean类型的结果。
表达式1表达式2结果

1.5.3 逻辑非 !
语法规则:! 表达式
真变假,假变真。
表达式结果

特别注意点:

对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式.

对于 | | , 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式.

1.6 位运算符

1.6.1  按位与 &: 如果两个二进制位都是 1, 则结果为 1, 否则结果为 0
1.6.2  按位或 |: 如果两个二进制位都是 0, 则结果为 0, 否则结果为 1
1.6.3  按位取反 ~: 如果该位为 0 则转为 1, 如果该位为 1 则转为 0
1.6.3 按位异或 ^: 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1
异或举例
int a = 0x1;
int b = 0x2;
System.out.printf("%x\n", a ^ b);

注意点:&&为逻辑与,&为运算与,这两者不同含义,| | 也是同样道理

1.7 条件运算符

格式:(表达式1) ?( 表达式2) : (表达式3)
当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值;
当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值.
也是 Java 中唯一的一个 三目运算符, 是条件判断语句的简化写法.
// 求两个整数的最大值
int a=10;
int b=20;
int c= a>b ? 25 : 56;

1.8 移位运算符

<<(左移)、>>(带符号右移)和 >>>(无符号右移)

1、<<(左移)

m<<n 代表把数字m的二进制往左移n位

计算公式:m<<n在数字m无溢出的前提下乘以2的n次方

// 1乘以2的1次方
1<<1   // 2
// 1乘以2的5次方
1<<5   // 32

2、>>(带符号右移)

m>>n 代表把数字m的二进制往右移n位

计算公式:m>>n 代表把数字m除以2的n次方

// 1除以2的1次方
1>>1    // 0
// 1除以2的5次方
1>>5    // 0
// 10除以2的1次方
10>>1   // 5
// -10除以2的1次方
-10>>1   // -5

3、 >>>(无符号右移)

无符号右移运算符“>>>” - 同右移,但是结果全变正数。

把数字转换为二进制 然后进行右移一位 并变成正数


这里准备一些复习知识点

1、考察jvm知识点:JDK、JRE和JVM的关系?

JDK(Java Development Kit)是Java开发工具包,包含了JRE(Java Runtime Environment)和一些开发工具(如编译器、调试器等)。

JRE是Java运行环境,用于在计算机上运行Java程序。

JVM(Java Virtual Machine)是Java虚拟机,它是一个虚拟的计算机系统,负责解释和执行Java字节码。

JDK包含了JRE和JVM,开发人员可以使用JDK来编写、编译和运行Java程序。JRE包含了JVM,用于在计算机上运行Java程序。

JDK=JRE+开发工具集

JRE=JVM+JavaSE标准类库

3600a3d6137d4f9dbe022192beded07b.png

2、Java标识符的组成?

标识符由字母、数字、下划线和美元符号$组成,标识符开头不能是数字,不能是关键字

标识符规格详细见阿里巴巴Java开发手册

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值