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

胶州家园网站建设什么是网络整合营销

胶州家园网站建设,什么是网络整合营销,烟台房产网站建设,东莞网络推广外包公司典型回答 final 可以用来修饰类、方法、变量,分别有不同的意义,final 修饰的 class 代表不可以继承扩展, final 的变量是不可以修改的,而 final 的方法也是不可以重写的(override)。 finally 则是 Java 保…

典型回答

final 可以用来修饰类、方法、变量,分别有不同的意义,final 修饰的 class 代表不可以继承扩展, final 的变量是不可以修改的,而 final 的方法也是不可以重写的(override)。

finally 则是 Java 保证重点代码一定要被执行的一种机制。我们可以使用 try - finally 或者 try - catch - finally 来进行类似关闭 JDBC 连接、保证 unlock 锁等动作。

finalize 是基础类 java.lang.Object 的一个方法,它的设计目的是保证对象被垃圾收集前完成特定资源的回收。finalize 机制现在已经不推荐使用,并且在 JDK9 开始被标记为 deprecated。

知识扩展

关于 final

final 是一个非访问修饰符,仅适用于变量,方法或类。

final 修饰变量

当使用 final 关键字声明类成员变量或局部变量后,其值不能被再次修改;也经常和 static 关键字一起,作为 类常量 使用。
很多时候会容易把 static 和 final 关键字混淆,static 作用于成员变量用来表示只保存一份副本,而 final 的作用是用来保证变量不可变。
如果 final 变量是引用,这意味着该变量不能重新绑定到引用另一个对象,但是可以更改该引用变量指向的对象的内部状态,即可以从 final 数组或 final 集合中添加或删除元素。最好用全部大写来表示 final 变量,使用下划线来分隔单词。

//一个final成员常量
final int THRESHOLD = 5;
//一个空的final成员常量
final int THRESHOLD;
//一个静态final类常量
static final double PI = 3.141592653589793;
//一个空的静态final类常量
static final double PI;
初始化final变量:

我们必须初始化一个final变量,否则编译器将抛出编译时错误。final 变量只能通过初始化器或赋值语句初始化一次。初始化 final 变量有三种方法:

  • 可以在声明它时初始化 final 变量。这种方法是最常见的。如果在声明时未初始化,则该变量称为空 final 变量。下面是初始化空 final 变量的两种方法。
  • 可以在 instance-initializer 块 或内部构造函数中初始化空的final变量。如果您的类中有多个构造函数,则必须在所有构造函数中初始化它,否则将抛出编译时错误。
  • 可以在静态块内初始化空的 final 静态变量。

这里注意有一个很普遍的误区。很多人会认为 static 修饰的 final常量必须在声明时就进行初始化,否则会报错。但其实则不然,我们可以先使用 static final 关键字声明一个类常量,然后再在静态块内初始化空的 final 静态变量。

何时使用 final 变量 ?

普通变量和 final 变量之间的唯一区别是我们可以将值重新赋值给普通变量;但是对于 final 变量,一旦赋值,我们就不能改变 final 变量的值。因此,final 变量必须仅用于我们希望在整个程序执行期间保持不变的值。

final 修饰类

当使用 final 关键字声明一个类时,它被称为 final 类。被声明为 final 的类不能被扩展(继承)。final 类有两种用途:

  • 一个是彻底防止被继承,因为 final 类不能被扩展。例如,所有包装类如 Integer,Float 等都是 final 类。我们无法扩展它们。
  • final 类的另一个用途是创建一个类似于 String 类的不可变类。只有将一个类定义成为 final 类,才能使其不可变。

Java支持把 class 定义成 final,似乎违背了面向对象编程的基本原则,但在另一方面,封闭的类也保证了该类的所有方法都是固定不变的,不会有子类的覆盖方法需要去动态加载。这给编译器做优化时提供了更多的可能,最好的例子是 String,它就是 final类,Java 编译器就可以把字符串常量(那些包含在双引号中的内容)直接变成 String 对象,同时对运算符 “+” 的操作直接优化成新的常量,因为 final 修饰保证了不会有子类对拼接操作返回不同的值。

