当前位置: 首页 > news >正文

大公司做网站的优势上海市建筑业官网

大公司做网站的优势,上海市建筑业官网,wordpress 文章通用模板下载,简单个人网站模板下载目录 一、方法区1、类常量池2、静态常量池3、方法区过程 二、栈三、堆1、字符常量池2、堆内存图的绘制 java中内存可以分为 方法区、 堆、 栈、 程序计数器、 本地方法栈#xff0c;其中比较中重要的是方法区、堆、栈。 一、方法区 1.方法区#xff08;Method Area其中比较中重要的是方法区、堆、栈。 一、方法区 1.方法区Method Area与Java堆一样是各个线程共享的内存区域。 2.方法区在JVM启动的时候被创建并且它的实际的物理内存空间中和Java堆区一样都可以是不连续的。 3.方法区的大小跟堆空间一样可以选择固定大小或者可扩展。 4.方法区的大小决定了系统可以保存多少个类加载项目中的类同时将类中的方法和属性加载到方法区当中 5.关闭JVM就会释放这个区域的内存。 提供两个类Person和Test类其中Person类定义如下 package 内存图;public class Person {public int age;public String name;public static int flag;public void m1() {}public static void m2() {}Overridepublic String toString() {return Person [age age , name name flag flag];}} Test类定义如下 package 内存图;public class Test {public static void main(String[] args) {Person x1 new Person();x1.age 20;x1.name 11;x1.flag 1;Person x2 new Person();x2.age 22;x2.name22;x2.flag 2;System.out.println(x1);System.out.println(x2);change1(x1,x2);System.out.println(x1);System.out.println(x2);change2(x1,x2);System.out.println(x1);System.out.println(x2);}public static void change1(Person a,Person b) {Person temp a;ab;btemp;}public static void change2(Person a,Person b) {int temp_age a.age;String temp_name a.name;a.age b.age;a.name b.name;b.age temp_age;b.name temp_name;} } 分析上述的两个类中的情况 Person: 属性age(int)name(String)flag(static int) 方法m1()m2()(Static) toString() Test: 属性空 方法main()(static)change1(Peson a,Person b)change2(Person a,Person b)(static) 1、类常量池 类常量池里面存储的是类的信息其中存储java类中的方法和属性即上述的Person和Test类。其中存储的情况如下 其中被static静态定义的方法和属性标记为红色此时内存没有给类分配内存地空间因此其中定义的方法和属性由于没有分配内存空间不可以被使用static定义的方法和属性除外。 2、静态常量池 静态常量池用于存储类常量池中被static修饰过的方法和属性并且为这些方法和属性分配内存空间因此属性被分配内存空间后属性会存在其类型的默认值。 3、方法区过程 类被加载到类常量池中并且获得其中的方法和属性但是此时没有给方法和属性分配内存空间即对象没有被定义时无法获得其中的没有被static修饰过的方法和属性被static修饰过的会被分配内存空间即使没有创建对象的时候仍可以使用其中的方法和属性 二、栈 栈有一个特点为后入先出首先被加载到栈中的方法最后出栈最后入栈的方法最先出栈。main()为程序的入口因此栈中首先加载main()方法直到方法结束。 main()方法中的执行代码如下 Person x1 new Person();x1.age 20;x1.name 11;x1.flag 1;Person x2 new Person();x2.age 22;x2.name22;x2.flag 2;System.out.println(x1);System.out.println(x2);change1(x1,x2);System.out.println(x1);System.out.println(x2);change2(x1,x2);System.out.println(x1);System.out.println(x2);根据main()方法中创建变量创建变量如下由于x1和x2都是非基本数据类型因此变量中存储的是堆中的内存地址。当方法出栈之后变量也会被回收。 并且main()中的方法按照顺序依次执行遇到变量时会创建变量遇到方法时会将方法加入到栈当中。 当方法全部入栈之后 根据后入先出 最后main()方法出栈栈空 三、堆 堆内存通常有较大的空间供程序使用其大小受限于系统的有效虚拟内存除基础类型以外的复杂数据类型的创建都在堆中操作由堆分配内存空间供变量使用例如数组、对象、字符串、列表等 1、字符常量池 字符串常量池是Java中一个重要的概念用于优化字符串的存储和使用。它的主要目的是提高性能和减少内存开销。在字符串定义时为了避免重复定义浪费空间创建字符常量池每一次定义字符串时会判断字符常量池中是否包含该字符串如果包含会直接将其内存地址赋值给变量名不存在时会在字符常量池中创建被创建的字符串在未被使用时不会被立刻回收。 2、堆内存图的绘制 经过下面的代码之后堆中会创建出下面的情况 Person x1 new Person();x1.age 20;x1.name 11;x1.flag 1; 因为flag位于静态常量池当中因此创建的对象实例中不包含flag修改时会直接修改静态常量池中的flag。 Person x2 new Person();x2.age 22;x2.name22;x2.flag 2;System.out.println(x1);System.out.println(x2); 经过上面的代码之后堆中会创建出下面的情况 并且会打印x1和x2。 change1(x1,x2);System.out.println(x1);System.out.println(x2);经过上面的代码之后栈中会载入change1()的方法堆中会创建出下面的情况 此时x1和x2中的并未发生交换方法结束后会消除该方法。 change2(x1,x2);System.out.println(x1);System.out.println(x2);结束后效果如下 x1和x2中的age和name发生交换。
http://www.pierceye.com/news/433910/

相关文章:

  • 莱州人社局网站网站开发项目资金运用明细
  • 水墨网站模板软通动力外包怎么样
  • 直播间网站建设小清新wordpress主题
  • 淘金网站建设推广汽车 营销 网站建设
  • 网站站内链接seo外链发布工具
  • 如何设计大型电商网站建设利用php做网站
  • 大朗网站仿做google广告
  • 跳转网站代码wordpress文章只能会员才能看
  • 大鹏网络网站建设报价vps的网站打不开
  • 西部数码网站管理助手卸载修改网站空间服务器密码
  • asp网站开发技术总结与收获建设银行网站怎么登录密码忘了怎么办
  • 营销型企业网站 网络服务flashfxp 网站
  • 青岛网站建设服务平台邢台专业网站建设费用
  • wordpress做网站好吗戴南做网站
  • 中山精品网站建设价位网站开发后台一般用什么
  • 万网 手机网站物联网平台介绍
  • 墨星写作网站网站建设使用的什么语言
  • wdcp网站搬家wordpress 改成宽屏
  • 汽车网站建设规划书洛阳恢复客运最新通知
  • 商洛建设网站有了网站源码可以做网站吗
  • 网站运营学习电子商务网站建设与管理的实验报告
  • 上海设计网站与太原免费网络推广哪里朿
  • 网站前端建设需要学会什么珠海网站优化公司
  • 北京微网站wordpress添加代码运行
  • 浙江省住房和城乡建设厅网站网站开发流程博客
  • 网站刷流量会怎么样广东网站备案时间
  • 昆明企业建站模板如何做网站品类
  • 学做网站去哪学网站开发app开发
  • 如何编写网站建设销售的心得网页设计制作方法
  • seo工具网站课程网站建设的步骤