首页 > 编程语言 > 详细

java 面向对象编程

时间:2020-06-01 23:31:30      阅读:56      评论:0      收藏:0      [点我收藏+]

原文见:https://www.sxt.cn/Java_jQuery_in_action/object-oriented.html

1、java 面向对象特性:封装、继承、多态,封装了数据和功能。面向过程特性:封装,只封装了功能。

2、类:class,对具体事物的抽象,是同一类对象的模板;对象:Object,具体的事物。

3、类规则:一个.java文件中有且只有一个public class,可以有多个class,类名需要和文件名保持一致,类中有属性(不初始化就会使用默认值)、方法、构造器,可以用UML图表示类。

4、面向对象的内存分析:java虚拟机的内存可以分为三个区域:栈(Stack)、堆(heap)、方法区(method area)

  • Stack

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

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

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

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

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

  • Heap

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

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

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

  • method area

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

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

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

5、构造器(constructor)

6、垃圾回收机制

  1. 原理:new创建对象,对象置为null释放对象。
  2. 过程:寻找无用对象,释放无用对象。
  3. 方法:
      引用计数法:堆(Heap)中的每个对象有一个引用计数器,引用依次加1,引用值为null,减一,当为0时即为无用对象。缺点:循环引用的无用对象无法识别 
      引用可达法:
  4. 分代垃圾回收机制  

7、内存泄漏

  • 创建大量无用对象
  • 静态集合类的使用:List、HashMap、vector
  • 各种连接对象未关闭
  • 监听器的使用

8、对象创建的实质过程

  1. 分配空间,将成员变量全部赋值为0或空
  2. 属性值的显示初始化
  3. 执行构造函数
  4. 返回对象的地址给相关变量

   这就是可以使用this的原因,在执行构造函数前已经分配好了空间,this可以指代当前对象,也因此this不能用于静态。

9、static--静态初始化块

10、传值:值传递、引用传递,具体可以看https://baijiahao.baidu.com/s?id=1614769568984126810&wfr=spider&for=pc

11、包:管理类(同名类), com.gao和com.gao.car,这两个包没有包含关系,是两个完全独立的包。只是逻辑上看起来后者是前者的一部分。

11、import语句,当导入同名类,需要在前面加上包名和类名。如果选择导入.*,会降低编译速度,不会降低运行速度。静态导入:导入指定类的静态属性

java 面向对象编程

原文:https://www.cnblogs.com/zhangxiaolei0/p/13027681.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!