------- android培训、java培训、期待与您交流! ----------
1:代码块(次重点)
(1)就是用一对{}括起来的内容。
(2)局部代码块
在方法体中。当方法体的语句执行完后,它里面定义的变量就会从内存中消失。
(3)构造代码块
在类的成员位置上。每个构造方法都会去默认调用构造代码块。它里面可以放
每个对象都具有的默认初始值。
2:Person p = new Person();在内存中做了哪些事情。(次重点)
(1)将Person.class文件加载进内存中。
(2)如何p定义在主方法中,那么,就会在栈空间开辟一个变量空间p。
(3)在堆内存给对象分配空间。
(4)对对象中的成员进行默认初始化。
(5)对对象中的成员进行显示初始化。
(6)调用构造代码块对对象进行初始化。(如果没有就不执行)
(7)调用构造方法对对象进行初始化。对象初始化完毕。
(8)将对象的内存地址赋值给p变量,让p变量指向该对象。
class Person
{
String name = "itcast"; //null
Person(){
name = "hello";
}
}
3:static关键字(重点)
(1)静态的意思。可以用于修饰成员(成员变量和成员方法)
(2)静态的特点
A:随着类的加载而加载
B:优先于对象存在
C:被该类所有对象共享
D:可以通过类名直接调用
(3)静态的注意事项
A:静态方法只能访问静态成员
为什么:因为静态的内容是随着类的加载而加载,它是先进内存的。
B:静态方法中不能使用this,super关键字
C:主方法是静态的
public static void main(String[] args)
public:公共的意思,是最大权限修饰符。
static:由于jvm调用main方法的时候,没有创建对象。
只能通过类名调用。所以,main必须用static修饰。
void:由于main方法是被jvm调用,不需要返回值。用void修饰。
main:main是主要的意思,所以jvm采用了这个名字。是程序的入口。
String[]:字符串数组
args:数组名
在运行的时候,通过java命令给args数组赋值。
格式:
java MainTest hello world itcast
(4)静态变量和成员变量的区别
A:调用方式
静态变量也称为类变量,可以直接通过类名调用。也可以通过对象名调用。
这个变量属于类。
成员变量也称为实例变量,只能通过对象名调用。这个变量属于对象。
B:存储位置
静态变量存储在方法区长中的静态区。
成员变量存储在堆内存。
C:生命周期
静态变量随着类的加载而存在,随着类的消失而消失。生命周期长。
成员变量随着对象的创建而存在,随着对象的消失而消失。
D:与对象的相关性
静态变量是所有对象共享的数据。
成员变量时每个对象所特有的数据。
(5)什么使用使用静态呢?
A:当所有对象共享某个数据的时候,就把这个成员变量定义为静态修饰的。
B:当某个方法没有访问该类中的非静态成员,就可以把这个方法定义为静态修饰。
静态的生命周期比较长,所以一般不推荐使用。
(6)静态代码块
A:它只执行一次,它比main还先执行。
B:执行顺序
静态代码块--构造代码块--构造方法
4:制作API(次重点)
API(全拼):Application Program Interface 应用程序编程接口。
(1)类中的内容需要用文档注释。
(2)使用JDK\bin目录下的javadoc工具。
格式:javadoc -d 目录 -author -version ArrayTool.java
5:自学JDK的API中的Math类中的功能,然后完成如下功能。
求2的15次方。
6:单例设计模式(重点)
(1)用来保证类在内存中只有一个对象。
(2)思路:
A:外界不能创建对象
B:本身要创建一个对象
C:提供公共的访问方式
如果体现思路呢?
A:私有构造
B:在成员位置创建一个对象
C:提供静态的公共方法获取对象
(3)单例设计模式的两种方式
A:饿汉式 当类加载的时候,就创建对象。
class Student
{
private Student(){}
private static Student s = new Student();
public static Student getInstance()
{
return s;
}
}
B:懒汉式 当使用的使用,才去创建对象。
class Student
{
private Student(){}
private static Student s = null;
public static Student getInstance()
{
if(s==null)
{
s = new Student();
}
return s;
}
}
(4)什么情况下是单例呢?
举例:饮水机在教室中只有一台。
window系统的打印机。
(5)两种分别什么时候使用。
饿汉式是开发使用
懒汉式是面试使用:因为可能会造成线程安全问题。