java基础知识(一)
1.1 为什么Java代码可以实现一次编写、到处运行?
- 跨平台的是Java程序,JVM是跨平台的关键
- 在程序运行前,Java程序需要经过编译器编译为字节码文件,在程序运行时,JVM会将字节码文件翻译为机器语言并运行
- java程序只需经过一次编译,然后在不同平台下安装对应版本的JVM,就能将字节码文件翻译成特定平台下的机器语言并运行
1.2 一个Java文件里可以有多个类吗(不含内部类)?
- 一个Java文件中可以包含多个类,但最多只能有一个类被public修饰
- 如果这个类中包含被public修饰的类,则这个类必须与Java文件同名
1.3 说一说你对Java访问权限的了解
java语言中有四种访问修饰符,public protected default private 。不加修饰符时默认是default
- public可以被任何包下的任何类访问
- protected可以被同一包及其他包下的子类访问
- default可以被同一包下的类访问
- private只能被本类访问
1.4 介绍一下Java的数据类型
Java数据类型分为基本数据类型和引用类型两种
基本数据类型分为四大类八小类,分别是整数类型(byte/short/int/long)、浮点类型(float/double)、字符类型(char)、布尔类型(boolean)
- byte 1字节 8位
- short 2字节 16位
- int 4字节 32位
- long 8字节 64位
- float 4字节 32位
- double 8字节 64位
- char 2字节 16位
- boolean
引用类型就是对一个对象的引用
1.5 int类型的数据范围是多少?
int类型占4字节32位,-2^31~2^31-1
1.6 请介绍全局变量和局部变量的区别
java中的变量分为成员变量和局部变量
成员变量:
- 成员变量是在类范围内定义的变量
- 成员变量有默认初始值
- 被static修饰的成员变量也叫静态成员变量,它存储于方法区中,生命周期与当前类相同
- 未被static修饰的成员变量叫实例成员变量,它存储在对象所在的堆内存中,生命周期与对象相同
局部变量:
-
局部变量是在方法内定义的变量
- 局部变量没有初始值
- 局部变量存储与栈内存,作用的范围结束,变量空间会自动释放
1.7 请介绍一下实例变量的默认值
实例变量若为引用数据类型,其默认值一律为null。若为基本数据类型,其默认值如下:
-
byte:0
-
short:0
-
int:0
-
long:0L
-
float:0.0F
-
double:0.0
-
char:'\u0000'
-
boolean:false
1.8 为啥要有包装类?
Java语言是面向对象的语言,其设计理念是一切皆对象,但8种基本数据类型却不具备对象的特征,所以为8种基本数据类型都定义了引用类型,即包装类
1.9 说一说自动装箱、自动拆箱的应用场景
- 自动装箱:基本数据类型自动转换为对应包装类型
- 自动拆箱:包装类型自动转换为对应基本数据类型
1.10 如何对Integer和Double类型判断相等?
- 不能直接用==比较,因为他们不是同一数据类型
- 不能转为字符串比较,浮点数带小数
- 以将Integer、Double先转为转换为相同的基本数据类型(如double),然后使用==进行比较。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