JAVA知识巩固一

JAVA知识巩固:

一、JAVA介绍及优缺点

JAVA介绍:

1、JAVA是一个面向对象的程序设计语言,它继承了C++语言面向对象的核心,同时舍弃了C++中的指针、运算符重载、多继承(以接口取代)等特征,增加了垃圾回收的功能。

2、面向对象编程(OOP):一种思想,对事物的一种抽象理解,将事物的属性和方法(动作)封装成一个类,需要什么功能直接使用就行,不需要再一步一步的去实现。

3、面向过程编程:将要解决的问题进行分析、解析,流程化的一步一步的去解决这个问题

JAVA:优缺点:

1、优点:易维护、易扩展,由于面向对象的封装(无需知道具体是怎么实现的)、继承、多态(一个类可以有多种用法)的特征,可以设计出低耦合的系统,使系统更加灵活。JAVA运行不需要特点的平台,通过JAVA虚拟机解决了这个问题,达到了一次编译,处处运行(由于JAVA是解释型语言,编译器会将JAVA代码变成‘中间代码’,然后在JVM上执行,由于中间代码与平台无关,所以达到了跨平台的功能)。

2、缺点:同样由于其是解释型语言,运行速度低,不支持底层操作。由于取消了指针操作,不够C语言这般灵活(既是缺点、又是优点)

二、JDK、JRE、JVM

JRE(Java Runtime Environment):

是JAVA程序运行时的环境,包含了JVM和运行时所需要的核心类库(用于JAVA程序运行)

JDK (Java Development Kit):

是JAVA程序开发工具包,包含JRE和开发人员使用的工具(用于程序开发、编写)

JVM(Java虚拟机):

三、JAVA程序开发、编译的步骤

JAVA程序开发的三步骤:

编写、编译、运行:将编写的源程序代码(.java)通过编译器(javac.exe)编译成对应的java字节码文件(*.class),在将字节文件在JVM上运行

四、JAVA的内存划分5个部分:

1、栈(stack):

存放的都是方法中的局部变量(方法内定义的变量),方法的运行一定要在栈当中运行

2、堆(Heap):

凡是new出来的东西都在堆当中。

堆里面的动态都有一个16进制的地址值

堆里面的数据都有默认值。字符的默认值为:‘\u0000‘

3、方法区(Method Area):

存储.class相关信息,包含方法的信息

4、本地方法栈(Native Method Stack):与操作系统相关

5、寄存器(pc Register):与CPU相关

一个对象的内存图实例

创建对象、访问对象、修改属性、调用方法的过程:

首先将对象的信息(属性、方法)存储到方法区当中,方法有其具体的地址。然后将main函数压入栈中,main函数中如果new了一个对象,会在堆中开辟一个空间存储这个对象,并且让栈中的对象指向堆中对象所在的地址,堆中的属性是参考方法区中对象的属性拿过来放在堆中,并且附上默认值,然后堆中的成员方法则是指向方法区中方法所在的地址。

如果栈中修改属性的值时,会通过栈中对象所指向的地址找到堆中的地址然后查看这个对象是否存在,如果存在就查找这个属性是否存在,存在就修改其属性值。

调用方法时,首先同样通过栈中对象指向的地址,找到堆中对象,然后查看方法是否存在,如果存在则获取这个方法所指向的方法区中的地址,在将方法区中的方法压入栈中,然后在栈中执行方法中的内容,当方法执行完毕后又将方法弹出栈,直到所有方法代码执行完成后,又将main函数弹出栈。

当一个对象做为参数,传递到方法当中时,实际上传递进去的是对象的地址值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值