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

高水平的大连网站建设网络宣传方案

高水平的大连网站建设,网络宣传方案,有建站模板如何建设网站,霸州有做滤芯网站的吗目录 多态数组运算符hashCodefinalize 方法 第三阶段类变量类方法main 方法代码块单例模式饥饿式懒汉式 多态数组 顾名思义,就是在一个数组内体现多态 public class PolyArrDemo {public static void main(String[] args) {// 定义多态数组Fruit[] fruits new Fr…

目录

      • 多态数组
      • ==运算符
      • hashCode
      • finalize 方法
    • 第三阶段
      • 类变量
      • 类方法
      • main 方法
      • 代码块
      • 单例模式
        • 饥饿式
        • 懒汉式

多态数组

顾名思义,就是在一个数组内体现多态

public class PolyArrDemo {public static void main(String[] args) {// 定义多态数组Fruit[] fruits = new Fruit[3];fruits[0] = new Fruit();fruits[1] = new Orange();fruits[2] = new Pear();for (Fruit fruit : fruits) {// 根据动态绑定原理,输出不同的值fruit.say();}}
}class Fruit {public void say() {System.out.println("this is fruit");}
}class Pear extends Fruit {@Overridepublic void say() {System.out.println("pear");}
}class Orange extends Fruit {@Overridepublic void say() {System.out.println("orange");}
}

如果你想要特定的调用每个子类中的新定义的方法

可以先使用 instanceOf 判断当前对象是不是子类的一个实例,如果是,再执行调用

所以上文的 for 循环体内可以加个判断,写成下面的样子(我为 Orange 添加了新方法 eatOrange,这里不给出,大家自己实现即可)

for (Fruit fruit : fruits) {if (fruit instanceof Orange) ((Orange) fruit).eatOrange();fruit.say();
}

==运算符

==有两种作用

  • 进行数值比较,判断两个数是否一致
  • 进行地址比较

下面的赋值方法为引用赋值,故之间地址比较均为 true

A a = new A();
A b = a;
System.out.println(a==b); // true

hashCode

hashCode 用于返回一个对象的哈希值,用于提升哈希表效率

两个引用指向同一对象,哈希值必定一致;
哈希值一致不一定表示引用指向同一对象;

哈希值不完全等于地址值


finalize 方法

对象被垃圾回收时,自动调用的方法;
可以重写该方法,让对象再被释放资源前做一些什么;

采用引用计数法,当 JVM 发现某个对象的引用次数为 0 时,就会执行垃圾回收程序来释放该对象资源

GC 机制由系统决定,当然也可以使用 System.gc() 主动触发回收


第三阶段

类变量

类变量实际上就是普通变量加上一个 static
也称为静态变量

该变量会被该类的所有实例所共享;

class A{public static int count = 0;
}

直接使用 类名.类变量名 来执行访问

没有加上 static 的就是所谓的实例变量

类被加载时,类变量就初始化完毕了,就是说你无需实例化对象就可以直接从类调用该类变量

类变量的生命周期是:类初始化开始到其销毁为止


类方法

类方法也就是静态方法

普通方法加上一个 static 即可,具体调用方法和作用可以直接参考类变量

类方法可以通过类名调用,也可以通过对象名调用;
类方法随类的初始化而加载,结构信息存储于方法区;
类方法无 this 参数,而普通方法有 this 参数;


静态方法只能访问静态的成员(即静态属性和静态方法);普通方法则无限制


main 方法

由于 main 方法自己就是一个静态方法,故也只能调用同类内的静态成员

对于普通成员,则需要实例化自身再执行调用

package chapter2;public class MainDemo {public static void main(String[] args) {// 静态方法可以直接调用MainDemo.func1();// 非静态方法必须实例化自身才可以调用MainDemo mainDemo = new MainDemo();mainDemo.func2();}public static void func1(){System.out.println("static function");}public void func2(){System.out.println("normal function");}
}

众所周知,main 方法接收一个 args 字符串数组,用于命令行添加可变长参数

所以当我们使用命令行执行 java 程序是,可以传入任意长度的参数:
java [类名称] asd asd asd


代码块

代码块有两种:static 代码块和普通代码块

static 代码块可看做对类的初始化,它随着类的加载而执行,且仅执行一次;
普通代码块是当每个对象被创建就执行一次;

类被加载的时刻:

  1. 创建对象实例
  2. 创建子类对象实例,父类会被加载
  3. 使用类内静态成员

普通代码块只有在对象实例化才会被调用,故我们直接使用类内静态成员而不实例化对象,是不会触发普通代码块的!


创建一个类时,对应的调用顺序:

  1. 静态代码块(如果有多个,则按顺序调用)
  2. 普通代码块(如果有多个则按顺序调用)
  3. 构造函数

创建一个子类是,对应的调用顺序

  1. 父类静态代码块和静态属性
  2. 子类静态代码块和静态属性
  3. 父类普通代码块与普通属性初始化
  4. 父类构造函数
  5. 子类普通代码块与普通属性初始化
  6. 子类构造函数

单例模式

饥饿式

class Single1 {private Single1() {}private static final Single1 instance = new Single1();public static Single1 getInstance() {return instance;}
}

懒汉式

class Single2 {private Single2() {}private static Single2 instance;public static Single2 getInstance() {if (instance == null) {instance = new Single2();}return instance;}
}

http://www.hkea.cn/news/936239/

相关文章:

  • 山东做网站的公司seo数据分析哪些方面
  • 做网站用哪几个端口 比较好百度贴吧官网网页
  • 弹幕网站是怎么做的百度在线翻译
  • 独立网站域名代发关键词包收录
  • 如何建立门户网站百度可以发布广告吗
  • 网站开发毕设文献郑州网站优化顾问
  • 青海建设银行的官方网站自己制作网页的网站
  • 网站建设的图片叠加步骤过程2021年搜索引擎排名
  • 网站链接到邮箱怎么做搜索引擎推广试题
  • 十堰城市建设网站制作自己的网站
  • 传媒网站建设公司深圳百度seo优化
  • 公司需要网站 该怎么做公司推广咨询
  • 高中男女做那个视频网站seo做的好的网站
  • 网站建设 摄影服务上海seo网站排名优化公司
  • 网页设计中html代码seo博客网站
  • 怎样建设小游戏网站google关键词搜索技巧
  • 淘宝 客要推广网站怎么做全媒体广告代理
  • 那个b2b网站可以做外贸武汉全网推广
  • 深圳css3网站开发多少钱如何策划一个营销方案
  • 织梦统计网站访问量代码网络营销公司如何建立
  • 外贸营销型网站建设今日最新重大新闻
  • 个性化定制网站长春网络推广优化
  • 合肥庐阳区疫情最新消息seo优化首页
  • h5网站制作接单最新中高风险地区名单
  • 北京市住房城乡建设委网站公司怎么在网上推广
  • 网站建设首页怎样插入视频百度指数在线查询小程序
  • 青州网站制作哪家好aso优化哪家好
  • wordpress做网站优点郑州网站seo优化
  • 宝安做棋牌网站建设找哪家公司好湖南长沙疫情最新消息
  • 四川专业网站建设中国十大企业培训机构排名