Java学习篇3-数据类型和运算符

来源:互联网 发布:苹果手机连不起4g网络 编辑:程序博客网 时间:2024/06/05 16:46

Java语言是强类型语言。
强类型包含:所有的变量必须先声明、后使用;指定类型的变量只能接受类型与之匹配的值。
1.注释
单行注释:将双斜杠(//)放在需要注释的内容之前;
多行注释:使用//将程序中需要注释的内容包括起来。
文档注释:编写Java源码时添加了合适的文档注释,通过JDK提供的javadoc工具可以直接将源码里的文档注释提取成一份系统API文档。文档注释以斜线后紧跟两个星号(/*)开始,以星号后紧跟一个谢贤(/)结束。
javadoc命令基本用法如下:
javadoc 选项 Java源文件|包
Java源文件支持通配符,javadoc选项常用选型如下:
-d:指定一个路径,用于将生成的API文档放到指定目录下;
-windowtitle:指定一个字符串,用于设置API文档的浏览器窗口标题。
-doctitle:该选项指定一个HTML格式的文本,用于指定概述页面的标题(只有对处于多个包下的文件来生成的APD文档时,才有概述页面)
-header:指定一个HTML格式的文本,包含每个页面的页眉。
2.标识符和关键字
a.分号
Java语言用分号(;)作为语句的分隔,每个Java语句必须使用分号作为结尾。允许一行书写多个语句,每个语句之间以分号隔开即可;一个语句也可以跨多行,只要在最后结束的地方使用分号结束即可。但一个字符串、变量名不能跨越多行。
b.花括号
用于定义一个代码块。
c.方括号
用于访问数组元素。
d.圆括号
e.空格
f.圆点
3.标识符规则
标识符必须以字母、下划线(_)、美元符(线)。此处的字母并不局限于26个英文字母,而且可以包含中文字符,日文字符等。

标识符可以由字母、数字、下划线(_),和美元符(Java),不能包含@、#等其他特殊字符。
4.关键字
Java所有关键字都是小写
Java关键字
保留字:Java现在还未使用,但可能在未来的Java版本中使用(goto和const).
Java基本类型
byte:一个byte类型整数在内存里占8位,表数范围是:-128(-2^7)~127(2^7-1).
short:一个short类型整数在内存里占16位,表数范围是:-32768(-2^15)~32767(2^15-1).
int:一个int类型证书在内存占32位。
long:一个long类型证书在内存中占64位。
如果直接将一个较小的整数值(在byte或short类型的表数范围内)赋给一个bute或short变量,系统会自动把这个整数值当成byte或者short类型来处理。
如果使用一个巨大的整数值(超出了int类型的表数范围)时,Java不会自动把这个整数值当成long类型来处理。如果希望系统把一个整数值当成long类型来处理,应在这个整数值后增加l或者L作为后缀。
补码计算规则:正数的补码和原码完全相同,负数的补码是其反码加1;反码是对原码按位取反,只是最高位(符号位)保持不变。
5.字符型
字符型通常用于表示单个的字符,字符型值必须使用单引号(’)括起来。Java语言使用16位的Unicode字符集作为编码方式,而Unicode被设计成支持世界上所有书面语言的字符,因此Java程序支持各种语言的字符。
字符型值表示形式:
a.直接通过单个字符来指定字符型值,如’A’,’9’和’0’等。
b.通过转义字符表示特殊字符型值,例如’\n’,’\t’等。
c.直接使用Unicode值来表示字符型值,格式是’\uXXXX’,其中XXXX代表一个十六进制的整数。
Java语言中常用的转移字符
字符型值采用十六进制编码方式表示,范围是’\u0000’~’\uFFFF’,一共可以表示65536个字符,其中前256个(是’\u0000’~’\u00FF’)字符和ACSII码字符完全重合。
char类型的值也可直接作为整形值来使用,它相当于一个16位的无符号整数,表数范围是0~65535.
Java没有提供表示字符串的基本数据类型,而是通过String类来表示字符串,由于字符串由多个字符组成,因此字符串要使用双引号括起来。
6.浮点型
Java语言的浮点类型默认是double类型,浮点数值后跟f或者F,Java会把浮点类型值当成float类型。Java提供和三个特殊浮点数值:正无穷大、负无穷大和非数,用于表示溢出和出错。正无穷大通过Double或Float类的POSITIVE_INFINITY表示;负无穷大通过Double或Float类的NEGATIVE_INFINITY表示,非数通过Double或Float类的NaN表示。所有的正无穷大数值都是相等的,所有的负无穷大数值都是相等的,而NaN不与任何数值相等,甚至和NaN都不相等。
数值中使用下划线分隔:程序员可以在数值中使用下划线,不管是整型数值还是浮点型数值,都可以自由的使用下划线。通过使用下划线分隔,可以更直观的分辨数值中到底包含多少位。
7.布尔型
布尔型只有一个boolean类型,boolean类型的数值只能是ture或false,不能用0或者非0来代表。其他基本数据类型的值也不能转换成boolean类型。
字符串“true”和“false”不会直接转换成boolean类型类型,但如果使用一个boolean类型的值和字符串进行连接运算,则boolean类型的值将会自动转换成字符串。
8.自动类型转换
Java 所有的数值类型变量都可以相互转换。
自动类型转换:把某种基本类型的值直接赋给另一个基本类型的变量。把一个表数范围小的数值或变量直接赋给另一个表数范围大的变量时,系统可以进行自动类型转换;否则需要强制转换。
自动类型转换图
当把任何基本类型的值和字符串值进行连接运算时,基本类型的值将自动类型转换为字符串类型。如果希望把基本类型的值转换为对应的字符串时,可以把基本类型的值和一个空字符串进行连接。
9.强制类型转换
强制类型转换语法:(targetType)value,强制类型转换的运算符时圆括号.
当一个算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升。
表达式类型的自动提升规则:所有的byte类型、short类型和char类型将被提升到int类型;整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型。
10.直接量
直接量是指在程序中通过源代码直接给出的值。
直接量的类型
不是所有的数据了型都可以指定直接量,能指定直接量的通常只有三种类型:基本类型,字符串类型和null类型。
Java支持具体8中类型的直接量:
int类型:在程序中直接给出的整形数值,分为二进制、十进制、八进制、十六进制4中。
long类型:在整形数值后添加l或者L后变成long类型的直接量。
float类型:在一个浮点数后添加f或者F就变成float类型的直接量。
double类型:直接给出一个标准小数形式或者科学计数法形式的浮点数就是double类型的直接量。
boolean类型:只有true和false。
char类型:char类型的直接量有三种形式,分别时用单引号括起来的字符、转移字符和Unicode值表示的字符。
String类型直接量:一个用双引号括起来的字符序列就是String类型的直接量。
null类型:只有一个值null.可以赋值给任何引用类型变量,用以标识这个引用类型变量中保存的地址为空,即还未指向 任何有效对象。
直接量赋值
把一个直接量赋值给对应类型的变量;也允许把一个数值直接量直接赋值给另一个类型的变量,之中赋值必须是系统所支持的自动类型转换。String类型的直接量不能赋给其他类型变量,null类型直接量可以赋值给任何引用类型的变量,包括String类型。boolean类型的直接量只能赋给boolean类型的变量,不能赋给其他任何类型的变量。
常量池(constant pool):指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。它包括关于类、方法
接口中的常量,也包括字符串直接量。
Java会确保每个字符串常量只有一个,不会产生多个副本。当一个字符串由多个字符串常量连接而成时,它本身也是字符串常量。
11.运算符
Java运算符:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、类型相关运算符
算术运算符:
除法运算符(/)的两个操作数都是整数类型,则计算结果也是整数,将自然除法的结果截断取整。如果除法运算符的两个操作数有一个是浮点数或两个都是浮点数,则计算结果也是浮点数。
求余运算符(%)的结果不一定总是整数,它的计算结果是使用第一个操作数除以第二个操作数,得到整除的结果后剩下的值就是余数。求余运算也需要进行除法运算,因此如果求余运算的两个操作数都是整数类型,则求余运算的第二个操作数不能是0,否则将引发除以零异常。如果求余匀速uan的两个操作数中有一个或者两个都是浮点数,则允许第二个操作数是0或0.0,只是求余运算的结果是非数:NaN。0或0.0对零以外的任何数求余都得到0或0.0.
右移运算符:>>和>>>

:把第一个操作数的二进制码右移指定位数后,左边空出来的位以原来的符号位填充,即如果第一个ie操作数原来是正数,则左边补0,如果第一个操作数是负数,则左边补1.

:是无符号右移运算符,它把第一个操作数的二进制码右移指定位数后,左边空出来的位总是以0填充。
移位运算遵循原则:
1. 对于低于int(如byte,short和char)的操作数总是先自动类型转换为int类型后再移位。
2. 对于int类型的整数移位a>>b,当b>>32时,系统先用b对32求余(因为int类型只有32位),得到的结果才是真正移位的位数。
3. 对于long类型的整数移位a>>>b,当b>64时,总是先用b对64求余(因为long类型是64位),得到的结果才是真正移位的位数。
==:如果进行比较的两个操作都是数值类型,即使它们的数据类型不相同,只要它们的值相等,也都将返回true。如果两个操作数都是引用类型,那么只有当两个引用变量的类型具有父子关系时才可以比较,而且这两个引用必须指向同一个对象才会返回true。也支持两个boolean类型值进行比较。
!=:如果进行比较的两个操作数都是数值类型,无论它们的数据类型是否相同,只要他们的值不相等,也都将返回true。如果两个操作数都是引用类ixng,只有当两个引用变量的类型具有父子关系时才可以比较,只要两个引用指向的不是同一个对象就会返回true。
&:不短路与,作用与&&相同,但不会短路。
|:不短路或,作用与||相同,但不会短路。

原创粉丝点击