Java基础篇 —— 数据类型和运算符

一、数据类型部分
(一)赋值方法和数据类型的作用
(1)赋值方法 : 数据类型 变量名 = 值
(2)作用 :
1、确定正在内存中开辟空间大小
2、确定在内存中数据的存储格式
(二)数据类型
1、 基本数据类型(又称原发数据类型,在数据传递时以值传递方式进行)
1) 整数(使用二进制方法存储)
a、 byte 字节数据类型(在内存中占用一个字节空间,一个字节等于8个二进制位,二进制数据最左侧是正负符号,
取值范围-128~127包含0;
b、 short 短整型数据类型(在内存中占用两个字节空间)
c、 int 整数型数据类型(默认的整数数据类型,又称整型,在内存中占用四个字节空间)
d、 long 长整型(在内存中占用八个字节空间)
在变量中表达方法 long value=123.4l;在数字后面加上l(L的小写)即可表示为long类型,在命名变量时,不推荐使
用小写的L,可能会和数字1区分不清;
2) 小数(任意小数可以无条件接收任意整数)
a、 float 单精度小数(在内存中占用四个字节存储空间,精确到小数点后7位);
在变量中表达方法 float f=123.4f;在数字后面加上f即可表示为float类型
b、 double 双精度小数(在内存中占用八个字节存储空间,默认的小数数据类型,精确到小数点后14位)
3) 其他
a、 char 字符数据类型(在内存中占用两个字节存储空间,用单引号表示,只能表示一个字符,中英文皆可,转换成
为ascII值)
b、 boolean 布尔数据类型(在内存中占用八分之一的字节存储空间,内部值包含truce(真)和false(假),在内存
空间中,真和假用0和1表示)
2、复合数据类型(又称引用数据类型,在传递数据时,以传递内存地址的方式进行)
1)、类类型
java程序中的基本元素是类,有时候创建一些类时,需要引用某个类做具体模板(继承时),被引用的类就是类类型
例如在声明变量时的语法是:数据类型 变量名 = 值;这个数据类型就可以为类类型;
2)、接口
定义:也可以叫做协议接口,作用是用来制定标准的内部封装了一系列的最终变量和抽象方法,从抽象的级别上来分,
接口比抽象类更加的抽象
a、声明方法:
interface 接口名{
最终变量;(默认修饰词 public static final)
抽象方法;( 默认修饰词 public abstract)
}
注:JDK1.8版本以上支持static修饰方法,具体请参考JDK1.8新特性
b、 特征:1、接口当中不包含构造方法,不能被实例化
2、类与接口之间是实现关系,一个类可以同时实现多个接口,但是类只能继承一个抽象类
3、当一个类既存在继承关系又存在实现关系时,要先继承,后实现
3)、泛型
如果用Object 解决数据类型任意化的问题,会产生类型转换异常(ClassCastException), 为了解决数据类型任
意化的问题,可以使用泛型
a、 定义:
泛型值得是类型占位符,帮助开发人员解决类型任意化的问题
b、 使用时机
在设计程序时,无法确定该数据的类型时使用泛型
c、 泛型的使用
需要配合类或接口一起使用,不能单独使用
d、 语法标准(只要有数据类型,就可以用泛型占位,但必须先声明泛型,声明只能使用字母)
Class 类名/接口名<泛型标识符1,泛型标识符2…….>{ //<声明泛型标识符,可以有多个,用逗号隔开>
泛型标识符1 属性名;
Public 泛型标识符2 方法名(泛型标识符2 参数名){
语句体
}
}
使用支持泛型类的语法
类名<数据类型包装类> 对象名 = new 类名<数据类型包装类>();
4)、标注
没有具体使用过,不了解标注
5)、枚举
没有具体使用过,不了解标注,好像JDK1.7以后被取代了
6)、数组
a、定义:
是用来管理,海量的具有相同数据类型的,数据元素的集合(容器)
注:数据元素是数组中所存在的数据
b、使用方法
(一)声明数组
语法:
数据类型 变量名 [ ];
注:[ ]也可以写在变量名前;[ ]是数组专用标识符
(二)实例化/初始化
(1)、 语法:(实例化)
数据类型 变量名 [] = new 数据类型[长度];
注:1、长度是指数组的长度(数据元素的个数),使用连续的线性结构开辟空间,数组内部排序从0开始
2、连续的线性的方式开辟空间, 数组内部单个数据的查询语法:数组名[数组下标值]
(2)、语法(初始化):
初始化:由构造方法自动完成
数据类型 [] 变量名={值1,值2,值3,值。。。。。 }
(三)特点
(1)、只能存储相同数据类型的数据
(2)、数组一旦初始化后,长度固定,不可再发生改变(定长数组)
(3)、数组中的元素与元素之间,内存地址是连续的
二、运算符
(一)、算数运算符
根据操作数的个数分类(元:指的是操作数的个数)
a、 一元算术运算符: +(正号),-(符号),++(自增一运算符),–(自减一运算符)
例:自增算数运算符语法:变量名++或++变量名
自增一或自减一运算符的作用:将变量中原有的数据提取,实现加一或减一的操作之后,在放回到变量中去
例:a++和++a的区别
B=++a 执行过程(1、a=a+1 2、b=a )
B=a++ 执行过程(1、b=a 2、b=a+1)
自增或自减运算符两种表现形式,变量放在自增或自减运算符之前,那么就先使用变量中原有数据,然后在使用自增一
或自减一的操作如果变量在自增或自减运算符之后,那么先实现自增或自减一操作,然后在操作
b、 二元算数运算符:+ , - ,* ,/ ,%(取模运算符)
注:- ,*和数学领域意义相同
运算规则:
+:
规则:1、如果参与运算的两个操作数都是数值数据类型,+实现的是加法运算功能,所得结果是数值数据类型。
2、如果在实现加的运算过程中,至少有一个操作数是字符串操作类型,那么另一个操作数自动转换成字符串数据
类型,+变成连接符,实现的是字符串连接功能,所得到的结果也是字符串数据类型。(注:字符串原样输出)
/:(除法运算符)
规则:1、整数相除得整数(取结果整数部分)
2、小数相除得小数(只要操作数有一个是小数数据类型,得到的结果是小数数据类型)
%:(取模运算符)取运算结果的余数
语法:例:5%2=1(读作5模除以2等于1)
注:1、在取模运算中如果两个操作数都是整数,所得结果都是整数
2、如果至少有一个操作数为负整数,那么,先忽略掉符号,进行正整数取模运算,然后将左边操作数的符号,赋给最终结果
3、如果是小数 以a%b为例 公式: a%b=a-((int)(a/b)*b)
c、 三元算数运算符(实现的是简单的判断功能)
语法:表达式1 ?表达式2 :表达式3;
运算原理:先执行表达式1(必须能得到布尔数据类型),如果所得结果为真,则执行表达式2,反之,如果表达式1为假,则执行
表达式3
(二)、 其他运算符
a、 关系型运算符(表示两个表达式之间的关系):> , < , >= , <= ,==(等于),!=(不等于)
使用时机:当想要描述较为简单的条件时,就可以使用关系型运算符
关系型表达式:由关系型运算符连接起来的表达式称之为关系型表达式,返回结果要么 真(true),要么假(false)
b、 逻辑性运算符:!(逻辑非运算符)、&&(逻辑与运算符)、||(逻辑或运算符)
使用时机: 想要做较为复杂的条件判断时
逻辑性表达式:由逻辑性运算符连接的表达式,逻辑性表达式的两个操作数必须是布尔数据类型,或者是能够得到布尔值的表达式
&&使用时机: 左右两边的操作数都为真(true),该表达式的结果都为真(true),此时使用逻辑与运算符
|| 使用时机: 逻辑或运算符左右两边的操作数只要有一个为真,最终结果即为真,此时使用逻辑或运算符
! 使用时机: 想要对所得结果取反时,使用逻辑非运算符
逻辑性运算符优先级别(由高到低):(逻辑非,逻辑与,逻辑或)
短路运算符:逻辑与&&、逻辑或||
短路逻辑与&&使用时机:如果逻辑与运算符左侧表达式所得结果为假,那么右侧表达式不执行,最终结果既为假
短路逻辑或||的使用时机:如果逻辑或运算符左边表达式所得结果为真,则右边表达式不执行,最终结果即为真。
c、 位运算符
分类:a、按位运算
1)~ 按位取反运算符:对数据的每个二进制位取反(既1变成0,0变成1)
2)& 按位与运算符:就是要求有两个操作数如果两个相应位都为1则该位果为1,否则为0(支持基本 数据类型)
3)| 按位或:要求有两个操作数,只要相应位有一个数字为1,则该位结果为1,否则为0
4)^ 按位异或:相同为假,不同为真
运算原理:需要两个操作数,如果该操作数的相应位数据相同则该位结果为假(0),否则为真(1)。
补充个常用的知识点:
a b两个变量中的值不借助第三变量实现互换
a=a^b;
b=a^b;
a=a^b;
b、移位运算(高位舍弃,低位补0)
作用:就是对二进制的每一位进行移动的运算
(1) << 左移运算符
(2) >> 带有符号位的右移运算符
(3) >>> 不带有符号位的右移运算符
c、new (对对象进行实例化)
d、instanceof (返回值true或者false)
语法:对象名 instanceof 类名(注:类可以使父类下的子类)
作用:用来判断对象是否是从指定类中被实例化来的
(三)运算符优先级列表,优先级从高到低:
1、()
2、 + 正号 - 负号
3、 ++ 自增 – 自减 !非
4、 *乘 /除 %取模
5、 +加 -减
6、 << >> >>> 移位运算
7、> >= < <= 比较大小
8、== != 比较是否相等
9、 & 按位与(乘)
10、^ 按位异或(相同为假0,不同为真1)
11、| 按位或(加)
12、&&逻辑与
13、|| 逻辑或
14、三元运算
15、= 赋值

猜你喜欢

转载自blog.csdn.net/weixin_42321034/article/details/82631462