java编译: java编译就是.java文件变成.class文件的过程,这个过程一般在我们常用的编译器中进行,例如Ecliplse和IDEA等:下面以IDEA举例: 执行上述编译使用的JDK版本就是我们不同编译器所设置的java版本: java运行: java运行就是我们编译得到的字节码文件(就是.class文件)在安装了Java运行环境(JVM)的计算机上运行,此时使用的的JDK版本就是我们配置的JAVA_HOME对应的java版本.我们可以通过在命令行执行:java -version来查看…
1 package p1.exception; 2 /* 3 * 对于角标是整数不存在,可以用角标越界表示, 4 * 对于负数为角标的情况,准备用负数角标异常来表示. 5 * 6 * 负数角标这种异常在java中并没有定义过. 7 * 那就按照java异常的创建思想,面向对象,将负数角标进行自定义描述.并封装成对象 8 * 9 * 这种自定义的问题描述成为自定义异常. 10 * 11 * 注意:如果让一个类称为异常类,必须要继承异常体系,因为只有称为异常体系的子类才有资格具有可抛性. 12 *…
Java提供了两类主要的异常:runtime exception和checked exception.checked 异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常.对于这种异常, JAVA编译器强制要求我们必需对出现的这些异常进行catch.所以,面对这种异常 不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常. 总的来说一句话,runtime exception是可以不捕获,由程序自动往外抛:checked exception则必须捕获(try/catch)的,必…
/* 异常体系: --------| Throwable 所有错误或者异常的父类 --------------| Error(错误) --------------| Exception(异常) 异常一般都通过代码处理 ------------------| 运行时异常: 如果一个方法内部抛出了一个运行时异常,那么方法上 可以声明也可以不 声明,调用者可以以处理也可以不处理. ------------------| 编译时异常(非运行时异常.受检异常): 如果一个方法内部抛出了一个编译时异常对象,…
在JVM虚拟机中泛型编译的时候,会出现类型擦除.但是,在多态场景中,编译时,擦除方式会出现多态被破坏的可能. 举个栗子: A.java public class A<T> { void g(T t){ } } B.java public class B extends A<String>{ @Override void g(String s){ } } 在编译之后的字节码: 看到B.class里面有两个方法g(java.lang.String)和g(java.lang.Object…
readonly 关键字与 const 关键字不同. const 字段只能在该字段的声明中初始化. readonly 字段可以在声明或构造函数中初始化. 因此,根据所使用的构造函数, readonly 字段可能具有不同的值. 另外, const 字段是编译时常量,readonly 字段为运行时常量. 你应该尽量使用运行时常量.原因是变异性常量虽然性能稍微快一些.但是却没有 运行时常量那么灵活.就像第一段中所说,使用readonly时,根据使用的构造函数, readonly字段可能具有不同的值.…
注意:const编译期常量是编译的时候就确定的,可以查看IL代码,是写死的.如果另一个程序集引用后,该程序集没有进行编译,则值不会改变. 看效果: 项目中有2个程序集: 其中:常量在这个程序集中定义并初始化. namespace ConstReadOnlyTest { public class Class1 { public const string a= "我是const常量."; public static string b = "我是static变量."; p…
一种写法: template <bool> struct CompileAssert { }; #define COMPILE_ASSERT(expr, msg) \ typedef CompileAssert<( : -] } //endof namespace 第二种写法: #define CAT_TOKEN_1(t1,t2) t1##t2 #define CAT_TOKEN(t1,t2) CAT_TOKEN_1(t1,t2) #define COMPILE_ASSERT(x) \…
转载请注明: 仰望高端玩家的小清新 http://www.cnblogs.com/luruiyuan/ 如何解决pytorch 编译时CUDA版本与运行时CUDA版本不对应 如果pytorch的编译时CUDA版本和运行时CUDA版本不一致时,由于不同的 nvcc 编译器会生成不同的动态函数代码,由此会导致自己编写的 CUDA 函数无法正确运行. 常见的错误有: undefined symbol: __cudaRegisterFatBinaryEnd (运行时为CUDA10.1,编译时CUDA版本…
package cn.kecheng; import java.util.Scanner; /**异常:异常是指在程序的运行过程中所发生的不正常的情况,它会中断正在运行的程序 异常处理机制:java中通过异常处理机制为程序提供异常处理的能力,保持程序继续运行而不中断! 异常处理:涉及异常处理的关键字有try…catch/try…catch…finally * try{有可能产生异常情况的代码段}catch(异常类型){对异常进行处理的代码段} 1.正常执行,没出现任何异常2.出现异常,异常处理,…