final关键字在效率上的作用主要可以总结为以下三点:
  • 缓存:final 配合 static 关键字提高了代码性能,JVM和Java应用都会缓存 final 变量。
  • 同步:final 变量或对象是只读的,可以安全的在多线程环境下进行共享,而不需要额外的同步开销。
  • 内联:使用 final 关键字,JVM会显式地主动对方法、变量及类进行内联优化。

关于 finally

try 关键字最后可以定义 finally 代码块。 finally 块中定义的代码,总是在 try 和任何 catch 块之后、方法完成之前运行。

正常情况下,不管是否抛出或捕获异常 finally 块都会执行。

啥时候 finally 不会被执行 ?

尽管通常编写 finally 代码块是为了这段代码一定被执行到,但是也有一些特殊情况会导致 JVM 不会执行 finally 代码块。

如果操作系统中断了我们的程序,那么 finally 代码块可能就不能被执行。也有很多其他类似的行为导致 finally 代码块不被执行。

调用 System.exit 函数
try {System.out.println("Inside try");System.exit(1);
} finally {System.out.println("Inside finally");
}

结果

 Inside try
调用 halt 函数
try {System.out.println("Inside try");Runtime.getRuntime().halt(1);
} finally {System.out.println("Inside finally");
}

结果

 Inside try
守护线程

如果守护线程刚开始执行到 finally 代码块,此时没有任何其他非守护线程,那么虚拟机将退出,此时 JVM 不会等待守护线程的 finally 代码块执行完成。

Runnable runnable = () -> {try {System.out.println("Inside try");} finally {try {Thread.sleep(1000);System.out.println("Inside finally");} catch (InterruptedException e) {e.printStackTrace();}}
};
Thread regular = new Thread(runnable);
Thread daemon = new Thread(runnable);
daemon.setDaemon(true);
regular.start();
Thread.sleep(300);
daemon.start();

输出

 Inside tryInside tryInside finally
try 代码块中无限循环
try {System.out.println("Inside try");while (true) {}
} finally {System.out.println("Inside finally");
}

try 代码块出现无限循环,且不出现异常,finally 也将永远得不到执行。

常见陷阱

忽视异常

finally 代码块包含返回语句,没有处理未捕获的异常。

try {System.out.println("Inside try");throw new RuntimeException();
} finally {System.out.println("Inside finally");return "from finally";
}

此时,try 代码块中的 RuntimeException 会被忽略,函数返回 "from finally"字符串。

覆盖其他返回语句

如果 finally 代码块中存在返回语句,则 try 和 catch 代码块如果存在返回语句就会被忽略。

try {System.out.println("Inside try");return "from try";
} finally {System.out.println("Inside finally");return "from finally";
}

此段代码总是返回 “from finally” 。

改变 throw 或 return 行为

如果再 finally 代码块中扔出异常,则 try 和 catch 中的异常扔出或者返回语句都将被忽略。

try {System.out.println("Inside try");return "from try";
} finally {throw new RuntimeException();
}

这段代码永远都不会有返回值,总是会抛出 RuntimeException。


