今天是学习java的第六天,今天学习了面向对象,脑子已经不够用了。

学习的进度慢了,碰到的问题也多了。还是先总结一下一天学习的知识点。

1.了解了什么是面向对象,什么是面向过程,我学习的java语言就是面向对象的语言

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为

2.对象是什么?

万物皆可对象,对象就是具体的事物

(1) 什么是类?什么是抽象?

类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所应具有的共同的属性、方法。; 抽象就是抽出某些事物相似的部分

(2) 说说类和对象的关系,举两个例子描述类和对象

类是对对象的抽象;例如, 人类是一个类,黄种人,白种人就是对象;

树是一个类,松树,梧桐树就是对象

(3) 类里面通常都有哪些东西?

属性field、方法method、构造器constructor

3.内存分析详解_栈_堆_方法区_栈帧_程序执行的内存变化过程

(1) JVM内存分为哪三个区域?方法区也在堆中,这句话对么?

栈stack、堆heap、方法区method area

(2) 栈里面存储什么数据?栈的特点是什么?

1. 栈描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)

2. JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等)

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

4. 栈的存储特性是“先进后出,后进先出”

5. 栈是由系统自动分配,速度快!栈是一个连续的内存空间!

(3) 堆里面存储什么数据?堆的特点是什么?

1. 堆用于存储创建好的对象和数组(数组也是对象)

2. JVM只有一个堆,被所有线程共享

3. 堆是一个不连续的内存空间,分配灵活,速度慢!

(4) 方法区里存储什么数据?方法区的特点是什么?

1. JVM只有一个方法区,被所有线程共享!

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

3. 用来存放程序中永远是不变或唯一的内容。(类信息【Class对象】、静态变量、字符串常量等)

内存分析:




java多参数 list java多参数如何定义_方法区


java多参数 list java多参数如何定义_静态初始化_02


4.this 的本质 对象创建的过程

创建一个对象分为如下四步:

1.分配对象空间,并将对象成员变量初始化为0或空;

2.执行属性值的显示初始化;

3.执行构造方法;

4.返回对象的地址给相关的变量

(1) this指向哪里?同类中,一个构造器如何调用另外一个构造器?

this 总是指向调用该方法的对象

使用this关键字调用重载的构造方法,避免相同的初始化代码,但只能在构造方法中用,并且必须位于构造方法的第一句。

1. Static关键字_内存分析静态变量和静态方法

(1) Static修饰变量称之为什么?static修饰方法称之为什么?

用static修饰变量为静态成员变量,也称为类变量

用static修饰方法为静态方法。

(2) 被static修饰的变量和方法从属于谁?没被static修饰的变量和方法从属于谁?

static修饰的成员变量和方法,从属于类

普通变量和方法从属于对象的

1. 静态初始化块_继承数的追溯

(1) 静态初始化块的作用是什么?什么时候执行静态初始化块?

静态初始化块,用于类的初始化操作

先执行Object的静态初始化块,再向下执行子类的静态初始化块,直到我们的类的静态初始化块为止。

1. Java的参数传值机制_值传递

(1) 写代码解释为什么说java中参数传递是值传递

Java中,方法中所有参数都是“值传递”,也就是“传递的是值的副本”。 也就是说,我们得到的是“原参数的复印件,而不是原件”。因此,复印件改变不会影响原件。

(2) 基本数据类型传递和引用数据传递一样么?

不一样 基本数据类型传递的是值的副本。但是引用类型指的是“对象的地址”

1. Java包机制_package的使用_jdk提供的常见包的作用

(1) Java中Package的作用是什么?

通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理。 包对于类,相当于文件夹对于文件的作用。

(2) Jdk有哪些常见包,分别什么作用?

Java中的常用包

说明

java.lang

包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。

java.awt

包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。