发表时间:2022-03-25来源:网络
今日分享开始啦,请大家多多指教~
之前给大家已经讲述了注释,标识符,数据类型,类型转换,这几种基础知识点,今日给大家继续讲解Java剩余的基础知识点,其中包括类型转换,变量,常量,运算符等内容。话不多说,正文开始啦!
由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。
整型、实型(常量)、字符型数据可以混合运算。
运算中,不同类型的数据先转化为同一类型,然后进行运算。
转换从低级到高级(根据容量来看)。
1 低 ------------------------------------> 高
2
3 byte,short,char—> int —> long—> float —> double
数据类型转换必须满足如下规则:
不能对boolean类型进行类型转换。
不能把对象类型转换成不相关类的对象。
在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
转换过程中可能导致溢出或损失精度,例如:
1 int i =128;
2 byte b = (byte)i;
因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。
浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:
1 (int)23.7 == 23;
2 (int)-45.89f == -45
1、自动类型转换
自动类型转换:容量小的数据类型可以自动转换为容量大的数据类型。
例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。
【演示】

【解析:c1 的值为字符 a ,查 ASCII 码表可知对应的 int 类型值为 97, A 对应值为 65,所以i2=65+1=66。】
2、强制类型转换
强制类型转换,又被称为造型,用于显式的转换一个数值的类型.
在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。
强制类型转换的语法格式: (type)var ,运算符“()”中的type表示将值var想要转换成的目标数据类型。 条件是转换的数据类型必须是兼容的。
【演示】

当将一种类型强制转换成另一种类型,而又超出了目标类型的表示范围,就会被截断成为一个完全不同的值,溢出。

3、常见错误和问题
1. 操作比较大的数时,要留意是否溢出,尤其是整数操作时;
2. L和l 的问题:
不要命名名字为l的变量,long类型使用大写L不要用小写。

4、JDK7扩展
JDK7新特性: 二进制整数
由于我们在开发中也经常使用二进制整数,因此JDK7为我们直接提供了二进制整数的类型。
我们只要以:0b开头即可。
1 int a = 0b0101:
JDK7新特性:下划线分隔符
在实际开发和学习中,如果遇到特别长的数字,读懂它令人头疼!JDK7为我们提供了下划线分隔符,可以按照自己的习惯进行分割。
1 int b = 1_2234_5678;
我们很容易就知道这是1亿2234万5678啦! 非常符合国人的习惯!

1、变量(variable)
变量是什么:就是可以变化的量!
我们通过变量来操纵存储空间中的数据,变量就是指代这个存储空间!空间位置是确定的,但是里面放置什么值不确定! 打个比方:
这就好像我们家里有一个大衣柜,里面有十分多的小格子,我们给格子上贴上标签,放衣服,放鞋子,放手表等等,此时我们知道了哪里该放什么,但是,我们并不知道里面到底放的是什么牌子的鞋子,是衣服还是裤子。那个标签就相当于我们的变量,我们给他起了个名字,但是里面要放什么需要我们自己去放。
Java是一种强类型语言,每个变量都必须声明其类型。
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储单元,声明格式为:
1 type varName [=value] [{,varName[=value]}] ;
2 //数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型变量。
注意事项:
每个变量都有类型,类型可以是基本类型,也可以是引用类型。
变量名必须是合法的标识符。
变量声明是一条完整的语句,因此每一个声明都必须以分号结束
【演示】

【编码规范】
虽然可以在一行声明多个变量,但是不提倡这个风格,逐一声明每一个变量可以提高程序可读性。
2、变量作用域
变量根据作用域可划分为三种:
类变量(静态变量: static variable):独立于方法之外的变量,用 static 修饰。
实例变量(成员变量:member variable):独立于方法之外的变量,不过没有 static 修饰。
局部变量(lacal variable):类的方法中的变量。

局部变量
方法或语句块内部定义的变量。生命周期是从声明位置开始到”}”为止。
在使用前必须先声明和初始化(赋初值)。
局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

修改为:

实例变量
方法外部、类的内部定义的变量。
从属于对象,生命周期伴随对象始终。
如果不自行初始化,他会自动初始化成该类型的默认初始值(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false)

静态变量
使用static定义。
从属于类,生命周期伴随类始终,从类加载到卸载。(注:讲完内存分析后我们再深入!先放一放这个概念!)
如果不自行初始化,他会自动初始化成该类型的默认初始值(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false)

3、常量
常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
1 final 常量名=值;
2 final double PI=3.14; final String LOVE="hello";
常量名一般使用大写字符。
程序中使用常量可以提高代码的可维护性。例如,在项目开发时,我们需要指定用户的性别,此时可以定义一个常量 SEX,赋值为 "男",在需要指定用户性别的地方直接调用此常量即可,避免了由于用户的不规范赋值导致程序出错的情况。
4、变量的命名规范
1. 所有变量、方法、类名:见名知意
2. 类成员变量:首字母小写和驼峰原则 : monthSalary
3. 局部变量:首字母小写和驼峰原则
4. 常量:大写字母和下划线:MAX_VALUE
5. 类名:首字母大写和驼峰原则: Man, GoodMan
6. 方法名:首字母小写和驼峰原则: run(), runRun()
运算符operator
Java 语言支持如下运算符:
算术运算符: +,-,*,/,%,++,--
赋值运算符 =
关系运算符: >,=,>,> (了解!!!)
条件运算符 ?:
扩展赋值运算符:+=,-=,*=,/=
1、二元运算符
两个操作数,来看看我们小时候的数学运算;

整数运算
如果两个操作数有一个为Long, 则结果也为long
没有long时,结果为int。即使操作数全为shot,byte,结果也是int.

浮点运算
如果两个操作数有一个为double, 则结果为double.
只有两个操作数都是float, 则结果才为float.

关系运算符
返回布尔值!
2、取模运算
就是我们小学的取余; 5%3 余 2
其操作数可以为浮点数,一般使用整数。如:5.9%3.9=2.000000004
要点:
负数%负数=负数;
负数%正数=负数;
正数%负数=正数;

【注:一般都是正整数运算,进行结果的判断!】
3、一元运算符
自增(++)自减(--)运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算,而自增自减运算符是一个操作数,分为前缀和后缀两种。

注意:java中的乘幂处理

Math类提供了很多科学和工程计算需要的方法和常数。特殊的运算都需要运用到方法!
4、逻辑运算符
逻辑与:&&和&,逻辑或:||和|,逻辑非:!。
【演示】

逻辑与和逻辑或采用短路的方式。从左到右计算,如果确定值则不会再计算下去。在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。
逻辑与只要有一个为false, 则直接返回false.
逻辑或只要有一个为true, 则直接返回true;
【演示】

解析:
(&&) a
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14