I学霸官方免费教程七:Java基础之类和对象
来源:互联网 发布:sql scope identity 编辑:程序博客网 时间:2024/05/19 01:30
类和对象
类和对象
例如:人类指的是包含所有人的集合,而某个人就是人类的一个具体的对象在java中,类是用于描述对象的抽象,对象是使用类创建出来的具体实例。
简单的说,类就是我们编写的代码,对象就是程序运行时,通过类在内存中创建的一个复制品。类相当于创建对象的模板,对象相当于通过模板创建出来的实物。
声明类的语法格式:[访问修饰符] class 类名{ }
声明某个类型的引用(变量):类名 变量名;
创建对象的语法格式:new 类名();
可以将以上两句合并:类名 变量名 = new 类名();
访问类的成员:类名.属性 类名.方法();
所有的自定义类,都是引用类型; 直接包含在类中的变量、方法等,统称为类的成员。
实例:/** * 使用关键字class声明一个类,类名叫Person * @author 学霸联盟 - 赵灿 */public class Person { //声明String类的变量nameString name;}/** * 使用关键字class声明一个类,类名叫PersonDemo * @author 学霸联盟 - 赵灿 */public class PersonDemo {public static void main(String[] args) { //声明一个Person类型的变量pPerson p;//用关键字new创建一个Person类型的对象,并将对象赋值给变量pp = new Person();//声明一个Person类型的变量p1,并赋值Person p1 = new Person();//为对象p的name属性赋值p.name = "张三";//输出对象p的name属性值System.out.println(p.name);}}运行结果:张三
JVM的内存管理
当启动一个java程序时,首先会启动一个JVM;JVM会在内存中划出一块空间,用于运行启动的java程序。这块空间粗略的可以分为栈(堆栈)、堆和方法区栈(Stack):当一个方法被执行时,会在栈内存中创建一个栈帧(Stack Frame)用于存储局部变量等信息,这个创建栈帧的过程叫做压栈(入栈)。当方法执行完毕后,这个方法的栈帧会从栈内存中被清除,这个过程叫做弹栈(出栈)。
栈的特性包括:1、“后进先出” 2、线程私有 3、生命周期和线程相同
堆(Heap): 对于大多数应用来说,堆是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。
堆的特性包括:1、动态分配内存 2、线程共享 3、生命周期不确定
方法区(Method Area):它用于存储已被虚拟机加载的类信息、常量、静态变量、编译后的代码等数据。虽然Java虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却有一个别名叫做Non-Heap(非堆),目的应该是与Java堆区分开来。
方法区的特性包括:与堆内存类似
扩展阅读:《JAVA虚拟机对内存的管理》
0 0
- I学霸官方免费教程七:Java基础之类和对象
- I学霸官方免费教程十:Java基础之关键字static和this
- I学霸官方免费教程四十六 :Java基础之序列化和反序列化
- I学霸官方免费教程九:Java基础之成员变量(全局变量)和局部变量
- I学霸官方免费教程十三:Java面向对象三大特性之封装
- I学霸官方免费教程十四:Java面向对象三大特性之继承
- I学霸官方免费教程十五:Java面向对象三大特性之多态
- I学霸官方免费教程十六:Java面向对象之抽象类
- I学霸官方免费教程十七:Java面向对象之接口
- I学霸官方免费教程三:Java基础之注释 关键字 标识符
- I学霸官方免费教程四:Java基础之数据类型 常量 变量 数据类型转换
- I学霸官方免费教程五:Java基础之运算符
- I学霸官方免费教程六:Java基础之流程控制
- I学霸官方免费教程八:Java基础之方法(函数)
- I学霸官方免费教程十一:Java基础之访问权限
- I学霸官方免费教程十二:Java基础之内部类
- I学霸官方免费教程二:Java简介和开发环境配置
- I学霸官方免费教程三十五:Java集合框架之Collection接口和Collections类
- day0810-JDBC-SQL
- 初学Redis(2)——用Redis作为Mysql数据库的缓存
- 百度测试开发面试题
- Snail—算法学习之多位整数倒序输出
- BeeFramework框架学习之三(底部菜单栏的实现之一)
- I学霸官方免费教程七:Java基础之类和对象
- 学习资料
- linux3.2.0块设备及nandflash驱动框架
- 【数据结构与算法】折半查找算法(二分法)
- Tomcat源码阅读四:Digester工具
- js基础
- Google 收购 Android 十周年 全面解读Android现状
- linux环境下如何对oracle数据库进行整库备份
- 微软牛津项目:图像搜索