1-Java的简单入门


博客中的部分图来自Head First Java

1 Java概述

1.1 Java的发展历程

  • Java语言是Sun(Stanford University Network)在1995年推出的计算机语言

    Java之父:詹姆斯·高斯林(James Gosling)

  • 2009年,Sun公司被甲骨文公司收购,所以我们现在访问oracle官网即可:https://www.oracle.com

1.2 Java中一些概念

  • JVM(Java Virtual Machine),Java虚拟机

  • JRE(Java Runtime Environment),Java运行环境,包含了JVM和Java的核心类库(Java API)

  • JDK(Java Development Kit)称为Java开发工具,包含了JRE和开发工具(我们只需安装JDK即可,它包含了java的运行环境和虚拟机)

1.3 Java的工作方式

1.4 Java的程序结构

1.5 类和对象

程序员常说万物皆对象,能够较好的理解对象的含义是编程修炼中的基本功,初接触可能会较难理解,但是基本的概念是一定要有的,首先需要清楚类和对象的关系。

总结来说,类是对象的蓝图,类可以看作对现实生活中一类具有共同属性和行为的事物的抽象,而对象则是具体的事物。根据一个类可以创建多个对象,每个对象的实例变量都可以不同。

对象有实例对象和方法两个属性:

  • 实例对象:对象已知的事物,代表了对象的状态
  • 方法:对象可执行的动作,代表了对象的行为

类的组成是由属性和行为两部分组成

  • 属性:在类中通过成员变量来体现(类中方法外的变量)
  • 行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)

下面给出一般类的定义:

public class 类名 {
	// 成员变量
	变量1的数据类型 变量1;
	变量2的数据类型 变量2;// 成员方法
	方法1;
	方法2;	
}

除了成员方法外,我们在定义类的时候还会给出类的构造方法,构造方法又分为无参构造和带参构造,这些通过快捷键都可以很方便的完成。

例如:

public class Student {
    //成员变量(私有)
    private int age;
    private String name;

    //无参构造方法
    public Student() {
    }

    //带参构造方法
    public Student(int age, String name) {
        this.age = age;
        this.name = name;
    }

    //getter
    public int getAge() {
        return age;
    }

    //setter
    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

根据定义的类来创建对象的格式为:

类名 对象名 = new 类名();

例如:

//无参构造方法创建对象
Student s1 = new Student();
s1.setAge(10);
s1.setName("mary");

//带参构造方法创建对象
Student s2 = new Student(10,"ma");

1.6 对象内存图

创建对象时,对象名和地址是存储在栈内存中的,对象的属性内容存储在堆内存中,Java会根据对象的大小来分配内存空间,同时也会主动管理内存。当JVM发现某个对象不会再被使用时,该对象就会被标记为可回收,当内存不足时,垃圾收集器会启动来清理垃圾,回收空间。

单个对象内存图

多个对象内存图

多个对象在堆内存中,都有不同的内存划分,成员变量存储在各自的内存区域中,成员方法多个对象共用的一份

多个对象指向相同地址内存图

在这里插入图片描述

当多个对象的引用指向同一个内存空间(变量所记录的地址值是一样的)

只要有任何一个对象修改了内存中的数据,随后,无论使用哪一个对象进行数据获取,都是修改后的数据

发布了69 篇原创文章 · 获赞 28 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_24852439/article/details/103978840