I学霸官方免费教程七:Java基础之类和对象
2015-08-10 17:11
676 查看
类和对象
类和对象
例如:人类指的是包含所有人的集合,而某个人就是人类的一个具体的对象在java中,类是用于描述对象的抽象,对象是使用类创建出来的具体实例。
简单的说,类就是我们编写的代码,对象就是程序运行时,通过类在内存中创建的一个复制品。类相当于创建对象的模板,对象相当于通过模板创建出来的实物。
声明类的语法格式:[访问修饰符] class 类名{ }
声明某个类型的引用(变量):类名 变量名;
创建对象的语法格式:new 类名();
可以将以上两句合并:类名 变量名 = new 类名();
访问类的成员:类名.属性 类名.方法();
所有的自定义类,都是引用类型; 直接包含在类中的变量、方法等,统称为类的成员。
实例: /** * 使用关键字class声明一个类,类名叫Person * @author 学霸联盟 - 赵灿 */ public class Person { //声明String类的变量name String name; } /** * 使用关键字class声明一个类,类名叫PersonDemo * @author 学霸联盟 - 赵灿 */ public class PersonDemo { public static void main(String[] args) { //声明一个Person类型的变量p Person p; //用关键字new创建一个Person类型的对象,并将对象赋值给变量p p = 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虚拟机对内存的管理》
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- Myeclipse中解决spring配置文件无提示问题
- 写一个程序,乞讨1+2*2+3*3+n*n值 Java
- Java多线程之wait,notify,sleep,,yield,join,suspend,resume
- java 策略模式
- Eclipse中Debug 总显示source not found
- MAVEN下载与安装
- 编号为1,2,3,4.......n的一群人沿顺时针方向围绕一圈的问题
- JAVA实现AES加密技巧分享
- webservice 基于struts2 spring3 hibernate4 cxf2.7
- ubuntu 配置JDK环境变量
- spring使用PropertyPlaceholderConfigurer扩展来满足不同环境的参数配置
- java多线程-线程同步
- Java一个多线程的经典例子
- java Future 接口介绍
- Java学习笔记-------好友列表的实现------卡片布局 实例
- java.lang.management.ManagementFactory的JAVA属性
- Zookeeper 初体验之——JAVA实例
- Zookeeper 初体验之——JAVA API 初探
- Swing 中windowClosed函数和windowClosing函数说明
- springmvc @ModelAttribute的使用