JAVA数据类型与运算符

目录:一.数据类型

           二.变量

           三 .运算符

一.数据类型

内置类型:

整数型:byte  short int  long

小数型:float  double

字符型:char

布尔类型:boolean

引用数据类型:这些类型定义的变量,都是存储地址的变量

String

数组

接口

...

String类型:

String str ="hello" ;   //没有所谓的‘\0’就是字符串的结尾这个说法

str 属于引用变量(变量里面存的是地址)

拼接: java当中的字符串 和 其他数据类型进行 + 就是拼接的意思

String str3 = str1+str2;

在有些情况下,需要将字符串和整形数字之间进行转换:

1. int 转成 String

int num = 10;

// 方法1

String str1 = num + "";

// 方法2

String str2 = String.valueOf(num);

2. String 转成 int

String str = "100";

int num = Integer.parseInt(str);

二.变量:

对于经常改变的内容,在Java程序中,称为变量。而数据类型就是用来定义不同种类变量的。

注:

1. java当中,不允许使用未初始化的局部变量(局部变量:定义在方法内部的变量)

 2.java当中,所有的类型定义的数据都是有符号的

 3.可以一行定义多个相同类型的变量

          例如: int a=10,b=20,c=30;

字符型变量:

注:1. java中的字符型可以存放整形

       2.java中使用单引号+单个字母的形式标识字符字面值

       3.计算机中的字符本质上是一个整数,在C语言中使用ASCll表示字符,而Java中使用Unicode            表示字符,因此一个字符占用两个字节,表示的字符种类更多,包括中文。

类型转换:

强制类型转换: a=(int)b; 弊端:当较大数据类型转换成较小数据类型,可能丢失内容

类型提升: 不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的。

整型提升:小于4字节的数据,会提升为4字节再运算

整形和浮点型的运算:

在Java中,int类型和float类型进行计算,得到的结果应该是float类型的。

这是因为在Java中,整数类型和浮点数类型是不同的数据类型,它们在内存中的表示方式也不同。

在进行计算时,Java会自动将整数类型转换为浮点数类型,然后进行计算,最终得到的结果也是浮点数类型。

如果需要将浮点数类型转换为整数类型,可以使用强制类型转换。

注:强制类型转换不一定成功,不相干的类型不能相互转换

操作符:

关系运算符: == , != , < , > , <= ,  >=

计算结果是 false ,true 

例如:int a=10,b=20 ;   System.ou.println(a==b);  //false

逻辑运算符: &&  || !

运算结果都是boolean类型

短路求值:

例如:  System.out.println(10>20&&10/0==0);  //打印false

            System.out.println(10<20  ||  10/0==0); //打印true

     解释: 计算10/0会抛出异常,但上面的代码可以正常执行,说明10/0并没有被计算

短路效应: 

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

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

注:& 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 && || 相比, 它们不支持短路求值.

例如:  System.out.println(10>20 & 10/0==0);  //抛出异常

            System.out.println(10<20  |  10/0==0); //抛出异常

位运算符:

&:按位与

| :按位或

~:按位反转

^:按位异或

注:当 & 和 | 的操作数为整数(int, short, long, byte) 的时候, 表示按位运算, 当操作数为 boolean 的时候, 表示逻辑运算.

位移运算:

<<左移:最左侧不要了,最右侧补0  

注:向左移位时,丢弃的是符号位,因此正数左移可能会变成负数

>>右移:最右侧不要了,最左侧补符号位(正数补0,负数补1)

<<<无符号右移:最右侧不要了,最左侧补0

注:

1. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.

2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.

3. 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替.

4. 移动负数位或者移位位数过大都没有意义.

条件运算符(只有一个):表达式1 ? 表达式2 : 表达式3

Java中唯一一个三目运算符,是条件判断语句的简化写法

注:1. 表达式2和表达式3的结果要是相同类型的,除非能够发生隐式类型转换

        例如: int a=10,b=20 ;  int c =a>b ? 1 : 2.0

       2. 表达式不能单独存在,其产生的结果必须要被使用

        例如: int a=10,b=20;  a>b?a:b ;   //报错

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值