《java核心技术》读书笔记(三)第三章 java基本的程序设计结构(2)

来源:互联网 发布:宋承宪刘亦菲分手知乎 编辑:程序博客网 时间:2024/04/28 01:09

继续看第三章,接下来就是运算符了。

java的运算符和大部分的语言运算符基本一致,分为算术运算符+、-、*、/;自增运算符++;自减运算符--;关系运算符==、<、>、<=、>=、!=;表示逻辑的&&、||、!;位运算符&、|、^、~;移位运算符 >>、<<、>>>(高位填充0后右移)。其中需要注意的是>>>运算符,不存在<<<运算符!

这些运算符存在着不同的优先级别,在没有括号的时候,系统会按照优先级的先后顺序依次进行计算。

 

优先级顺序如下:

[]     ()(方法调用)  !  ~  ++  --  +(一元运算)  -(一元运算)  ()(强制类型转换)  new    *  /  %  +  -  <<  >>  >>>  <  <=  >  >=  instanceof  ==    !=  &  ^  |  &&  ||  ?:  =  +=  -=  *=  /=  %=  &=  |=  ^=  <<=  >>=  >>>=

 

当我们进行更复杂的运算时,比如说平方,幂运算,三角函数运算等,就需要用到一些数学运算函数了,在java中这些函数在Math类中提供!

 

在计算中需要不同数据类型的数据同时运算时,我们需要类型之间的转换,转换的优先级别是:double、float、long、int。

当需要进行强制转换的时候,方法是在需转换变量前的圆括号内给出想要转换的目标类型。

如:   double  x = 9.9997;

         int nx = (int) x;

注意:如果强制转换的数据超出了目标类型的表示范围时,结果会截断成一个完全不同的值。尽量不要出现,结果近乎不可预知。同时尽量不要将布尔值强制转换,防止发生错误。

 

当我们需要处理字符串的时候,发现java没有字符串类型。java是通过在标准java类库中提供了一个预定义的类String。这样每个字符串都将是String类的一个实例。

 

需要注意的是java字符串处理的一些性质。

1、可以使用“+”运算符将两个字符串拼接起来。

2、字符串不可变,也就是我们不可能将一个字符串的某一位进行改变,当需要这样的操作时,需要我们将留下的截取,然后拼接上新的字符串。

3、使用s.equals(t)  表达式进行字符串相等检测,s t相等,返回true,否则返回false。

 

在java的String类中包含了50多个方法,熟悉这些方法的使用能够帮助我们更好的处理字符串。

 

由于java得字符串不可变特性,使得我们需要由短字符串构建字符串的时候会非常的麻烦,每次都连接字符串的话,浪费时间,更浪费空间。这时我们需要使用StringBuilder类。

这个类给我们提供构建一个字符串构建器

StringBuilder builder = new StringBuilder();

每次添加一部分内容时,调用append方法。

builder.append(ch); //添加一个单个字符

builder.append(str);//添加一个字符串

需要使用构建好的字符串时,调用toString方法,其中包含了构建器中的字符序列。

String completedString = builder.toString();

 

java的输入也是通过相应的类来实现的,标准输入流,需要构造一个Scanner对象,之后使用类中格的方法实现输入。

格式化输出使用System.out.printf();

如果需要文件输入则需要使用File对象构造一个Scanner对性。

如:Scanner in = new Scanner(new File("myfile.txt"));

文件写入需要构建PrintWriter对象。

 

java的流程控制和其他大部分语言是一样的,采用条件和循环。

条件语句可使用 if语句,if-else语句,if-else if-else if......

循环有while循环,do-while循环,for循环

还有多重选择的switch语句

可以使用break中断控制流程语句,每次向外跳一层。注意的是java中提供了一种带标签的break语句,可以跳出到指定位置,可用于一次跳出多重嵌套的循环语句。

也可以使用continue语句用于跳出本次循环,即马上来到循环的开头位置。同时也有带标签的continue语句,用于跳到指定位置。