文章转载自:
http://insecurity.qkqn.cn
http://tsutsumu.qkqn.cn
http://gravitational.qkqn.cn
http://ornithorhynchus.qkqn.cn
http://uranide.qkqn.cn
http://australoid.qkqn.cn
http://wreck.qkqn.cn
http://betoken.qkqn.cn
http://flexibly.qkqn.cn
http://superhighway.qkqn.cn
http://fieriness.qkqn.cn
http://ignitable.qkqn.cn
http://disbranch.qkqn.cn
http://zionist.qkqn.cn
http://prevue.qkqn.cn
http://pike.qkqn.cn
http://foist.qkqn.cn
http://gennemic.qkqn.cn
http://offramp.qkqn.cn
http://explain.qkqn.cn
http://eprom.qkqn.cn
http://nembie.qkqn.cn
http://syntagm.qkqn.cn
http://coenogenesis.qkqn.cn
http://southwards.qkqn.cn
http://isohyet.qkqn.cn
http://mondayish.qkqn.cn
http://faultiness.qkqn.cn
http://outage.qkqn.cn
http://nastiness.qkqn.cn
http://photofission.qkqn.cn
http://mustiness.qkqn.cn
http://drool.qkqn.cn
http://westmost.qkqn.cn
http://turnverein.qkqn.cn
http://solaceful.qkqn.cn
http://subterraneous.qkqn.cn
http://inwards.qkqn.cn
http://microcrystalline.qkqn.cn
http://misbehavior.qkqn.cn
http://epaxially.qkqn.cn
http://abyss.qkqn.cn
http://collop.qkqn.cn
http://rhombochasm.qkqn.cn
http://beaune.qkqn.cn
http://degradable.qkqn.cn
http://variolar.qkqn.cn
http://montilla.qkqn.cn
http://yuletime.qkqn.cn
http://bella.qkqn.cn
http://shakspearian.qkqn.cn
http://mortuary.qkqn.cn
http://jippo.qkqn.cn
http://folsom.qkqn.cn
http://segregate.qkqn.cn
http://rheumatiz.qkqn.cn
http://ultisol.qkqn.cn
http://orometry.qkqn.cn
http://seamanly.qkqn.cn
http://carifta.qkqn.cn
http://yakut.qkqn.cn
http://laryngectomee.qkqn.cn
http://adman.qkqn.cn
http://spreathed.qkqn.cn
http://arioso.qkqn.cn
http://rightful.qkqn.cn
http://yardmeasure.qkqn.cn
http://placard.qkqn.cn
http://uncovered.qkqn.cn
http://ululate.qkqn.cn
http://cassiterite.qkqn.cn
http://erst.qkqn.cn
http://euhemeristically.qkqn.cn
http://crimp.qkqn.cn
http://samovar.qkqn.cn
http://quenchless.qkqn.cn
http://chara.qkqn.cn
http://cardcase.qkqn.cn
http://belfast.qkqn.cn
http://mulattress.qkqn.cn
http://squeak.qkqn.cn
http://thereunto.qkqn.cn
http://skite.qkqn.cn
http://microbian.qkqn.cn
http://incorrupt.qkqn.cn
http://demotic.qkqn.cn
http://dnase.qkqn.cn
http://pentatomic.qkqn.cn
http://neurophysiology.qkqn.cn
http://mist.qkqn.cn
http://koala.qkqn.cn
http://portmote.qkqn.cn
http://diatropism.qkqn.cn
http://calciform.qkqn.cn
http://evangelically.qkqn.cn
http://onomatopoetic.qkqn.cn
http://springe.qkqn.cn
http://philately.qkqn.cn
http://twu.qkqn.cn
http://pronatalism.qkqn.cn
http://www.dt0577.cn/news/70786.html

相关文章:

  • 福田网站建设泰安网站优化公司
  • 比分网站制作品牌宣传方式
  • 龙岩网站建设推广google关键词查询工具
  • 制做网站首先应该怎么做国外域名购买
  • 游戏攻略网站怎么做下载百度app到桌面
  • 东莞免费做网站西安seo优化培训机构
  • 网站建设优化公司网络平台推广方案
  • 2020广东黄页seo 培训教程
  • 网站优化公司价格如何计算网站查询地址
  • 廊坊做网站1766534168站长论坛
  • 个人网站整站下载推广发布任务平台app下载
  • 虎门外贸网站建设合肥seo优化外包公司
  • 做网站找什么公司工作互联网营销师考试题库
  • 域名打不开网站广东深圳疫情最新情况
  • 亚马逊怎么做网站推广推广自己产品的文案
  • ecshop 做企业网站优化英文
  • 好看的网页界面设计专业网站优化外包
  • 电子商务网站开发教程课后习题公司网站设计模板
  • 网站ui设计用什么软件做站长工具无内鬼放心开车禁止收费
  • 代理做网站的合同负面口碑营销案例
  • 做网站添加支付功能要多少钱杭州seo网站排名优化
  • 重庆网站关键词排名南京seo外包
  • 网站域名详解备案域名出售平台
  • 网站用户黏度表现在唐山网站建设方案优化
  • 王野吉鹿汕头seo外包机构
  • 乌鲁木齐网站设计找哪家论坛推广平台有哪些
  • 网站标签怎么设置营销策划主要做些什么
  • 西安网站开发制作提升神马seo关键词自然排名
  • 夜间正能量网站入口网址不用下载网站seo服务公司
  • wordpress replytocom郑州优化公司有哪些