Java基础知识面试题


JAVA基础


一、Java特性

1、跨平台/可移植性
2、安全性
3、面向对象
4、简单性
5、高性能
6、分布式
7、多线程
8、健壮性

二、标识符规则

1、标识符必须以字母、下划线_、美元符号 $ 开头
2、标识符其他部分可以是字母、下划线_、美元符号 $ 和数字的任意组合。
3、Java标识符大小写敏感,且长度无限制
4、标识符不可以是Java关键字

三、局部变量和成员变量的区别?

(1)定义位置不同
(1.1)局部变量定义在方法中
(1.2)成员变量定义在类中,方法之外
(2)占用的内存空间不同
(2.1)局部变量存储在栈区中
(2.2)非静态成员变量存储在堆区中,静态成员变量存储在方法区中的全局数据区里
(3)生命周期不同
(3.1)局部变量的作用范围是定义该变量的一对{}
(3.2)非静态的成员变量随着对象的创建而存在,随着对象的消失而消失
静态成员变量随着类的加载而存在,随着程序结束,JVM卸载时销毁
(4)初始值不同
(4.1)局部变量没有默认的初始值,使用前必须要先初始化
(4.2)成员变量有默认的初始值

四、静态变量和实例变量的区别?

(1)位置和生命周期不同
静态变量—加载类时,在全局代码区分配空间,随着类的卸载而销毁,与是否存在对象实例无关
实例变量—创建对象时,在堆区分配空间,随着对象的销毁而销毁
(2)数量不同
静态变量—全局唯一,只有一份,每个对象共享使用
实例变量—每个对象内部各自一份,内容互不相同
(3)调用格式不同
静态变量—可以使用类名.或对象名.的形式调用,推荐使用类名调用
实例变量—必须使用对象名.的形式调用

五、Java的数据类型?

(1)3类8种基本数据类型:
数值型 - byte(1字节)、short(2字节)、int(4字节)、long(8字节)、float(4字节)、double(8字节)
字符型 - char(2字节)
布尔型 - boolean
引用数据类型:

接口
数组
字符串
(2)占用的内存空间不同
基本数据类型的变量和对应的数据都存放在栈空间中
引用数据类型的数据存在于堆空间中,而引用型变量存在于栈在空间中,相当于一个指针指向堆空间的某个对象,存储的对象在堆空间中的首地址
(3)生命周期不同
基本型数据的作用范围是定义它的一对{}内,一旦出了大括号的范围,基本类型数据就被销毁
引用型数据的作用范围是从创建对象开始(new),一旦数据没有被任何引用变量引用(null),则对象成为垃圾,一旦被垃圾回收器回收,引用类型数据就被销毁

六、自动类型转换

黑色表示无数据丢失的自动类型转换
红色表示转换时可能有精度丢失
在这里插入图片描述

七、强制类型转换

高精度变量转换为低精度变量,可能造成精度损失。

八、基本类型转换常见的错误和问题

1、操作比较大的数时,要留意是否溢出,尤其是整数操作时
2、long型变量

九、运算符

逻辑运算符 符号 说明
逻辑与 & 两个操作数为true,结果才是true,否则是false
逻辑或 l 两个操作数有一个是true,结果就是true
短路与 && 只要有一个是false,则直接返回false
短路或 ll 只要有一个是true,则直接返回true
逻辑非 ! 取反:!true是false,!false是true
逻辑异或 ^ 不同是true,相同是false
位运算符 说明
~ 取反
& 按位与
l 按位或
^ 按位异或
<< 左移运算符,左移1位相当于乘2
>> 右移运算符,右移1位相当于除2取商

十、键盘输入

nextLine 输入一行字符串
next 遇到第一个空白符为止的字符串
nextInt 输入数字
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值