原文链接 https://my.oschina.net/lifany/blog/875769 前言 现在很多程序员都会在简历中写上精通 Java.但究竟怎样才算是精通 Java 呢?我觉得不仅要熟练掌握 Java 语法和 JDK 的使用,还需要对 Java 这门语言的各方面原理有深入的了解.除了像并发.JVM 等方面,以及软引用.弱引用等高级知识以外,其实很多我们每天接触到的 Java 特性里面也是另有乾坤.Java 5 引入的泛型便是其中之一.本文这里不谈泛型的使用以及泛型方法.泛型类的定义,…
Java编译时常量和运行时常量 编译期常量指的就是程序在编译时就能确定这个常量的具体值. 非编译期常量就是程序在运行时才能确定常量的值,因此也称为运行时常量. 在Java中,编译期常量指的是用final关键字修饰的基本类型或String类型并直接赋值(非复杂运算)的变量(无论是否用static修饰),是编译器的一种优化,体现在字节码文件中:运行是常量是由运行时解释器解释完成的. 运行时常量很容易理解,接下来会简单的结合字节码文件来介绍编译时常量及使用风险. public class Consta…
Vue.js 2.0 独立构建和运行时构建的区别 在使用 Vue.js 2.0 时,有独立构建(standalone)和运行时构建(runtime-only)两种版本可供选择.而在 Vue.js 1.0 中,却没有这种版本区别.到底该使用哪一个版本?这让我有点懵逼的感觉.本着知其然还要知其所以然的精神,我决定好好研究下两者间的区别. Vue.js 的官方教程上是这么说的: 独立构建包括编译和支持 template 选项. 它也依赖于浏览器的接口的存在,所以你不能使用它来为服务器端渲染. 运行时构…
Java提供了两类主要的异常:runtime exception和checked exception.checked 异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常.对于这种异常, JAVA编译器强制要求我们必需对出现的这些异常进行catch.所以,面对这种异常 不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常. 总的来说一句话,runtime exception是可以不捕获,由程序自动往外抛:checked exception则必须捕获(try/catch)的,必…
1 package p1.exception; 2 /* 3 * 对于角标是整数不存在,可以用角标越界表示, 4 * 对于负数为角标的情况,准备用负数角标异常来表示. 5 * 6 * 负数角标这种异常在java中并没有定义过. 7 * 那就按照java异常的创建思想,面向对象,将负数角标进行自定义描述.并封装成对象 8 * 9 * 这种自定义的问题描述成为自定义异常. 10 * 11 * 注意:如果让一个类称为异常类,必须要继承异常体系,因为只有称为异常体系的子类才有资格具有可抛性. 12 *…
来源:https://blog.csdn.net/wendizhou/article/details/73733061 编译时多态:主要是方法的重载,通过参数列表的不同来区分不同的方法. 运行时多态:也叫作动态绑定,一般是指在执行期间(非编译期间)判断引用对象的实际类型,根据实际类型判断并调用相应的属性和方法.主要用于继承父类和实现接口时,父类引用指向子类对象. 例如: public class PolymorphismTest { public static void main(String[…
异常: 就是不正常.程序在运行时出现的不正常情况.其实就是程序中出现的问题.这个问题按照面向对象思想进行描述,并封装成了对象.因为问题的产生有产生的原因.有问题的名称.有问题的描述等多个属性信息存在.当出现多属性信息最方便的方式就是将这些信息进行封装.异常就是java按照面向对象的思想将问题进行对象封装.这样就方便于操作问题以及处理问题. 出现的问题有很多种,比如角标越界,空指针等都是.就对这些问题进行分类.而且这些问题都有共性内容比如:每一个问题都有名称,同时还有问题描述的信息,问题出现的位置…
异 常: 异常:就是不正常.程序在运行时出现的不正常情况.其实就是程序中出现的问题.这个问题按照面向对象思想进行描述,并封装成了对象.因为问题的产生有产生的原因.有问题的名称.有问题的描述等多个属性信息存在.当出现多属性信息最方便的方式就是将这些信息进行封装.异常就是java按照面向对象的思想将问题进行对象封装.这样就方便于操作问题以及处理问题. 出现的问题有很多种,比如角标越界,空指针等都是.就对这些问题进行分类.而且这些问题都有共性内容比如:每一个问题都有名称,同时还有问题描述的信息,问题出…
1.代码 public class ExcepTest { /** * @param args */ public static void main(String[] args) { System.err.println("111111111111"); // say(); //抛出异常,但是代码不显示的try..catch.. // calc(); //抛出异常,但是代码不显示的try..catch.. // try { // show(); // } catch (Exceptio…
第11章 异常,断言,日志,调试 处理错误 捕获异常 使用异常机制的技巧 使用断言 日志 测试技巧 GUI程序排错技巧 使用调试器 11.1 处理错误 11.1.1异常分类 都继承自Throwable类 分成Error和Exception Error类 描述了Java运行时系统的内部错误和资源耗尽错误.应用程序不应该抛出此种类型的错误.如果出现了这样的内部错误,除了通告给用户,并尽力使程序安全地终止外,再也无能为力 Exception层次结构:最需关注的 RuntimeException 程序错…