java知识总结

Java 有三个显式关键字来设置类中的访问权限:public(公开),private(私有)和protected(受保护)。这些访问修饰符决定了谁能使用它们修饰的方法、变量或类。

  1. public(公开)表示任何人都可以访问和使用该元素;

  2. private(私有)除了类本身和类内部的方法,外界无法直接访问该元素。private 是类和调用者之间的屏障。任何试图访问私有成员的行为都会报编译时错误;

  3. protected(受保护)类似于 private,区别是子类可以访问 protected 的成员,但不能访问 private 成员;

  4. default(默认)如果你不使用前面的三者,默认就是 default 访问权限。default 被称为包访问,因为该权限下的资源可以被同一包(库组件)中其他类的成员访问 

 

ArrayList 中随机查找元素是很高效的,而 LinkedList 随机查找效率低下。反之,在 LinkedList 中插入元素的效率要比在 ArrayList 中高 。

在 Java 中,通常我们使用new操作符来创建一个新对象。new 关键字代表:创建一个新的对象实例。

 

数据存储

寄存器(Registers)最快的存储区域,位于 CPU 内部。

栈内存(Stack)存在于常规内存 RAM(随机访问存储器,Random Access Memory)区域中,可通过栈指针获得处理器的直接支持(变量)。

堆内存(Heap)这是一种通用的内存池(也在 RAM 区域),所有 Java 对象都存在于其中。

常量存储(Constant storage)常量值通常直接放在程序代码中,因为它们永远不会改变。

非 RAM 存储(Non-RAM storage)数据完全存在于程序之外,在程序未运行以及脱离程序控制后依然存在。

 

BigInteger 支持任意精度的整数。可用于精确表示任意大小的整数值,同时在运算过程中不会丢失精度。 BigDecimal 支持任意精度的定点数字。

 

Java 的垃圾收集器会检查所有 new 出来的对象并判断哪些不再可达,继而释放那些被占用的内存,供其他新的对象使用 

注解的语法十分简单,主要是在现有语法中添加 @ 符号。

  • @Override:表示当前的方法定义将覆盖基类的方法。如果你不小心拼写错误,或者方法签名被错误拼写的时候,编译器就会发出错误提示。
  • @Deprecated:如果使用该注解的元素被调用,编译器就会发出警告信息。
  • @SuppressWarnings:关闭不当的编译器警告信息。
  • @SafeVarargs:在 Java 7 中加入用于禁止对具有泛型varargs参数的方法或构造函数的调用方发出警告。
  • @FunctionalInterface:Java 8 中加入用于表示类型声明为函数式接口
  • 注解解释
    @Target表示注解可以用于哪些地方。可能的 ElementType 参数包括:
    CONSTRUCTOR:构造器的声明
    FIELD:字段声明(包括 enum 实例)
    LOCAL_VARIABLE:局部变量声明
    METHOD:方法声明
    PACKAGE:包声明
    PARAMETER:参数声明
    TYPE:类、接口(包括注解类型)或者 enum 声明
    @Retention表示注解信息保存的时长。可选的 RetentionPolicy 参数包括:
    SOURCE:注解将被编译器丢弃
    CLASS:注解在 class 文件中可用,但是会被 VM 丢弃。
    RUNTIME:VM 将在运行期也保留注解,因此可以通过反射机制读取注解的信息。
    @Documented将此注解保存在 Javadoc 中
    @Inherited允许子类继承父类的注解
    @Repeatable允许一个注解可以被使用一次或者多次(Java 8)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值