What are generics in Java? What are the benefits of using generics?
Generics Types are a new feature of Java SE 1.5. The essence of generics is parameterized types, which means that the data type being operated on is specified as a parameter.
Benefits: #2. Backward and backward compatibility3. Generalized code, the code can be reused more
4. High performance, code written in GJ (generic JAVA) can be compiled for java The server and virtual machine bring more type information, which provides conditions for further optimization of Java programs.
How do generics work in Java? What is type erasure? How does it work?
1. Type checking: Provide type checking before generating bytecode
2. Type erasure: All type parameters are replaced with their qualified types, including classes and variables and method (type erasure)3. If type erasure and polymorphism conflict, a bridge method is generated in the subclass to solve the problem
4. If a generic method is called The return type is erased, a cast is inserted when the method is called
Type erasure:
All type parameters are replaced with their qualified types:
For example, T->Object ? extends BaseClass->BaseClass
How it works:
Generics are implemented through type erasure , the compiler erases all type-related information at compile time, so there is no type-related information at runtime. For example, List is represented by only one List at runtime.
The purpose of this is to ensure compatibility with binary class libraries developed in versions prior to Java 5. You cannot access the type parameters at runtime because the compiler has converted the generic type into a primitive type. Depending on your answer to this generics question, you will get some follow-up questions, such as why generics are implemented by type erasure or show you some incorrect generics that will cause compiler errors. code.
Can you pass a List to a method that accepts a List
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn