当前位置: 首页 > news >正文

Java日常开发中常用的重要关键字

一、访问控制权限修饰符是用来控制类、方法、变量能被谁访问。1. 四大访问权限修饰符public公开任何地方都能访问private私有仅当前类内部能访问封装核心protected同包 子类能访问default不写关键字默认权限同包内能访问2. 使用规范成员变量优先用private工具方法、对外接口用public子类需要继承访问用protected包内自用类 / 方法用默认权限二、类 / 对象 / 继承相关1. 基础定义1) class定义普通类使用时注意一个 java 源文件最多一个 public 类类名和文件名一致类不能嵌套定义普通类外随意层级仅支持内部类形式类不能用 private/protected 修饰顶层类2) interface定义接口3) enum定义枚举类4) abstract修饰抽象类、抽象方法使用时注意抽象类不能 new 实例化有抽象方法的类必须是抽象类抽象方法无方法体子类必须全部实现2. 创建与实例new实例化创建对象使用时注意仅用来创建实例对象不能创建静态类、抽象类、接口每次 new 都会开辟新堆内存引用赋值只会指向同一对象3. 继承实现extends类继承类单继承implements类实现接口多实现4. 指代引用1) this当前对象本身使用时注意构造方法中this(...)必须放在第一行不能在静态方法中使用 this区分成员变量和局部变量时用来指代当前对象属性2) super父类对象、父构造方法使用时注意父类构造super(...)必须在子类构造第一行静态方法不能使用 super可调用父类被重写的方法、父类公有成员5. 限定修饰abstract抽象类 / 抽象方法不能实例化final修饰类不能被继承修饰方法不能被重写修饰变量变成常量只能赋值一次6. 类型判断instanceof判断对象所属类型。使用时注意空对象判断直接返回 false不会空指针遵循向上转型规则父类引用可判断子类类型三、方法 / 静态相关static1. 使用范围static 静态 属于类不属于对象可以修饰成员变量静态变量 / 类变量方法静态方法 / 类方法代码块静态代码块2. 核心规则静态变量全类共享一份所有对象用的是同一个值。直接用类名.变量名静态方法不需要创建对象直接调用。格式类名.方法名()静态代码块类加载时执行一次最早执行比构造方法还早。用来初始化静态资源3. 4条铁律1) 静态不能直接访问非静态。静态方法里不能直接用 普通成员变量、普通成员方法、this / super原因静态是类的非静态是对象的。类加载时对象还没出生2) 非静态可以访问静态。实例方法里随便用静态变量、静态方法。3) 静态变量全类共享。一个地方改了全部地方都变。4) 静态方法不存在 “重写”。只有隐藏没有多态。4. 什么时候用 static工具类方法Math、Arrays、Collections全类共享常量public static final只需要初始化一次的资源配置、连接统计对象数量四、异常处理1. 关键字try包裹可能出异常的代码catch捕获异常finally无论是否异常一定执行常用来关闭流、释放资源throw手动抛出一个异常throws方法声明可能抛出的异常2. 关键注意点try 不能单独存在必须搭配 catch/finally执行顺序try → 异常则 catch → 必走 finallythrow 写方法内throws 写方法声明上子类重写方法抛出异常范围不能大于父类五、多线程相关重要1. synchronized作用加锁保证线程安全三种位置修饰实例方法锁当前对象 this修饰静态方法锁当前类的 Class 对象全局锁修饰代码块最常用锁自己指定对象核心特点可重入锁同一个线程可以反复获取同一把锁不会卡死独占锁一个线程拿到其他线程必须等待保证三大特性原子性 可见性 有序性自动释放锁代码执行完 / 抛异常都会释放2. volatile作用保证变量可见性禁止指令重排关键volatile 只保证可见性不保证原子性适合状态标记量flag、stop不适合计数i因为不是原子操作3. transient作用修饰成员变量序列化时忽略该字段和线程没有直接关系属于多线程 / IO 高频关键字
http://www.rkmt.cn/news/1378821.html

相关文章:

  • 基于ESP32与SGP30的室内空气质量监测系统DIY指南
  • 从零掌握Stellaris LM3S:ARM Cortex-M3微控制器实战开发指南
  • 现在不学DeepSeek代码审查,3个月后你的CI/CD流水线将全面落后——5大不可逆趋势预警
  • 【DeepSeek代码质量评估权威指南】:20年架构师亲测的5大核心指标与3个致命陷阱
  • 在Ubuntu 22.04上,用RTX 4090为OpenCV 4.10.0开启Nvidia GPU硬解码(附CUDA 12.8配置)
  • 技术社区视频挑战赛策划指南:从Elektor案例到实践落地
  • 从波音787电池事故看航空级锂电安全设计挑战与工程实践
  • 第6篇:前端新手调试与优化指南——彻底告别样式错乱、代码报错、页面卡顿
  • 基于树莓派Pico与运放电路的低成本任意波形发生器设计与实现
  • py每日spider案例之某志愿翻页接口(md5算法)
  • 英澳SDET自动化测试赛道性价比真相「蒸汽求职」
  • 终极指南:3个简单方法使用ncmdump快速解密网易云NCM音乐文件
  • 基于元学习的AutoML动态搜索空间构建:原理、实现与效率优化
  • 如何在Windows系统上完美运行Android应用:WSABuilds终极解决方案指南
  • 浏览器音乐解锁完整指南:如何一键解密主流平台加密音频文件
  • Monkey测试进阶:黑白名单搭配这些隐藏参数,让你的安卓稳定性测试效率翻倍
  • Pearcleaner:让Mac告别臃肿的3大清理秘籍
  • 靠谱的矩阵式多点测风装置知名公司
  • 从Blockade Labs API到Unity场景:手把手教你搭建一个自动化的AIGC天空盒生成管线
  • 告别手动分类!用Python+ArcPy批量处理DEM,一键生成坡度坡向等高线报告
  • 别光看手册!手把手教你读懂气体放电管(GDT)的6个关键参数,选型不踩坑
  • 【限时开源】DeepSeek-VL多模态代码重构检查清单:含19个AST级检测规则+CI/CD嵌入脚本(仅剩47份可下载)
  • 基于ESP32-S3的USB有线键盘无线化改造方案
  • 基于汽车中控锁电机与射频模块的DIY无线门锁实战指南
  • 3分钟快速上手:音乐解锁工具终极指南,让加密音乐重获自由
  • FM广播高精度预加重模块设计:解决传统电路缺陷,提升音质与信噪比
  • 别急着重启!HBase启动报错ServerNotRunningYetException,先看这3个日志文件和5个关键配置
  • 告别实景拍摄!用Skybox AI + Unity 2022快速生成VR项目概念场景(附完整API接入避坑指南)
  • BetterJoy:5分钟让你的任天堂Switch手柄变身Windows游戏利器 [特殊字符]
  • 利用Taotoken多模型聚合能力为AIGC应用提供备选方案