0
点赞
收藏
分享

微信扫一扫

java学习笔记day06

朱小落 2022-04-14 阅读 94
java后端

七、反射

Class 和 java.lang.reflect 一起对反射提供了支持,java.lang.reflect 类库主要包含了以下三个类:

  • Field: 可以使用 get() 和 set() 方法读取和修改 Field 对象关联的字段;
  • Method:可以使用 invoke() 方法调用与 Method 对象关联的方法;
  • Constructor:可以用 Constructor 的 newInstance() 创建新的对象。

反射的优点:

  • 可扩展性 :应用程序可以利用全限定名创建可扩展对象的实例,来使用来自外部的用户自定义类。

  • 类浏览器和可视化开发环境 :一个类浏览器需要可以枚举类的成员。可视化开发环境 (如 IDE) 可以从利用反射中可用的类型信息中受益,以帮助程序员编写正确的代码。

  • 调试器和测试工具 :调试器需要能够检查一个类里的私有成员。测试工具可以利用反射来自动的调用类里定义的可被发现的 API 定义,以确保一组测试中有较高的代码覆盖率。

反射的缺点:

尽管反射非常强大,但也不能滥用。如果一个功能可以不用反射完成,那么最好就不用。在我们呢使用反射技术时,下面几条内容该牢记于心。

  • 性能开销 :反射涉及了动态类型的解析,所以 JVM 无法对这些代码进行优化。因此,反射操作的效率要比那些非反射操作低的多。我们应该避免在经常被执行的代码对性能要求很高的程序中使用反射。
  • 安全限制 :使用反射技术要求程序必须在一个没有安全限制的环境中运行。如果一个程序必须在有安全限制的环境中运行,如 Applet,那么这就是个问题了。
  • 内部暴露 :由于反射允许代码执行一些在正常情况下不被允许的操作(比如访问私有的属性和方法),所以使用反射可能会导致意料之外的副作用,这可能导致代码功能失调并破坏可移植性。反射代码破坏了抽象性,因此当平台发生改变的时候,代码的行为就有可能也随着变化。

八、异常

Throwable 可以用来表示任何可以作为异类抛出的类,分为两种:ErrorException。其中 Error 用来表示 JVM 无法处理的错误,Exception 分为两种;

  • 受检异常:需要用 try...catch... 语句捕获并进行处理,并且剋从异常中恢复;
  • 非受检异常:是程序运行时错误,例如除 0 会引发 Arithmetic Exception,此时程序崩溃并且无法恢复。

 

九、泛型 

public class Box<T> {
    // T stands for "Type"
    private T t;
    public void set(T t) { this.t = t; }
    public T get() { return t; }
}

十、注解

Java 注解是附加在嗲马中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。

十一、特性

Java SE8 的新特性

New highlights in Java SE8

1.Lambda Expressions

2.Pipelines and Streams

3.Date annd Time API

4.Default Methods

5.Type Annotations

6.Nashhorn JavaScript Engine

7.Concurrent Accumulators

8.Parallel operations

9.PermGen Error Removed

Java 与 C++ 的区别

  • java 是纯粹的面向对象语言,所有的对象都继承自 java.lang.Object ,C++为了兼容 C 即支持面向对象也支持面向过程。
  • java 通过虚拟机从而实现跨平台特性,但是 C++ 依赖于特定的平台。
  • java 没有指针,它的引用可以理解为安全指针,而 C++ 具有和 C 一样的指针。
  • java 支持自动垃圾回收,而 C++ 需要手动回收。
  • java 不支持多重继承,只能通过实现多个接口来达到相同目的,而 C++ 支持多重继承。
  • java 不支持操作符重载,虽然可以对两个 String 对象执行加法运算,但是这是语言内置支持的操作,不属于操作符重载,而 C++ 可以。
  • java 的 goto 是保留字,但是不可用,C++ 可以使用 goto。

JRE or JDK

  • JRE : Java Runtime Environment, Java 运行环境的简称,为 Java 的运行提供了所需的环境。它是一个 JVM 程序,主要包括了 JVM 的标准实现和一些 Java 基本类库。
  • JDK :Java Development Kit, Java 开发工具包,提供了 Java 开发及运行环境。JDK 是 Java开发的核心,集成了 JRE 以及一些其他的工具,比如编译 Java 源码的编译器 javac 等。

举报

相关推荐

Java学习day06

day06 笔记

学习Day06

Java自学 day06

Java基础day06

Day06

C语言笔记-day06

【Java】理论知识学习-DAY06

0 条评论