学习内容:初步了解java语言,进行java变成的准备,编写第一个java程序,了解java程序的基本规则
学习笔记:
1、java语言是一种特殊的高级语言,它既具有解释型语言的特征,也具有编译型语言的特征,因为java程序要经过先编译,后解释两个步骤。程序员编写*.java的文件,用javac进行编译,生成*.class文件,最后用JVM进行解释。
2、JVM是一个虚拟的计算机,是java跨平台的关键部分。
3、官网下载JDK,并给计算机配置PATH环境就可以进行java程序的开发了。
4、编写第一java程序HelloWorld,并用javac命令编译,java命令运行,查看输出结果。
5、①java程序源文件的后缀必须是.java,不能是其他文件名后缀。②如果java程序源代码里定义了一个public类,则该源文件的主文件名必须与该public类的类名相同,因此最多定义一个public类③一个java源文件只定义一个类,不同的类使用不同的源文件定义。
6、java里的垃圾回收机制。①垃圾回收机制可以很好地提高编程效率。②垃圾回收机制保护程序的完整性,它是java语言安全性策略的一个重要部分。③它的目标是回收无用对象的内存空间,这些内存空间都是JVM堆内存里的内存空间,对物理资源无能为力。④为了更快地让垃圾回收机制回收那些不再使用的对象,可以将该对象的引用变量设置为null,通过这种方式暗示垃圾回收机制可以回收该对象。⑤垃圾回收机制具有不可预知性,RunTime对象的gc()方法或者System.gc()方法可以建议系统进行垃圾回收,但这种调用仅仅是建议,依然不能精确控制垃圾回收机制的执行。⑥垃圾回收机制能够精确地标记活着的对象,能够精确地定位对象之间的引用关系。⑦JVM具有多种垃圾回收机制的算法。
学习内容:理解面向对象,了解结构化程序设计,了解顺序结构、分支结构、循环结构,了解面向对象程序设计思想和java面向对象的特征
学习笔记:
1、结构化程序设计有两个局限性。①设计不够直观,与人类习惯思维不一致。进行程序的开发时,开发者需要将客观世界模型分解成一个个功能,每个功能用以完成一定的数据处理。②适应性差,可扩展性不强,自顶向下的设计方式导致当用户需求发生改变,或者需要修改现有的实现方式时,都需要自顶向下的修改模块结构,维护成本相当高。
2、采用面向对象方式开发,最小的程序单元是类,这些类可以生成系统的多个对象,这些对象则直接映像成客观世界的各种事物。面向对象方法具有封装、继承、多态三个基本特征。
3、对象还支持如下几个功能①对象是面向对象方法中最基本的概念,它的基本特点有:标识唯一性、多态性、分类性、封装性、模块独立性。②类是具有共同属性、共同方法的一类事物。类是对象的抽象:对象则是类的实例。类是整个软件系统里最小的单元,类的封装性将各种细节隐藏起来,并通过公用方法来暴露该类对外提供的功能,从而提高了类的内聚性,降低了对象之间的耦合性。③对象间的这种相互合作需要一个机制协助进行,这样的机制成为”消息”。④在面向对象方法中,类之间共享属性和操作的机制成为继承。继承具有传递性。java只支持单继承。
4、类之间的结构关系。①一般到特殊的关系:典型的继承关系,使用extends关键字表示这种关系,java子类是一种特殊的父类。②整体到部分结构关系:典型的组合关系,java语言通过在一个类里保存另一个对象的引用来实现这种组合关系。
学习内容:数据类型和运算符,了解注释的重要性和作用,掌握查看API文档的方法,了解数据类型两大类以及类型之间的相互转化,了解java提供的基本运算符和它们之间的优先级
学习笔记:
1、java语言是一门强类型语言①所有变量必须先声明、后使用。②指定类型的变量只能接受类型与之匹配的值。
2、添加注释的原因①当思路流畅,进入编程境界时,可以很快的实现某个方法,可能是因为你正处于这种开发思路。为了再次阅读这段代码时,还能找回思路,建议添加注释。②可读性第一,效率第二。③代码即文档,在想着把各种软件相关文档写规范的同时,不要忘了把软件里最重要的文档源代码写规范。
3、API文档类似于产品说明书,通常使用说明书只需要介绍那些暴露的、供用户使用的部分,因此javadoc默认只处理public或者protected修饰的内容。javadoc -d apidoc -windowtitle xx -doctitle xx -header xx -version -author xx 生成文档注释。
4、标示符的规则:①标示符可以由字母、数字、下划线和美元符号组成,其中数字不能打头。②标示符不能是java关键字和保留字,但可以包含关键字和保留字。③标示符不能包含空格。④标示符只能包含美元符号,不能包含其他特殊字符。
5、java数据类型分为基本类型和引用类型,基本类型包括boolean类型和数值类型,数值类型有整数类型和浮点类型。整数类型包括byte、short、int、long、char,浮点类型包括float和double。引用类型包括类、接口和数组类型,还有一种特殊的null类型,null可以转换为任何引用类型。不要把null赋值给基本数据类型。
6、java没有提供表示字符串的基本数据类型,而是通过String类来表示字符串,由于字符串由多个字符组成,因此字符串要使用双引号括起来。
7、java语言的浮点数有两种表示形式。①十进制形式:这种形式就是简单的浮点数。例如3.14、314.0、.314。浮点数必须包含一个小数点,否则会被当成int类型处理。②科学计数法形式:例如3.14e2、3.14E2。只有浮点型的数值才可以使用科学计数法形式表示。
8、三个特殊的浮点数值。正无穷大:POSITIVE_INFINITY,负无穷大:NEGATIVE_INFINITY,非数:NaN。所有正无穷大都相等,所有负无穷大都相等,NaN不与任何数相等。只有浮点数除以0才可以得到无穷大。
9、java语言中使用boolean类型的变量或值控制的流程主要有如下几种。①if条件控制语句②while循环控制语句③do while循环控制语句④for循环控制语句
10、当把一个表数范围小的数值或变量直接赋给另一个表数范围大的变量时,系统将可以进行自动类型转换,否则就需要强制转换。
11、所有的byte、short、char类型将被提升到int类型。整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型。
12、进行移位运算时要遵循如下规则。①对于低于int类型的操作数总是先自动转换为int类型后再移位。②对于int类型的整数移位a》b,当b>32时,系统先用b对32求余,得到的结果才是真正移位的位数。例如,a》33和a》1的结果完全一样。③对于long类型的整数移位a》b,当b>64时,对64求余,得到的结果才是真正移位的位数。
13、不难发现左移n位就是乘以2的n次方,右移n位就是除以2的n次方。进行移位不会改变操作数本身,只是得到一个新的运算结果。
学习内容:流程控制与数组,了解if,switch分支结构,while,do while,for循环结构,嵌套循环,了解数组,学习数组的使用
学习笔记:
1、if、else、else if 后的条件执行体要么是一个花括号括起来的代码块,则这个代码块整体作为条件执行体;要么是以分号为结束符的一行语句,也可以是一个空语句,那么就只是这条语句作为条件执行体。如果省略了后面的花括号,那么If条件只控制到紧跟该条件语句的第一个分号处。
2、使用If else语句的时候,一定要先处理包含范围更小的情况。
3、不要在循环体内修改循环变量的值,否则会导致程序出错的可能性。万一程序真的需要访问、修改循环变量的值,建议重新定义一个临时变量,先将循环变量赋值给临时变量,再对临时变量进行修改。
4、使用break结束循环,使用continue结束本次循环,使用return结束方法。
5、数组的初始化有两种形式。①静态初始化:由程序员显示的指定每个数组元素的初始值,由系统决定数组长度。②动态初始化:初始化时程序员只指定数组长度,由系统为数组分配元素。
6、可以用foreach循环遍历数组和集合元素。for(type name : array | collection)
7、java的Arrays类里包括binarySearch,copyOf,copyOfRange,equals,fill,sort,toString等常用方法,java8只是只是增加了并发支持,parallel。