Java运行原理及内存分析 一.Java运行原理 二.Java内存分析…
(一)Eclipse中的快捷键:  ctrl+shift+f自动整理选择的java代码 alt+/ 生成无参构造器或者提升信息 alt+shift+s+o 生成带参构造 ctrl+shift+o快速导入包 alt+shift+s+r tab+enter-->shift+tab+enter 快速生成get set方法 ctrl+f11快速运行代码 说明:快捷键可以快速帮我们生成代码,减少开发的时间,提高效率,记住几个主要的就可以,其他的可以在Eclipse的编辑器中右键鼠标,在弹出的菜单项中选择s…
对象内存分析,我一直学的比较模糊,今天抽空整理一下,希望能理清. 先说一下,内存分析从何而来,这对于我们这些刚接触java的人来说都比较模糊,就从new关键字说起吧. new关键字表示创建一个对象或者说是实例化对象或者说是申请内存空间,所有程序运行都需要内存来存储数据,这样内存的概念就出来了.举个例子说明:定义一个类Person,属性:char a;int sge;那么创建一个对象申请的内存空间就是所有属性所占字节之和,为6个字节. 详细理一下对象在内存中的结构: Person p=new Pe…
前言:        我们在运行程序时,有时会碰到内存溢出(OutOfMemoryError)的问题,为了解决这种问题,我们有必要了解JVM的内存结构和垃圾回收机制. 正文: 1.JVM堆内存结构         JVM主要管理两种类型的内存,堆内存和非堆内存.         "java虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此分配,堆是java虚拟机启动时创建的",对内存就是代码可及的地方.        "java虚拟机除堆外的内存称为非堆内存&…
一.数组概念   数组即为多个相同数据类型数据的数据按一定顺序排列的集合. 二.数组的特点   1.数组有数组名.索引.元素.素组长度:   2.数组的元素可以是基本数据类型也可以是引用数据类型:   3.数组的长度一旦确定便不可更改:   4.数组的在内存中表现为连续的存储单元,数组名引用的是首地址: 三.数组分类   按照维度分可以分为一维数组和多维数组:按照元素类型分可以分为基本类型元素数组和引用数据类型元素数组. 四.初始化默认值 五.一维数组 初始化   1.动态初始化:动态初始化便是…
一. jdk的内存:jdk的bin目录常见命令 1. javac.exe:编译java源代码的,生成java字节码文件(*.class) 2. java.exe:启动一个jvm,来运行指定class字节码文件 3. javap.exe:(javap -c  java type.class)反汇编Java字节码成Java源代码. 二. Jvm的内存 1. 栈内存:函数的{ }之间定义的变量均在JVM的stack栈内存中存储(在定义其变量的时候,开辟空间,当执行到函数右大括号时,栈内存回收) 注:简…
/** *   栈(Stack) :存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放  在常量池中). 堆(heap):存放所有new出来的对象. *   静态存储:存放静态成员(static定义的). 常量池(constant pool):在堆中分配出来的一块存储区域,存放储显式的String常量和基本类型常量(float.int等).另外,可以存储不经常改变的东西 *                       p…
类加载器 类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,链接,初始化三步来实现对这个类进行初始化. 加载就是指将class文件读入内存,并为之创建一个Class对象.任何类被使用时系统都会建立一个Class对象. 链接指的是将Java类的二进制代码合并到JVM的运行状态之中的过程.在链接之前,这个类必须被成功加载.类的链接包括验证.准备和解析等几个步骤. 验证:是否有正确的内部结构,并和其他类协调一致. 准备:负责为类的静态成员分配内存,并设置默认初始化值 解析:…
java构造器的使用(基础篇) 构造方法也叫构造器,是创建对象时执行的特殊方法,一般用于初始化新对象的属性. 基本定义语法: 访问控制符 构造方法名([参数列表]){ 方法体 } 注:"访问控制符"需使用public,因为构造方法主要是提供给其他类使用 2.构造方法名必须和类名相同,要注意大小写. 3.构造方法可以带参数(有参构造),也可以不带参数(无参构造). 4.构造方法不显示声明返回类型,也不能使用void. 构造方法也可以重载与普通方法的重载相同. 一个对象只能调用一次构造方法…
java中long类型转换为int类型 由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况: 主要以下几种转换方法,供参考: 一.强制类型转换 [java] long ll = 300000; int ii = (int)ll; 二.调用intValue()方法 [java] long ll = 300000; int ii= new Long(ll).intValue(); 三.先把long转换成字符串String…