3.4.2 常量
关键字:常量:final 变量只能赋值一次,一旦赋值不能更改
类常量:static final 使得常量在一个类中的多个方法中使用,定义在main方法的外部,如果再加Public那么其他类方法也可以使用
3.5 运算符
整数被0除将产生异常,浮点数被0除则会得到无穷大或NaN结果
strictfy 采用严格的浮点计算,可能会造成浮点溢出。
3.5.1 自增自减运算
(关于一个c++的笑话)
3.5.2 关系与boolean
短路:&& ||
支持三元运算符:真->第一个表达式
3.5.3 位运算
位移分别为算术位移和逻辑位移。
逻辑位移:在位移运算符(>>和<<)之前的数是无符号数,编译产生的汇编指令是逻辑位移。
算术位移:在位移运算符之前的数是有符号数,编译产生的汇编指令是算术位移。
左移:两种位移都在右边补0。
右移:逻辑位移在左边补0,算术位移在左边补符号位。
采摘博客: 区别算术位移和逻辑位移 点击进入链接.
3.5.4数学函数、常量
sqrt println是对象,sqrt处理的不是对象,方法叫做静态方法
提示:不用在数学方法名和常量名前添加前缀“Math”,直接头文件上添加
import static java.lang.Math.*
如果希望得到一个完全可预测结果比运行速度重要使用,StrictMath
类,它能确保在所有平台得到相同结果。
想对浮点数进行舍入运算,可以使用Math.round的方法但是返回为long类型需要适当强制转换。避免信息丢失。
boolean类型不能强制类型转换但是可以使用条件表达式来进行 。
3.5.7运算符级别
&&的优先级比||高
java不适用逗号运算符
java 的基类和派生类
链接: 关于基类和派生类的相关知识.
继承调用的例子:
3.6字符串
String 类的substring方法可以从一个较大的字符串中提取一个子串,但是不包括又括号的位置。
但是这样就很容易计算子串的长度了
任何一个Java对象都可以转化成字符串
String没有提供修改字符串的方法,所以只能提取子串等然后再拼接
使用equals判断字符串相等吗可以是字符串也可以是常量
想要不分大小检测两个字符串是否相等使用:equalsIgnoreCase方法
“==”是判断是否放在同一位置上,必然相等
空串和null:长度和内容、这个对象为null
codePoinAt,查看代码点
3.6.9构建字符串
短字符串拼接:每次连接字符串就会创建一个新的String对象,使用StringBuilder类创建
StringBuilder builder=new StringBuilder(); 使用append(),追加
删除注意:StringBuilder delete(int starIndex,int endIndex) 删除的偏移量,范围到endIndex-1。
如果需要一个和构建器缓冲器内容一样的字符串使用函数:String toString()
3.7输入输出
System.in标准输入流
注意:nextLine()输入中可以包含空格
next()读取一个单词,是以空格分隔