元月's blog 元月's blog
首页
  • 基础
  • 并发编程
  • JVM
  • Spring
  • Redis篇
  • Nginx篇
  • Kafka篇
  • Otter篇
  • Shardingsphere篇
  • 设计模式
  • MySQL
  • Oracle
  • 基础
  • 操作系统
  • 网络
  • 数据结构
  • 技术文档
  • Git常用命令
  • GitHub技巧
  • 博客搭建
  • 开发工具
更多

元月

临渊羡鱼,不如退而结网
首页
  • 基础
  • 并发编程
  • JVM
  • Spring
  • Redis篇
  • Nginx篇
  • Kafka篇
  • Otter篇
  • Shardingsphere篇
  • 设计模式
  • MySQL
  • Oracle
  • 基础
  • 操作系统
  • 网络
  • 数据结构
  • 技术文档
  • Git常用命令
  • GitHub技巧
  • 博客搭建
  • 开发工具
更多
  • 基础

    • Java随记
      • 一、Java基本数据类型、包装类和常量池
      • 二、Object对象的方法
      • 三、Java中访问控制修饰符
    • Java到底是值传递还是引用传递?
    • Java中的自动装拆箱是什么?
    • Java中比较大小的方式
    • Java中的泛型是什么
  • 并发编程

  • JVM

  • Java基础
  • 基础
元月
2022-07-11
目录

Java随记

# 一、Java基本数据类型、包装类和常量池

1、整型 byte 、short 、int 、long

2、浮点型 float 、 double

3、字符型 char

4、布尔型 boolean

Java 基本类型的包装类的大部分都实现了常量池技术,即 Byte,Short,Integer,Long,Character,Boolean;前面 4 种包装类默认创建了数值[-128,127] 的相应类型的缓存数据,Character 创建了数值在[0,127]范围的缓存数据,Boolean 直接返回 True Or False。如果超出对应范围仍然会去创建新的对象。

# 二、Object对象的方法

  • equals

    public boolean equals(Object obj) {
         return (this == obj);
     }
    
    1
    2
    3

    Object中equals比较的是地址,而String中equals先比较地址,其次比较长度,最后逐个比较字符

  • hashCode

    该方法主要用于获取对象的散列值。Object 中该方法默认返回的是对象的堆内存地址。

  • toString

    public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
    
    1
    2
    3
  • getClass

    获取对象的运行时 class 对象

  • clone 拷贝

  • finalize

    主要用于在 GC 的时候再次被调用

  • wait

    public final void wait() throws InterruptedException {
        wait(0);
    }
    
    1
    2
    3
  • wait(long timeout)

    wait 方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait() 方法一直等待,直到获得锁或者被中断。wait(long timeout) 设定一个超时间隔,如果在规定时间内没有获得锁就返回

  • wait(long timeout, int nanos)

  • notify

    唤醒一个在此对象监视器上等待的线程

  • notifyAll

    唤醒在此对象监视器上等待的所有线程

# 三、Java中访问控制修饰符

访问范围 private friendly(默认) protected public
同一个类 可访问 可访问 可访问 可访问
同一包中的其他类 不可访问 可访问 可访问 可访问
不同包中的子类 不可访问 不可访问 可访问 可访问
不同包中的非子类 不可访问 不可访问 不可访问 可访问

每个类文件中都有 package 语句。在这种情况下,访问修饰符符合主流的定义

public(共享)

1、修饰属性、方法、类

2、无访问限制

protected(受保护的)

1、修饰属性和方法,不能修饰类。

2、具有包访问性:能被同一包中的其他类可访问

3、具有继承访问性:任意路径下的类,通过继承共享类,便能访问父类中的受保护的成员。

这里的继承访问是指子类中访问父类中的受保护的成员

friendly (默认)

1、修饰属性、方法、类

2、具有包访问性

在packageA中定义一个默认类A,再定义一个public类B 继承A

在packageB中可以通过B访问A类的public方法,但是不能通过B访问protected方法

private(私有的)

1、修饰属性和方法,不能修饰类。

2、私有属性和方法,只有类自身可访问,外部不可访问。

注意:Java的访问控制是停留在编译层的,也就是它不会在.class文件中留下任何的痕迹,只在编译的时候进行访问控制的检查。其实,通过反射的手段,是可以访问任何包下任何类中的成员,例如,访问类的私有成员也是可能的

Java到底是值传递还是引用传递?

Java到底是值传递还是引用传递?→

最近更新
01
otter二次开发-支持按目标端主键索引Load数据
08-03
02
mvnw简介
06-21
03
gor流量复制工具
06-03
更多文章>
Theme by Vdoing | Copyright © 2022-2024 元月 | 粤ICP备2022071877号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式