黑马程序员--基础复习2012.8.2
来源:互联网 发布:头像识别软件 编辑:程序博客网 时间:2024/05/29 08:32
class 关键字定义
main保证类的独立运行,是程序的入口,会被JVM调用
循环
定义初始化表达式;
While(条件表达式){
循环体(执行语句);
}
for(初始化表达式:循环条件表达式:循环后的操作表达式)
变量有自己的作用域,对于for来说:如果用于控制循环的增量定义在for语句中,for执行完毕,变量在内存中释放。
使用循环结构
当要对某些语句执行很都次时,就使用循环结构。
使用循环的时候需要注意,那些语句需要参与循环,哪些不需要
break:应用范围:选择结构和循环结构
continue:应用于循环结构
a:两个语句离开应用范围,都没有意义
b:这两个语句单独存在下面都不可以有语句,因为执行不到
c:continue语句是结束本次循环,继续下一次循环
d:标号的出现,可以让这两个语句作用于指定的范围
函数
定义在类中的具有特定功能的一段独立小程序
重载:在同一个类中允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可,与返回值无关,只看参数列表。方便阅读,优化程序设计
数组:
同一种类型数据的集合。数组就是一个容器。
可以自动给数组中的元素从0开始编号,方便操作这些元素。
ArrayIndexOutOfBoundsException:操作数组时,访问到了数组中不存在的角标
NullPointerException:空指针异常,当引用没有任何指向值为null,该引用还在用于操作实体
内存结构:
Java程序运行时,需要在内存中分配空间。为了提高运算效率,又对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
栈内存,用于存储局部变量,当数据使用完,所占空间会自动释放
堆内存,数组和对象,通过new建立的实例都放在堆内存中
每一个实体都有一个内存地址
实体中的变量都有默认初始值
实体不知被使用,会在不确定时间内被垃圾回收器回收
选择排序
1. 拿角标i=0位置的数据和后面的数据逐一比较,取得最小值
2. 拿角标i=1位置的数据和后面的数据逐一比较,取得第二小值
3. ……
4. 直到角标i=arr.length-1为最后一个角标
5. // 选择排序
6. publicstaticvoid choiceSort(int[] arr) {
7. int len = arr.length - 1;//数组最大角标
8. for (int i = 0; i < len; i++) {//外层循环,从i=0循环到数组的倒数第二个角标
9. for (int j = i + 1; j <= len; j++) {//内层循环,循环到从j=i+1循环到最后一个角标
10. if (arr[i] > arr[j]) {//如果满足条件
11. //交换元素
12. swap(arr, i, j);
13. }
14. }
15. }
16. }
冒泡排序:位置相邻的两个元素进行比较,如果符合条件就换位
publicstaticvoid bubleSort(int[] arr){
int len = arr.length;
for(int i=0; i<len; i++){
for(int j=0; j<len-i-1; j++){//-i,让循环次数减少,-1,避免角标越界
//相邻元素比较
if(arr[j]>arr[j+1])
//交换元素
swap(arr, j, j+1);
}
}
}
面向对象:三大特征:封装,继承,多态
将功能封装进对象,强调具备了功能的对象。
开发:找对象,建立对象,使用对象,维护对象的关系
类:对现实生活中事物的描述
对象:就是这类事物实实在在的存在个体
具体对象对应java在堆内存中用new建立的实体
成员变量作用于整个类,在堆内存中,因为对象存在才存在
局部变量作用域函数中,或者语句中。存在于栈内存中
匿名对象,对象的简化形式
对象的方法只调用一次
匿名对象作为实际参数进行传递
封装:是指隐藏对象的属性和其实现细节,仅对外提供公共访问方式。
好处:将变化隔离;便于使用;提高重用性;提高安全性;
封装原则:将不需要对外提供的内容都隐藏起来;
把属性都隐藏起来,提供公共方法对外访问。
private :私有,权限修饰符;只在本类中有效。是封装的一种表现形式之一。
构造函数
特点:
1. 函数名与类名相同
2. 不用定义返回值类型
3. 不可以写return语句
作用:用于给对象初始化;
构造函数在对象一建立就运行。给对象初始化。一个对象建立,只运行一次。
而一般方法是对象调用才执行,给对象添加对象具备的功能,可以被同一对象调用多次
静态代码块
作用:给对象进行初始化。
对象一建立就运行,且优先于构造函数执行。
和构造函数区别:
构造代码块是给所有对象进行统一初始化,而构造函数是给对应的函数初始化。
this:表示本类对象,代表它所在函数所属对象的引用,哪个对象调用this所在的函数,this就代表哪个对象。本类内部使用了本类对时,使用this。
this(name);//this用于构造函数初始化。只能定义在第一行,要先执行。
static 关键字
用于修饰成员(成员函数,成员变量),可以直接被类名调用。
static特点
1. 随着类的加载而加载,随着类的销毁而消失,生命周期最长。
2. 优先于对象存在
3. 被所有对象共享
4. 可以直接被类名调用
特有数据随着对象存储在堆内存中。
实例变量和类变量区别
1存放位置
类变量随着类的加载而存在于方法区中
实例变量随着对象的建立而存在于堆内存中
2生命周期
类变量生命周期最长,随类的消失而消失
实例变量生命周期,随着对象的消失而消失
static使用注意事项
1. 静态方法只能访问静态成员。
2. 静态方法中不可以定义this,super关键字,因为静态优先于对象存在。
static
优点:节省空间;可以被类名调用;
缺点:生命周期过长,访问出现局限性(只能访问静态)
静态代码块—》默认初始化属性—》构造代码块初始化—》构造函数初始化
Person p = new Person(“zhangsan”,20)
1. 因为new 用到了Person.class文件,所以会先找到Person.class文件并加载到内存中
2. 如果有static代码块的话,执行该类中的static代码块,给Person..class类进行初始化
3. 在堆内存中开辟空间分配内存地址
4. 在堆内存中建立对象的特有属性,并进行默认初始化
5. 对属性进行显示初始化(对属性设置的初始值name=”name”)
6. 对对象进行构造代码块初始化
7. 对对象进行与之对应的构造函数初始化
8. 将内存地址赋给栈内存中的p变量
/*
* 设计模式:解决某一类问题最行之有效的方法
* 单例设计模式:解决一个类在内存只存在一个对象。
* 1.将构造函数私有化
* 2.在类中创建一个本类对象
* 3.提供一个方法可以获取到该对象
*/
/*
* 饿汗式,加载类时直接创建对象
*/
class Single {
private Single() {
}
private static Single single = new Single();
public static Single getInstance() {
return single;
}
}
/*
* 懒汉式,调用时才创建对象,延迟加载
*/
class Single2 {
private Single2() {
}
private static Single2 single = null;
public static Single2 getInstance() {
//判断
if (single == null) {
//拿锁
synchronized (Single2.class) {
if (single == null) {
single = new Single2();
}
}
}
return single;
}
}
---------------------- android培训、java培训、期待与您交流!
----------------------详细请查看:http://edu.csdn.net/heima
- 黑马程序员--基础复习2012.8.2
- 黑马程序员--基础复习2012.8.3
- 黑马程序员--基础复习2012.8.4
- 黑马程序员--基础复习2012.8.5
- 黑马程序员--基础复习2012.8.6
- 黑马程序员--基础复习2012.8.14 多线程
- 黑马程序员_Java基础复习
- 黑马程序员_java基础复习一基础
- 黑马程序员--基础复习2012.8.7 交通灯管理系统
- 黑马程序员--基础复习2012.8.8 银行调度系统
- 黑马程序员—ADO.net基础复习篇2
- 黑马程序员_java基础复习总结01
- 黑马程序员--第二次视频复习c#基础
- 黑马程序员_java基础复习五多线程
- 黑马程序员_java基础复习之七泛型
- 黑马程序员——复习基础
- 黑马程序员----【javaSE基础】复习--面向对象
- 黑马程序员 java基础复习一
- 两天总结
- [java]静态
- WebSphere DataPower SOA Appliance性能调优
- 基于Spring+CXF实现用户文件上传的WebService
- [java]继承中的构造函数
- 黑马程序员--基础复习2012.8.2
- zoj3168------------------------Sort ZOJ7
- [java]关键字this(参数)--super(参数)比较
- kernel新手培训计划
- IPhone CoreImage 的介绍和使用
- 优化Java堆大小的五个技巧
- CIFilter的种类
- 如何推广一个网站,如何提高其评级
- j2se 第一个程序helloworld (有图有真相)