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

理解Java核心概念:类型转换、instanceof检查与静态成员

类型转换

Java中有普通数据类型和引用数据类型:

普通数据类型,有byte、short、char、int、long、float、double、boolean。普通数据类型,是指内存中的"框"存储的二进制是数据本身。

引用数据类型,有数组、对象。引用数据类型,是指内存中的“框”存储的是内存地址,即“引用”。真正的数据,存储在引用的在“堆”里的内存地址的“框”里。

普通数据类型,可以“从低到高”进行隐式的自动转换,或者“从高到低”进行显示的类型转换。因为“从低到高”,不会存在数据丢失问题,而“从高到低”存在数据丢失和精度降低风险。

从低--------------------------------------到高
byte -> short / char -> int -> long -> float -> double

bytea=127;intb=a;// 从低到高,可以隐式转换shortc=(short)b;// 从高到低,必须显示转换

引用数据类型也可以进行数据转换,比如子类、父类进行类型转换。引用类型“从低到高”时,可以进行隐式的类型转换,即父类引用一个子类对象。比如:

Fathera=newSon();

而“从高到低”,需要进行显性的类型转换,因为可能存在一定的安全风险,比如:

SonzhangLiu=(Son)wangWu;

转型只能在继承关系的类之间进行,否则编译报错。

instanceof

instanceof是一个关键字,用于检查一个对象是否是一个类或者其子类的对象,用法为:

objectinstanceofType

这个语句返回值是一个布尔值,其中object为一个待检查的对象,Type为一个类。

publicclassApp{publicstaticvoidmain(String[]args){FatherzhangSan=newFather("张三");SonzhangSi=newSon("张四");if(zhangSiinstanceofSon){System.out.println("张三 instanceof Son");}else{System.out.println("张三 not instanceof Son");}if(zhangSaninstanceofFather){System.out.println("张三 instanceof Father");}else{System.out.println("张三 not instanceof Father");}if(zhangSaninstanceofObject){System.out.println("张三 instanceof Object");}else{System.out.println("张三 not instanceof Object");}}}
张三 instanceof Son 张三 instanceof Father 张三 instanceof Object 进程已结束,退出代码为0

static

static关键字用来修饰变量或方法,标记这个变量和方法是静态变量和静态方法。

什么是静态变量?静态变量又称为类变量,在类加载时就保存在内存中,可以用“类.变量”或“实例.变量”进行访问。

什么是静态方法?静态方法又称为类方法,在类加载时就保存在内存中,可以用“类.方法”或“实例.方法”进行调用。

publicclassApp{// 定义演示用的子类privatestaticclassDemoClass{staticvoidsayHello(){System.out.println("hello");}staticintnum=10;}publicstaticvoidmain(String[]args){DemoClassd=newDemoClass();System.out.println(DemoClass.num);// 10 通过类名, 访问静态变量System.out.println(d.num);// 10 通过实例名, 访问静态变量DemoClass.sayHello();// hello 通过类名, 访问静态方法d.sayHello();// hello 通过实例名, 访问静态方法}}

静态变量和静态方法虽然可以通过实例访问,但是强烈建议通过类进行访问,这样更清晰的说明这个是类的变量或方法。

http://www.jsqmd.com/news/95277/

相关文章:

  • ScienceDecrypting实战指南:3步轻松处理CAJViewer受限文档
  • 【单片机毕业设计】【mcugc-mcu920】基于单片机的智能宠物喂养设计
  • Python安装Stable Diffusion 3.5 FP8模型详细步骤(附Git下载命令)
  • Qwen3-8B+Docker安装指南:打造高性能本地AI推理环境
  • 打破语言壁垒:Screen Translator如何让你轻松读懂全世界
  • Compressor.js图像压缩革命:前端开发者的终极性能优化方案
  • AI智能体不是工具,而是你的替身,从“码农“到“AI驯兽师“的转型
  • 廊坊市广告公司哪家规模大
  • 9款AI写论文工具大PK:宏智树AI凭“真数据+全流程”杀疯了
  • 2025年十大AI编程工具权威推荐:开发者效率革命的终极指南
  • 先相信,后看见:普通人「逆袭」的底层操作系统
  • 长焦Live神器,vivo S50系列发布,起步价仅2999元
  • Dify智能体平台+Qwen3-VL-8B下一代低代码AI应用?
  • Py-ART完全指南:5个核心步骤掌握气象雷达数据处理
  • UnregisterManyAsync
  • 9款AI写论文哪个好?我为你拨开迷雾,找到那个兼顾“真实感”与“专业度”的学术副驾驶宏智树AI
  • Docker安装Miniconda镜像,打造可复用的AI实验环境
  • 7步轻松实现数据库文档自动化:database-export终极使用指南
  • Redis TTL管理实战:5个关键场景下的AnotherRedisDesktopManager高效应用
  • Mobile Select终极指南:5步解决移动端选择器开发难题
  • Argon主题在OpenWrt系统中的界面优化与问题修复
  • 深度解析Qwen3-VL-30B:300亿参数背后的视觉语言黑科技
  • VLC皮肤美化终极指南:5款主题打造专业影音体验
  • 如何利用Seed-Coder-8B-Base为团队定制专属编程助手?
  • 大数据架构演进:数据网格(Data Mesh)核心概念解析
  • AI编程工具全景盘点:2025年八大智能助手的深度评测与选型必看指南
  • 微信视频号直播弹幕抓取技术实现与架构解析
  • 非负整数数组跳跃可达性问题的贪心算法解决方案
  • 2026中国(上海)机器视觉展暨机器视觉技术及工业应用研讨会即将启幕
  • 第五十九篇-ComfyUI+V100-32G+运行Flux Schnell