Java入门学习笔记 下载本文

内容发布更新时间 : 2024/5/3 8:51:38星期一 下面是文章的全部内容请认真阅读。

类和对象

类:叫做class。

对象:我们叫做Object ,instance(实例)。以后我们说某个类的对象,某个类的实例。是一样的意思

例子:定义一个学生类:

public class Text12 { //属性 fields,

int id;

String name; int age;

//定义一个方法,成员变量,后面可以跟参数也可以不跟参数。 void study() {

System.out.println(\我在认真学习!!\);

}

void play() { }

//程序执行的入口,可以放置到任何类里面; public static void main(String[] args) {

//创建一个对象

Text12 stu=new Text12 (); //继承,调用play

System.out.println(\我在玩游戏\);

stu.play(); } }

每一个源文件必须有且只有一个 public class,类名与文件名保持一致。 一个JAVA 可以同时定义多个类。

方法: 方法用于定义该类或该类实例的行为特征和功能实现。方法是类和对象行为特征的抽象。方法很

类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。

public class Text12 {

//属性 fields,

int id;

String name; int age;

Computer comp; //新加的属性

//定义一个方法,成员变量,后面可以跟参数也可以不跟参数。 void study() {

System.out.println(\我在认真学习!!\+comp.brand);

}

void play() {

System.out.println(\我在玩游戏\);

}

//构造方法,用于创作类的对象,无参数的构造方法可以由系统自动调用 Text12(){ }

//程序执行的入口,可以放置到任何类里面; public static void main(String[] args) {

//创建一个对象,调用了这个类的构造方法 Text12 stu=new Text12 (); //继承,用stu访问play方法

stu.id=1997; stu.name=\陈潇\; stu.age=18; //为电脑新建一个属性

Computer c1=new Computer(); c1.brand=\联想\;

stu.comp=c1; stu.play(); stu.study(); } }

class Computer{ String brand; }

面向对象的内存分析:

Java虚拟机的内存可以分为三个区域:栈stack、堆heap、方法区method area。

栈的特点如下:

1. 栈描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等) 2. JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等)局部变量都在方法里面;在调用新的方法时,新建一个栈,将所有的参数等都存入栈中,方法执行完毕后关闭所在的栈,在接着向下执行,一直到最后一个执行完毕关闭退出

3. 栈属于线程私有,不能实现线程间的共享!

4. 栈的存储特性是“先进后出,后进先出” ——子弹夹,先安的后出, 5. 栈是由系统自动分配,速度快!栈是一个连续的内存空间! 堆的特点如下:

1. 堆用于存储创建好的对象和数组(数组也是对象) 2. JVM只有一个堆,被所有线程共享

3. 堆是一个不连续的内存空间,可以放n个创建好的对象 比如说 new一个对象就是在堆里创建一个对象。分配灵活,速度慢!

方法区(又叫静态区)特点如下:(在堆里面) 1. JVM只有一个方法区,被所有线程共享!

2. 方法区实际也是堆,只是用于存储类、常量相关的信息!

3. 用来存放程序中永远是不变或唯一的内容。存储类相关信息,(类信息【Class对象】、静态变量、字符串常量等) 15db9742可以看作是地址