page contents
Nen
Nen - 程序员

性别: 天津 - 天津市 注册于 2021-06-23

向TA求助
2850金币数
43180 经验值
1个粉丝
主页被访问 6249 次

3096 个回答

0 赞同

Java 的泛型是如何工作的 ? 什么是类型擦除 ?

泛型是通过类型擦除来实现的,编译器在编译时擦除了所有类型相关的信息,所以在运行时不存在任何类型相关的信息。例如:List\<String> 在运行时仅用一个 List 来表示。这样做的目的,是确保能和 Java 5 之前的版本开发二进制类库进行兼容。 类型擦除:泛型信息只存在于代码编译阶段,在进入 JVM 之前,与泛型相关...

回答于 2022-01-15 13:43

0 赞同

什么是泛型中的限定通配符和非限定通配符 ?

限定通配符对类型进行了限制。有两种限定通配符,一种是< ? extends T > 它通过确保类型必须是 T 的子类来设定类型的上界,另一种是< ? super T >它通过确保类型必须是 T 的父类来设定类型的下界。泛型类型必须用限定内的类型来进行初始化,否则会导致编译错误。另一方面 < ? > 表示了非限定通配符,因为...

回答于 2022-01-15 13:43

0 赞同

List 和 List 之间有什么区别 ?

这两个 List 的声明都是限定通配符的例子,List< ? extends T > 可以接受任何继承自 T 的类型的 List,而List < ? super T > 可以接受任何 T 的父类构成的 List。例如 List< ? extends Number > 可以接受 List< Integer > 或 List< Float > 。 Array 不支持泛型,要用 List 代替 Array,...

回答于 2022-01-15 13:42

0 赞同

Java 中的反射是什么意思?有哪些应用场景?

每个类都有一个 Class 对象,包含了与类有关的信息。当编译一个新类时,会产生一个同名的 .class 文件,该文件内容保存着 Class 对象。类加载相 当于 Class 对象的加载,类在第一次使用时才动态加载到 JVM 中。也可以使用 Class.forName(“com.mysql.jdbc.Driver”) 这种方式来控制类的加载, 该方法会返回一个 Class 对象...

回答于 2022-01-15 13:42

0 赞同

反射的优缺点?

优点: 运行期类型的判断,class.forName() 动态加载类,提高代码的灵活度; 缺点: 尽管反射非常强大,但也不能滥用。如果一个功能可以不用反射完成,那么最好就不用。在我们使用反射技术时,下面几条内容应该牢记于心。 (1)性能开销 :反射涉及了动态类型的解析,所以 JVM 无法对这些代码进行优化。因此,反射操作...

回答于 2022-01-15 13:41

0 赞同

静态变量和实例变量的区别?

静态变量:是被 static 修饰的变量,也称为类变量,它属于类,因此不管创建多少个对象,静态变量在内存中有且仅有一个拷贝;静态变量可以实现让多个对象共享内存。 实例变量:属于某一实例,需要先创建对象,然后通过对象才能访问到它。

回答于 2022-01-14 14:16

0 赞同

12、short s1 = 1;s1 = s1 + 1;有什么错?那么 short s1 = 1;...

对于 short s1 = 1; s1 = s1 + 1; 来说,在 s1 + 1 运算时会自动提升表达式的类型为 int ,那么将 int 型值赋值给 short 型变量,s1 会出现类型转换错误。 对于 short s1 = 1; s1 += 1; 来说,+= 是 Java 语言规定的运算符,Java 编译器会对它进行特殊处理,因此可以正确编译。

回答于 2022-01-14 14:15

0 赞同

Integer 和 int 的区别?

(1)int 是 Java 的八种基本数据类型之一,而 Integer 是 Java 为 int 类型提供的封装类; (2)int 型变量的默认值是 0,Integer 变量的默认值是 null,这一点说明 Integer 可以区分出未赋值和值为 0 的区分; (3)Integer 变量必须实例化后才可以使用,而 int 不需要。 Integer 和 int 的比较延伸: 1、由于 Integer...

回答于 2022-01-14 14:15

0 赞同

箱和拆箱的区别?

自动装箱是 Java 编译器在基本数据类型和对应得包装类之间做的一个转化。比如:把 int 转化成 Integer,double 转化成 Double 等等。反之就是自动拆箱。 原始类型:boolean、char、byte、short、int、long、float、double 封装类型:Boolean、Character、Byte、Short、Integer、Long、Float、Double

回答于 2022-01-14 14:14

0 赞同

switch 语句能否作用在 byte 上,能否作用在 long 上,能否作用...

在 switch(expr 1) 中,expr1 只能是一个整数表达式或者枚举常量。而整数表达式可以是 int 基本数据类型或者 Integer 包装类型。由于,byte、short、char 都可以隐式转换为 int,所以,这些类型以及这些类型的包装类型也都是可以的。而 long 和 String 类型都不符合 switch 的语法规定, 并且不能被隐式的转换为 int 类型...

回答于 2022-01-14 14:13