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

河津网站建设磁力宅在线搜种子

河津网站建设,磁力宅在线搜种子,佛山专业的网站建设,佛山出格建站书接上回 类与对象 static关键字 static的作用: 修饰一个属性:声明为static的变量实质上就是一个全局变量,其生命周期为从类被加载开始一直到程序结束;修饰方法:无须本类的对象也可以调用该方法;修饰一个类&#x…

书接上回

类与对象

static关键字

static的作用:

  1. 修饰一个属性:声明为static的变量实质上就是一个全局变量,其生命周期为从类被加载开始一直到程序结束;
  2. 修饰方法:无须本类的对象也可以调用该方法;
  3. 修饰一个类:该类必须是内部类(后说);
    静态类与变量通过类名直接调用:类名.静态变量/静态方法。注意,非静态方法中可以调用静态的变量和方法,而静态方法中只能调用静态的变量和方法,不能调用非静态的变量和方法。
public class Test{public static void main(String[] args) {House h;//声明一个类的变量h = new House();//创建实例对象h.kind = "别墅";h.Print();//非静态方法的调用需要有h这个对象House.Smile();//静态类直接调用System.out.println(House.Count);//变量的调用也一样}
}
public class House{String kind = "未知";static int Count = 3;public void Ptint(){System.out.println(kind + Count +"栋");}public static void Smile(){System.out.println("哈哈,被骗了");}
}

静态方法限制:

  1. 仅能调用其他static方法;
  2. 只能访问static数据;
  3. 不能以任何方式引用this和super;
    因为static的限制,所以我们再定义他的时候最好确定之后他是否是所有对象共同的属性或方法在将其定义为静态。

值传递与引用传递

有一道非常经典的面试题目:


public class Test {public static void main(String[] args) {Integer a = 1;Integer b = 2;System.out.println("a 和 b 的原始的值:"+a+" "+b);swap(a,b);System.out.println("a 和 b 的现在的值:"+a+" "+b);}private static void swap(Integer a, Integer b) {// 交换a与b的值}

实现变量的交换非常简单,前面已经学习过了三种交换方法,直接带入最简单的:

 	private static void swap(Integer a, Integer b) {// 交换a与b的值int c;c = a;a = b;b = c;}

完成后最后的结果却是错的,这是因为程序中只交换了形参的值,而实参却没有丝毫变化。
形参 :就是形式参数,用于定义方法的时候使用的参数,是用来接收调用者传递的参数的。 形参只有在方法被调用的时候,虚拟机才会分配内存单元,在方法调用结束之后便会释放所分配的内存单元。 因此,形参只在方法内部有效,所以针对引用对象的改动也无法影响到方法外。
实参 :就是实际参数,用于调用时传递给方法的参数。实参在传递给别的方法之前是要被预先赋值的。 在本例中 swap 方法中的a, b 就是形参,传递给 swap 方法的 a,b 就是实参。
值传递:只能把实参传递给形参,而不能把形参的值反向作用到实参上。在函数调用过程中,形参的值发生改变,而实参的值不会发生改变。
在上题中,实际内存情况:
在这里插入图片描述
引用传递:是将实参引用的地址传递给了形参,所以任何发生在形参上的改变也会发生在实参变量上。
在第一个程序中h.kind = "别墅";这就是引用传递:
在这里插入图片描述

内存结构

在这里插入图片描述
.class:java程序编译后产生的编译文件;
类加载器:加载.class文件 ;
方法区:各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据;
栈内存: 在栈内存中保存的是堆内存空间的访问地址,或者说栈中的变量指向堆内存中的变量(Java中的指针);
堆内存:堆内存用来存放由new创建的对象实例和数组;
本地方法栈:存储本地方法,比如c语言栈。
程序计数器:可以看做是当前线程所执行的字节码的行号指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都要依赖这个计数器来完成。

代码块

用大括号裹起来的代码:

  1. 普通代码块:在方法中的写的代码块;
  2. 构造块:在类中定义的代码块,在创造对象时被调用,优于构造方法;
  3. 静态代码块:在类中是使用static声明的代码块,在第一次被调用(创建对象)时被调用,只会执行一次,优于构造块;
  4. 同步代码块:多线行程中介绍;
public class Test{public static void main(String[] args) {House h1 = new House();House h2 = new House();House h = null;}
}
public class House{public House(){System.out.println("构造方法/n--------------");}{System.out.println("构造块House/n---------");}public static void Smile(){{String info = "普通代码块smile/n-----------";System.out.println(info);			}}static {String info = "静态代码块smile/n-----------";}
}
http://www.yidumall.com/news/60924.html

相关文章:

  • 手机网站制作细节网络推广教程
  • 食品网站策划上海seo怎么优化
  • 哪个网站可以查到竣工资料怎么做小米的推广软文
  • 洛阳网站建设睿翼网络入驻洛阳廊坊seo排名霸屏
  • 分销平台软件seo搜索优化公司报价
  • 建设教育网站的目的关键词排名点击
  • 网站建设与推广的销售武汉seo公司排名
  • 网站设计的可行性分析深圳seo网站推广方案
  • 南宁网站设计无忧seo博客
  • 网站需备案查权重
  • 小企业网站建设公司太原网站建设开发
  • 做房产网站多少钱seo指的是搜索引擎
  • wordpress的二次开发seo是搜索引擎优化
  • 杭州做网站哪家最好软文营销的技巧
  • 建设网站费用流量查询网站
  • 网站的界面设计怎么做星乐seo网站关键词排名优化
  • 家具 东莞网站建设产品推广方案范文500字
  • 许昌中国建设银行官网站关键词排名推广
  • 新疆机票网站制作网站seo推广优化
  • 做背景音乐的版权网站自助建站seo
  • 手机做无水印短视频网站爱站网关键词挖掘工具站长工具
  • wordpress 跨域ajaxseo推广培训中心
  • 外贸网站建设 东莞手机怎么自己制作网页
  • 深圳网站制作建设公司推荐刷关键词排名
  • 视频网站怎么做防盗链免费发布推广信息的b2b
  • html5优秀企业网站南京怎样优化关键词排名
  • jsp servlet做博客网站北京网络seo
  • 成都网站建设公司汇总燃灯seo
  • 深圳品牌营销型网站建设大亚湾发布
  • 网站描述是什么免费二级域名注册申请