[Java和Android开发学习指南(第二版)第一、二、三章学习笔记
第一章Java基础
- 第一章主要介绍了如何下载和安装一个JDK,从感性的层面来接触Java。主要包括,编写一个Java程序,用Javac的工具来编译和运行它,得出结果。此外,还介绍了java的集成环境。
第二章语言基础
-
创建一个可以操控的对象,Java创建对象的语句形如这样:new 类型(构建对象的参数-可选);,其中new为创建对象的关键字,类型可以是基本类型,包装器类型以及各种类类型,()里是参数列表,代表调用了构造函数,分号代表语句的结尾。这个语句创建了指定类型的对象。要想使用这个对象,必须要声明一个对象类型的引用,引用就是一个别名,Java里引用的概念和C++中引用的概念类似。比如String s = new String("1234");或者是String s = "1234";
-
初始化,第一句话定义并初始化了一个String类型的引用s,s被赋值为一个String类型的对象,这个对象被初始化为字符串字面值“1234”。 这里发生了两次初始化,引用s的初始化,以及一个不具名的String类型对象的初始化。一个引用必须在使用(除了赋值操作的其他操作)之前初始化,一个对象创建的时候就一定被构造函数初始化过了,一个未经初始化的引用,其初值为null,使用值为null的引用会导致报错。
-
基本类型有哪些, boolean(布尔值),char(字符),byte(很小的整数),short(比较小的整数),int(整形),long(长整形),float(浮点数),double(高精度浮点数),void(空类型)。
-
包装器,基本类型没有一个函数,不方便按照面向对象的思想向其传递信息,因此Java给每一个基本类型都对应了一个包装器类型,它们是一些类类型,在堆中被创建,可以执行各种方法,更方便使用。以上类型对应的包装器类型有哪些Boolean(布尔值),Character(字符),Byte(很小的整数),Short(比较小的整数),Integer(整形),Long(长整形),Float(浮点数),Double(高精度浮点数),Void(空类型)。
-
操作符,我发现java的操作数类型和c语言的操作数的类型基本类似。这里有一些特殊的操作:
+ 操作符可以用于字符串,把字符串和其他对象连接在一起,比如String s = new String(); int i = 0;System.out.println(s+i+1.2); 这里+操作符发现自己的左操作数是String对象,右操作数不是,因此就会把右操作数转化为一个临时的String对象然后再和左操作数相加。
= 赋值操作符可以使左操作数 的对象引用 成为右操作数所引用对象的别名。String s = new String("123"); String s2 = new String("456"); s = s2; 之后,s和s2所引用的对象的值都会变成"456"。这一点也同样体现在函数的参数传递上。
== 判等关系操作符也是比较特殊的,当它的左右操作数都是对象引用的时候,它判断的是这两个引用是否引用了同一个对象,而不是它们引用的对象值是否相同。如果要想判断两个对象引用所引用的值是否相同,需要使用类中的equals成员函数。如果没有这个成员函数,你需要自己创造一个。基本类型则无此限制。
>>>无符号右移位运算符,比起右移运算符,无论操作的是数是否是正数,它每次都往左侧填0。
类型转换运算符,用法类似这样,(想转换成的类型)变量/对象/字面值。有些类型之间不能够互相转换,不过除了boolean,各个基本类型之间都能互相转换。也可以通过这种方式,把高精度类型的数转成低精度的类型,这种转换成为“窄化转换”。
类型提升。char,byte,short类型的值在参加计算时,会自动地转换成int类型,再进行计算。两个不同的基本类型做算术运算时,精度低的那个类型的值会自动提升为精度高的类型
第三章流程控制语句
基本流程控制语句
选择分支:if-else,switch
循环语句:do..while,while,for,range for
跳出循环或switch内部:break
跳出单次循环:continue
- 还有一些其他的Java语法:静态方法Math.random(); 可以产生0~1之间的随机值。
标签一个标签形如:标签名:,比如label1:,只能在迭代语句之前使用,标签后面只能接空白或者迭代语句或者注释。在循环内部使用break 标签名;即可跳转到标签处并且不再进入刚跳出的循环。使用continue 标签名;,即可跳转到标签处,继续进行循环迭代。经常被用于想要马上跳出多层循环的情况。
二进制数字字面值 Java SE7中,可以在二进制字面值前面加0b代表一个二进制数值,比如int a = 0b10101101;
总结
通过本次学习,我学到了Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。我还发现Java和c语言,c++语言有许多相似的地方,比如数据类型、控制语句等。学习了前面的三章都是编程语言所具有的共同的一些基本内容,数据类型的分类、操作符、控制语句等等,这些内容的学习为后面的内容打下了基础!而且在这个过程我不断的敲代码,熟悉java语言,十分受益。