最近想重新巩固下JAVA基础,这是第一次写博客,希望各位读者多多指点,尽量两天一更一章节。
学习目标:
数据类型和运算符
学习内容:
1.标识符
①作用
•常量、变量、方法、类和包等的名称
②命名规则
•必须以字母、_下划线、美元符$开头。
•其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合
•大小写敏感,长度无限制。
•不可以是Java的关键字。
③注意
•Java不采用通常语言使用的ASCII字符集
•Java采用unicode这样的标准的国际字符集。
因此,这里的字母的含义:英文、汉字等等。(不建议大家使用汉字来定义标识符!)
④关键字/保留字
Java关键字是Java语言保留供内部使用的,如class用于定义类。关键字也可以称为保留字,它们的意思是一样的。
2.常量与变量
①常量变量定义
•在程序中存在大量的数据来代表程序的状态,其中有些数据在程序的运行过程中值会发生改变,有些数据在程序运行过程中值不能发生改变,这些数据在程序中分别被叫做变量和常量。
②Java是一种强类型语言,每个变量都必须声明其类型
•Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
•变量在使用前必须对其声明,只有在变量声明以后,才能为其分配相应长度的存储单元,声明格式为:
•typevarName[=value][{,varName[=value]}];
③注意事项:
•每个变量都有类型,类型可以是基本类型,也可以是引用类型。
•变量名必须是合法的标识符。
④示例:
•int age=18;
•age=20;
•String name=“小杨”;
3.数据类型
①Java基本数据类型
Java是一种强类型语言
•常量是有数据类型的
•变量都必须声明其数据类型
②整型常量
•十进制整数,如:10,-500,0
•八进制整数,要求以0开头,如:017
•十六进制数,要求0x或0X开头,如:0x15
③整型变量
整型常量默认为int型,声明long型常量可以后加‘l’或‘L‘(建议使用大写,小写容易误认为数字1),如:
•longa=55555555;//不出错,在Int表示的范围内(21亿内)。
•longb=55555555555;//不加l出错,已经超过int表示的范围。
④浮点型数据类型
浮点类型常量
•十进制数形式
例如:
•3.14314.00.314
浮点型变量
•float类型:单精度类型,尾数可以精确到7位有效数字,在很多情况下,float类型的精度很难满足需求。
•double类型:双精度类型精度是float类型的两倍,绝大部分应用程序都采用double类型。
•注意
•浮点常量默认为double。要变为float,需在后面增加F/f.如:3.14F
•浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要使用BigDecimal类。
⑤字符数据类型
•单引号用来表示字符常量。例如‘A’是一个字符,它与“A”是不同的,“A”表示含有一个字符的字符串。
•char类型用来表示在Unicode编码表中的字符。
•Unicode编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536个字符;ASCII码占1个字节,可允许有128个字符(最高位是0),是Unicode编码表中前128个字符。
•Java语言中还允许使用转义字符‘\’来将其后的字符转变为其它的含义,charc2='\n';//代表换行符•char类型在内存中存储的是该字符的Unicode编码值,所以char类型可以当做int类型来处理
⑥布尔数据类型
•boolean类型有两个值,true和false
•boolean类型用来判断逻辑条件,一般用于程序流程控制
•实践:
•请不要这样写:if(is==true&&done==false),只有新手才那么写。对于任何程序员if(whether&&!done)都不难理解吧。所以去掉所有的==fasle和==true。
⑦final常量
使用final修饰的变量,只能被初始化一次,变成了常量。
•final常量是有名称的
4.运算符
①运算符
•Java语言支持如下运算符:
•算术运算符:+,-,*,/,%,++,--
•赋值运算符=
•扩展赋值运算符:+=,-=,*=,/=
•关系运算符:>,<,>=,<=,==,!=
•逻辑运算符:&&,||,!•位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
•条件运算符?:
•相关概念辨析
•+运算符操作符Operator
•5+6表达式expression
•56操作数Operand
•intm=5+6;语句Sentence
②算术运算符
注意:
•1:/除6/4=16/4.0=1.5
•2:%取模(求余)6%4=2
•3:+6+‘a’=1036+“a“=6ª
•4:++a=2;b=++a+9;a=2;b=a+++9;
•+:字符串相加,只要有一个操作数是字符串,自动变为字符串相连
③二元运算符类型提升:
•整数运算:
•如果两个操作数有一个为Long,则结果也为long
•没有long时,结果为int。即使操作数全为shot,byte,结果也是int.
•浮点运算:
•如果两个操作数有一个为double,则结果为double.
•只有两个操作数都是float,则结果才为float.
•一元运算符(++,--):
•inta=3;
•intb=a++;//执行完后,b=3。先给b赋值,再自增。
•intc=++a;//执行完后,c=5。先自增,再给b赋值
④赋值运算符
•基本赋值运算符
•扩展赋值运算符
•算术运算符和赋值运算符结合
⑤关系运算符
•关系运算符用来进行比较运算
•关系运算的结果是布尔值:true/false
•注意
•区分==和=
•不等于是!=不是<>
⑥逻辑运算符
•逻辑运算符与布尔操作数一起使用,组成逻辑表达式
•逻辑表达式的结果是布尔值
•&和&&的区别
•“&”:无论任何情况,“&”两边的表达式都会参与计算。
•“&&”:当“&&”的左边为false,则将不会计算其右边的表达式。即左false则false
•“|”和“||”的区别与“&”和“&&”的区别类似。
⑦条件运算符
•语法格式
•x?y:z
•唯一的三目运算符
•执行过程
•其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值。
•经常用来代替简单的if-else判断!
⑧运算符的优先级
5.基本数据类型的类型转换
①基本数据类型之间的转换
•在赋值运算或算术运算时,要求数据类型相同,否则要进行类型转换
•转换方式:
•自动转换
•强制转换
•除boolean类型外,所有的基本数据类型因为各自的精度不同,赋值时都要考虑这个问题
•除boolean类型外,所有的基本数据类型包括:整型,浮点型,字符型。
•总结
•=右侧:所有变量先转换为字节数最多的数据类型,再计算
•=两侧:左侧宽度>右侧宽度自动转换
•左侧宽度<右侧宽度强制转换
•特例
•可以将整型常量直接赋值给byte,short,char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围
•shortb=12;//合法
•shortb=1234567;//非法
②赋值运算时的转换
下一期学习文章:
流程控制语句