(。・・)ノ~个人java学习随笔记录
基本认识
1.编程思维
根据这几天的java学习,编写程序最重要的就是要有一个清晰的思路。语法上的错误可以跟随着不断的联系与学习来弥补,清晰的思维却只有自己来前期模仿,后面慢慢摸索形成一套属于自己的思维方式。
2.编程方向
程序编写方面考虑的是完成某个任务需要的东西(对象),也就是达成目标需要用什么来完成。程序主要编写思路也是围绕这些东西来写,而不是围绕完成这个目标的步骤。(这就是所谓的面向对象编程,和C语言最大的区别)
3.编程习惯
随着以后编写的程序的不断扩张,程序会越来越大,需要的对象也会越来越多,对象完成的方法也会不断加多,因此,我们需要提前培养自己程序模块化的思想。不要什么模块都杂堆在主函数里面,这样修改起来很麻烦,程序冗长,也不便于其他程序员阅读你的程序,毕竟以后一个大的工程都是大家几个程序员一起完成,所以我们有必要为了别的程序员考虑自己的程序编写格式。适当的注解,不但有利于别人阅读自己的程序,时间久了,自己来看自己编写的程序也不会有太久的迷茫时间。模块化就是把有相似内容的模块归类放在一起,相当于平时整理自己的家一样,厨房用具放在厨房,衣物放在衣柜里。在后面找错和修改程序时,也能更方便快捷的完成需要的要求。
4.关于java
1.简单性
c++的“纯净”版本,容易入手学习;最早的java开发来就是用于小型机器(家电),也就是程序小。
2.面向对象
程序设计时,重点放在达到目的所需的对象(物体),而不是使用的方法。
用木匠打比方,面向对象的木匠注重的是木桩,非面向对象的木匠注重的是工具。
3.分布式
java有一个丰富的例程库,使java程序能通过URL打开和访问网络上的对象。
4.健壮性
java开发时,投入了大量的精力用于早期的(编写程序期间)问题检查、后期动态(程序运行)的检测,使得java编译器能检测出许多其他语言只能在运行时候才能检测出来的问题。
5.安全性
在安全方面,java可以构建一定程度的放病毒、防篡改的系统。
6.体系结构中立
java编译器生成一个体系结构中立的目标文件格式(一种编译过的代码),只要有java运行时系统,就可以在许多不同的处理器上运行。
7.可移植性
Java中数据类型是有固定的大小,其他语言都是可以在一定限制条件下(例如 short int 小于 int 小于 long int)随意更改的。虽然没有做到全部都可以移植(与用户界面有关的部分除外),其他方面还是能很好地支持平台独立性。
8.解释性
java解释器可以在任何移植了解释器的机器上执行Java字节码(编译器编译程序代码后产生的)。联系6.7.点
9.高性能
字节码可以在运行时动态的翻译成对应运行这个应用的特定CPU的机器码(计算器直接认识的)。
10.多线程
一个程序能同时使用更多的处理器,并让他们一直工作。运行时,处理器需要等待服务器的响应,这时候需要并发程序设计来确保用户界面不“冻住”。
11.动态性
java适应不断发展的环境。库中可以不断自由添加新方法,以及实例变量,然而对客户端却不会产生任何影响。
5.集合
1.Collection接口
add()方法;
向集合中添加一个元素,如果添加元素确实改变了集合,就返回true,否则返回false
iterator()方法;
该方法返回一个Iterator接口的对象,该方法为迭代器,可以依次访问该迭代器对象对应的集合中的元素
hasNext()方法:判断该迭代器对象对应的集合是否还有供访问的对象,还有则返回true,否则返回false。
该方法有next()方法:通过不断调用该方法,可以依次访问集合的元素,但是如果到了末尾,还用next()就会报错。这里就需要用hasNext()方法帮忙判断是否还有能访问的元素,有就调用next()来访问,否则跳过。(认为java迭代器位于两个元素之间,调用next()方法时,越过下一个元素,并将刚才越过的元素的引用返回,然后交给next()方法,来访问该元素)
remove()方法,用来删除刚才next()方法返回的元素,在决定删除某个元素时,先查看该元素,再删除。且,remove()方法前面必须用next()方法,否则会报错。
List集合:有序集合,元素都存储在指定位置
访问时可以通过迭代器访问,这时候只有按照顺序来访问;也可以通过整数索引访问,这时候可以根据需要访问对应的元素。
ArrayList集合:可以动态改变集合大小的索引序列。该序列删除和插入元素很费时间,因为每次删除或增加一个元素都要改变大部分元素的位置(前移或后退),所以该序列只适用于存储、查看元素。
LinkedList集合:可以在任何位置进行快速高效插入、删除操作的有序序列,因为每个元素都是独立的结点,并且每个结点都存储着前后两个结点的引用,所以删除和插入时候,不需要对大部分元素的结点进行变更,只需要改变相邻的两个结点就好了(经常改变集合元素的时候就用该集合类型)
Set集合:无序集合,并且不能有同样的元素,这里的同样就需要我们自己去设定equals()方法和hashCode()方法,equals()方法用来判断元素的内容是否一样,hashCode()方法则用来判断两个相同元素返回的散列码是否一样。
HashSet集合:没有重复元素的无序集合,Set集合运用最多的集合类型
TreeSet集合:有序的没有重复的集合,使用很少
2.Map接口
方法和Collection的很相似(增加、删除、修改、查看),特点在于Map集合存储的是两组元素(key、value),key相当于对象的编号,value则是对象的本体,所以key不能重复,但是value可以重复,并且是严格的一对一的关系。查看Map集合中的元素(value)必须通过key——map.get(key)。获得key则用一个和key类型相同的集合来存储,然后通过迭代器来迭代出key值。再通过get()方法得到对应的value。
HashMap集合:存储键/值关联的数据结构
浙公网安备 33010602011771号