什么是面向对象? 面向过程。 面向过程:解决一个问题的思路和方法以及步骤 面向对象:把一些具有相同特征的问题抽象成一个对象,用""""对象.方法()"""""的形式去调用。 面向对象的三个特点: 封装 继承 多态 封装,private 私有,独占 把对象的方法和属性封装到类中,是面向对象语言的核心思想。 继承:extends 子类继承父类,父类派生子类 多态:有继承才有多态,多态增加了程序的扩展性。

类中有方法和属性 属性私有化,方法public

类是抽象的,对象是具体的 对象new这个关键字来引导生成

Object类是一切类的父类。所有的类都默认继承Object类

原始数据类型

引用数据类型  数组 枚举(enum) 类(class) 接口(interface) 注解

java使用unicode编码方法 String ‘/u0000’  null 对象 int 0

成员属性自动初始化

================================================ 构造方法 有构造方法才能生成对象 构造方法名与类名相同 构造方法必须public 构造方法不能有返回值以及方法内部存在return语句 构造方法空参的默认自动隐藏,但是如果你在类中,定义了任何一个非空参的构造方法,必须得把这个空参的重新写一遍。

方法以及构造方法的重载 方法重载: 方法名字相同,方法的参数个数是或者参数类型不同就可以了,与返回值类型无关。

this和static this关键字:区分成员变量以及局部变量才出现的 成员变量:类中的属性   成员变量自动初始化 局部变量:花括号中定义的变量{}  局部变量不自动初始化 局部变量和成员变量可以重名,作用范围不一样 成员变量和局部变量优先打印最近的那个变量 #######this相当于当前对象#### this可以调用构造方法,可以调用方法,可以调用成员属性 1.this(参数) 2.this.方法名() 此时this可以省略 3.this.属性名 注意:this调用构造方法时候的注意事项   1,this必须出现在第一行   2,只能出现一次   3,防止来回调用

static关键字  修饰静态成分的关键字 成员方法  静态方法只能调用静态方法 成员属性  静态方法修饰的成员属性一般为全局共享的属性 静态代码快   和类一起加载进内存,只加载一次 ===============super==============关键字用在继承 子类继承父类,默认会调用父类无参的构造方法,如果你申明了一个有参的构造方法,父类就找不到无参的构造方法了,所以显示的声明一下。 ===============super==============

垃圾回收机制 java一大优点:free释放内存在c++中,在java中不用考虑这点 只要引用无效,对象就会成为垃圾。。内存就会被自动释放 java语言自动回收垃圾的方法是System.gc()方法,在这个方法执行之前jvm会自动调用Object类中的fianlize()方法

内部类

成员内部类  类以成员的形式出现 静态内部类  类以成员的形式出现,但是加了关键字static 方法内部类  定义在方法内的内部类

javase基础笔记3——this关键字和内存图的更多相关文章

  1. 【JAVA】笔记(1)---JVM内存图;方法重载条件;输入方法;转义字符;强制类型转换;变量分类及区别;Java命名规范;

    Java命名规范: 1.包:全部字母小写: 2.类+接口:所有单词的首字母大写: 3.变量+方法:第一个单词的首字母小写,其余单词首字母大写: 3.常量名:所有字母均大写,且用下划线" _ ...

  2. javase基础笔记4——异常/单例和类集框架

    继承 extends final关键 多态 是在继承的基础上 接口 interface 异常 exception 包的访问可控制权限 private default protect public 异常 ...

  3. javase基础笔记2——数据类型和面向对象

    API:Application program interface  程序调用一个方法去实现一个功能 正则表达式:regex 用来匹配的 javaEE里边有三大框架 SSH struts spring ...

  4. C++基础笔记(四)C++内存管理

    析构函数 * 析构函数在对象所占用内存释放时调用,通常用来释放相关的资源 * 析构函数就是一个特殊的类成员函数,它是构造函数相反 构造函数:对象在分配内存之后,立即调用 析构函数:对象在内存被释放之前 ...

  5. [javase学习笔记]-8.6 静态的内存载入

    之前几节我们一直在说statickeyword所修饰的静态,那么在程序执行时,内存中static是怎样体现的呢?这一节我们就来看一看. 我们还是先看一个样例.希望我们通过对这个样例的分析让我们刚開始学 ...

  6. [javase学习笔记]-6.3 对象的内存体现

    这一节我们来简单的看一看对象在内存中是什么样子呢,怎样体现. 我们以上一节的測试代码为例. 我们在函数的内存分配分析过.当该代码执行时,首先会载入主函数在栈内存中为main函数分配一个空间: 然后执行 ...

  7. javase基础笔记1——简介和发展

    软件分为 系统软件 windows linux类 (unix)mac(麦金塔).数据库管理系统 unix linux 开源os(open source) 免费 开放 free os operation ...

  8. JavaSE基础笔记

    JVM 不是跨平台的,他是用 C++编写的. Path 环境变量的地址是 ...jdk/bin java_home 地址是 ...jdk

  9. JavaSE学习笔记(2)---面向对象基础

    JavaSE学习笔记(2)---面向对象基础 1.面向对象具有三大特征:封装性.继承性和多态性,而面向过程没有继承性和多态性,并且面向过程的封装只是封装功能,而面向对象可以封装数据和功能.所以面向对象 ...

随机推荐

  1. linux shell脚本通过参数名传递参数值

    平常在写shell脚本都是用$1,$2....这种方式来接收参数,然而这种接收参数的方式不但容易忘记且不易于理解和维护.Linux常用的命令都可指定参数名和参数值,然而我们怎样才能给自己的shell脚 ...

  2. java sleep() 、yield()

    1.sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁.也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据.注意该方 ...

  3. jquery.validate ajax提交

    页面引入jquery.validate.min.js <style> //引入错误格式     label.error {        display: block;        ma ...

  4. python if __name__ == '__main__'解析

    废话不多说,正题: python中所有的模块都有一个内置属性 __name__,一个模块的 __name__ 的值取决于如何应用模块.如果 import 一个模块,那么模块__name__ 的值通常为 ...

  5. 如何将Js代码封装成Jquery插件

    很多相同的Jquery代码会在很多页面使用,每次都复制粘贴太麻烦了,不如封装成一个Jquery插件就方便了,至于影响网页的速度不,我就没有测试了哈. 代码如下 这是一个自定闪烁打印文字的Jquery特 ...

  6. php处理图片实现

    <?php include("SimpleImage.php");//图片处理类在下面 $url="http://f3.v.veimg.cn/meadincms/1 ...

  7. C#实现把指定文件夹下的所有文件复制到指定路径下以及修改指定文件的后缀名

    1.实现把指定文件夹下的所有文件复制到指定路径下 public static void copyFiles(string path) { DirectoryInfo dir = new Directo ...

  8. supersr--九宫格公式(根据多少行多少列排版)

    - (void)layoutSubviews{ [super layoutSubviews]; NSUInteger count = self.subviews.count; NSInteger ma ...

  9. 多线程编程2 - NSOperation

    一.NSOperation 1.简介 NSOperation实例封装了需要执行的操作和执行操作所需的数据,并且能够以并发或非并发的方式执行这个操作. NSOperation本身是抽象基类,因此必须使用 ...

  10. 55. Jump Game leetcode

    55. Jump Game Total Accepted: 95819 Total Submissions: 330538 Difficulty: Medium Given an array of n ...