Java学习第二周总结
(7月20日~7月24日)
提纲:7/20:
主要围绕循环语句do-while循环语句,以及for循环的嵌套,还有跳转控制语句,java中的方法应用(有返回值和没有返回值的方法),java的一些储存地址
我认为这一天的重点在于for循环的嵌套,因为后面要涉及冒泡,以及倒叙,等一些程序操作都要用到两个for循环进行嵌套来完成,所以我觉得这个是重点,还有快到周五讲的成员变量,以及一些成员方法,自定义方法,都要应用一些方法基本格式,
所以这里连带回忆加上练习写一遍:
1.格式:for for嵌套循环;
for(定义一个变量 ,循环判断依据,步长语句){
循环体语句;
For(定义一个变量,条件,步长语句){
循环体语句;
}
}
这个是基本格式,因为涉及两个for循环,所以使用的时候一定要很清楚两个for的作用,就像后面讲的二维数组一样,外面的一层要受限于里面的一层,里面的循环完成一遍,外面的才完成一遍.
这种手法,应用到后面的几天,不管是杨辉三角还是数组等一些程序都是以双for循环为核心的.
Java中的方法,方法和方法是并列关系,比如你重新定义个方法的话,是不能被main方法包住的,我第一次一直犯这种错误,引以为戒,其次方法定义的格式是:
权限修饰符 静态修饰符 返回值类型 方法名:
这个后面会详细的讲解.
其次是数组,一维数组,和二维数组,这一块涉及的代码都比较清晰,所以就不做过多罗列
要注意的两个点是,
数组的标码是从0开始的,所以数组的长度是要-1的,.当进行遍历的时候很可能会搞错
X<arr.length,这一种是不需要减一的,因为到了第四个就停了,刚好每个都过了一遍
X<=arr.length-1,这种要减一,原因同上,要注意.这是我当时犯错误的点.
Java中的数据储存这一块我还是有点不是很熟悉,所以也讲一次,
栈内存:存储局部变量
堆内存:储存new出来的东西.
方法区,字节码文件,class区,static静态区,字符串常量区
本地方法区:和系统有关
寄存器:和cpu有关系.
以及进栈的方式是压栈,先进后出的原理.
队列是先进先出’
7/21:
这一天主要讲了数组的动态初始化,数组的静态初始化
以及数组可能会出现的异常,
空指针异常,总结,出现的原因是什么,
解决方案?
数组的最值问题
数组的逆序
基本元素的查找
出现的角标志
数组的高级排序,冒泡排序;
这一天讲的东西,重点要掌握的是后半部分,
后面的数组的一些排序等问题,后面的几天都是边学习,边回顾的,所以印象都比较深,而前面的小零碎就很容易忘记,及时后头记忆,是个很有效的方法.
首先数组有两种表达方式
Int arr[ ]=arr[ ],这一种用得比较少,涉及较多的是静态初始化,二维数组那一块这样的表达比较多一点
静态的意思就是,只需要标记数组的长度,系统会自动在堆内存生成相关的地址,然后默认给其赋初始值.
Int arr[ ]={1,2,3,4},这一种形式用的很多在一维数组里面,可以显示里面的元素内容,很容易对里面的数据进行操作.
不管是遍历,还是冒泡都是通过这通过这何种方式来写的.
其次说一点,不管干什么,只要你定义一个新的变量实质上都是产生了一个堆内存地址.
而讲一个对象赋给另一个对象的本质都是把这个对象的地址赋给它.
讲了一些关于数组异常的情况:
ArragIndex out of Bounds Exception
引用类型经常会遇到的空指针异常,
这种一般是引用了空值的对象而引起的
而解决这一种现象的方式是
给对象进行一个非空判断,如果对象不为空则可以使用对象进行操作
Arr=null’
If(arr!=null){
System.out.println(arr[ ]);
}
Null Pointex E xception(空指针异常);
原因代码不严谨(某个对象已经为null,还有使用这个对象,访问方法或者访问元素)
解决方案:只要给该对象进行非空判断,
如果该对象不为空,才能使用.
冒泡排序的思想.两两比较,大的值往后放,第一次比较完毕之后,大的值就出现在了最大索引处,依次这样比较,就可以得到一个排好序的数组.
7/22
….二维数组的遍历…
- 面向对象的思想特点,以及面向对象和面向过程的区别
- 面向对象的三个特征,封装,继承,多态(重点);
- 现实世界(实物)>>>>>类(java中的最基本的单元)
- 如何定义类>>>>>如果创建该类对象>>>>>访问该类中的成员
- 面向对象三大特征之一:封装>>>>>private;
我认为今天的重点是二维数组的遍历,以及对象类的创建,和后面要学的成员变量和成员方法有很大的联系.
二维数组的的遍历:
外层循环:其实是一维数组的个数(arr.length);
内层循环:其实每一个一维数组的长度(arr[ ].length);
最终让你以{{1,2,3}{4,5,6}{6,7,8}}按照这个方式来进行.
面向对象的特点:
基于面向过程的一种思想;
面向过程:代表C语言;
强调一个功能的步骤
面向对象:代表java语言
强调对象的创建,使用对象调用功能!
特点:
1,更符合生活中的思想行为习惯;
2,让复杂的事情简化;
3让我们从执行者变成一个指挥者.
面向对象设计原则:
:创建对象,使用对象,指挥该对对象做事情
面向对象的三大特征;
封装,继承,多态
类:是描述现实世界的真实存在的具体的.
是描述一组实物属性和行为集合的
是java语言的最基本的单元
局部变量和成员变量的区别
- 在类中的位置不同:
局部变量:在方法定义中或者是方法声明上的变量跟方法有关
成员变量:在类中,方法外的变量 - 在内存中的位置不同
局部变量:在栈内存中储存,跟方法有关
成员变量:在堆内存中储存,跟对象有关 - 生命周期不同
局部变量:随着方法的调用而存在,随着方法调用完毕而消失;
成员变量:随着对象的创建而存在,随着对象的创建完毕并且使用完毕,等待垃圾回收器GC回收之后才会消失. - 初始化时机不同
局部变量:在方法定义或者方法声明上的变量,,必须在使用之前进行数据初始化,否则出现”可能尚未进行初始化”
本周总结:
因为本周相比于第一周的区别是,第一周的零碎知识点比较多,而这一周的主要学些方式是编写一写程序,在编写的时候将想考察的知识点嵌入题目中,所以说大多数的都是以代码为主,多敲,还是要多敲,无他唯手熟而