javase基础笔记3——this关键字和内存图
什么是面向对象? 面向过程。 面向过程:解决一个问题的思路和方法以及步骤 面向对象:把一些具有相同特征的问题抽象成一个对象,用""""对象.方法()"""""的形式去调用。 面向对象的三个特点: 封装 继承 多态 封装,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关键字和内存图的更多相关文章
- 【JAVA】笔记(1)---JVM内存图;方法重载条件;输入方法;转义字符;强制类型转换;变量分类及区别;Java命名规范;
Java命名规范: 1.包:全部字母小写: 2.类+接口:所有单词的首字母大写: 3.变量+方法:第一个单词的首字母小写,其余单词首字母大写: 3.常量名:所有字母均大写,且用下划线" _ ...
- javase基础笔记4——异常/单例和类集框架
继承 extends final关键 多态 是在继承的基础上 接口 interface 异常 exception 包的访问可控制权限 private default protect public 异常 ...
- javase基础笔记2——数据类型和面向对象
API:Application program interface 程序调用一个方法去实现一个功能 正则表达式:regex 用来匹配的 javaEE里边有三大框架 SSH struts spring ...
- C++基础笔记(四)C++内存管理
析构函数 * 析构函数在对象所占用内存释放时调用,通常用来释放相关的资源 * 析构函数就是一个特殊的类成员函数,它是构造函数相反 构造函数:对象在分配内存之后,立即调用 析构函数:对象在内存被释放之前 ...
- [javase学习笔记]-8.6 静态的内存载入
之前几节我们一直在说statickeyword所修饰的静态,那么在程序执行时,内存中static是怎样体现的呢?这一节我们就来看一看. 我们还是先看一个样例.希望我们通过对这个样例的分析让我们刚開始学 ...
- [javase学习笔记]-6.3 对象的内存体现
这一节我们来简单的看一看对象在内存中是什么样子呢,怎样体现. 我们以上一节的測试代码为例. 我们在函数的内存分配分析过.当该代码执行时,首先会载入主函数在栈内存中为main函数分配一个空间: 然后执行 ...
- javase基础笔记1——简介和发展
软件分为 系统软件 windows linux类 (unix)mac(麦金塔).数据库管理系统 unix linux 开源os(open source) 免费 开放 free os operation ...
- JavaSE基础笔记
JVM 不是跨平台的,他是用 C++编写的. Path 环境变量的地址是 ...jdk/bin java_home 地址是 ...jdk
- JavaSE学习笔记(2)---面向对象基础
JavaSE学习笔记(2)---面向对象基础 1.面向对象具有三大特征:封装性.继承性和多态性,而面向过程没有继承性和多态性,并且面向过程的封装只是封装功能,而面向对象可以封装数据和功能.所以面向对象 ...
随机推荐
- Java for LeetCode 216 Combination Sum III
Find all possible combinations of k numbers that add up to a number n, given that only numbers from ...
- C#创建和调用WebService详细教程
1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求, ...
- 对map创建出来的值顺序排序问题
TreeMap 在用Ajax动态创建checkBox时,而把值放在了HashMap中,hashMap是无序的,因此你动态创建出来的顺序是乱的,比如你想要的顺序是1.2.3.4但出来的结果可能是 3.2 ...
- IOS-01零碎知识总结
1. 变量的@public @private @package @protected 声明有什么含义? @public 可以被所有的类访问 @private 只有该类的方法可以访问,子类的都不能访 ...
- August 11th 2016, Week 33rd Thursday
A particular fine spring came around. 转眼又是一番分外明媚的春光. Hey, it is hot outside, sometimes even unbearab ...
- Java version 32转64位
本来在cmd中 输入 java -version后显示 为 32位,现在需要转为64 位因为eclipse 不兼容,方法: ()下载 java 1.8 64位,安装,然后 ()进入环境变量 发现有两个 ...
- DB2 SQL Mixed data in character strings
Mixed character data and graphic data are always allowed for Unicode, but for EBCDIC and ASCII, the ...
- 启动ip转法功能
这种方法无需重启: [root@ha02 ~]# cat /proc/sys/net/ipv4/ip_forward [root@ha02 ~]# sysctl -w net.ipv4.ip_forw ...
- SQL学习笔记----更改SQL默认的端口号
1.SQLServer配置管理器----SQLServer网络配置----MSSQLSERVER的协议---TCP/IP(已启用)---IP地址 清空素有的IP,在IPALL下更改默认的端口: 2. ...
- Clr Via C#读书笔记---程序集的加载和反射
#1 加载程序集 Assembly.Load: public class Assembly { public static Assembly Load(AssemblyName assemblyRef ...