Java八股文基础篇
java语言的特点
-
面向对象
-
平台无关性
-
简单性
-
多线程
-
安全性
-
健壮性
-
高性能
-
分布式处理
面向对象和面向过程的区别是什么?
1.面向过程:基于功能或过程,强调的是动作的本身,按顺序执行任务的程序设计。
2.面向对象:基于对象概念,强调数据和操作数据的方法结合,支持继承、封装、多态。
说说标识符的命名规则
1.标识符的含义:在程序中我们自己定义的内容,比如类的名字,方法名称以及变量名称等等,都是标识符。
2.命名规则:(硬性要求)标识符可以包含英文字母,0-9的数字,$以及_标识符,不能以数字开头,标识符不能是java保留的关键字。
3.命名规范:(非硬性要求)类名规范:首字符大写,后面每个单词小写(大驼峰式)。
变量名规范:首字母小写,后面每个单词首字母大写(小驼峰式)
方法名规范:同变量名
说说java八种基本数据类型的大小以及他们的封装类
1.byte:大小为8位,默认值0,封装类是Byte。
2.short:大小为16位,默认值0,封装类是Short。
3.int:大小是32位,默认值是0,封装类是Integer。
4.long:大小是64位,默认值是0L,封装类是Long。
5.float:大小是32位,默认值是0.0f,封装类是Float。
6.double:大小是64位,默认值是0.0d,封装类是Double。
7.char:大小是16位,默认值是\u0000(空字符),封装类是Character。
8.boolean:大小不明确(依赖于虚拟机实现),有一个默认值是false,封装类是Boolean。
instanceof关键字有什么作用?
instanceof关键字用于检查一个对象是否是指定类或其子类的实例,返回true或false。
自动装箱和自动拆箱是什么?
1.自动装箱:基本类型自动转换为对应的包装类型。例如:
-
将int 转换为Integer
-
将double转换为Double
-
将cahr转换为Character
2.自动拆箱:包装类型转换为对应的基本类型
重载和重写有什么区别
1.重载
-
发生在同一个类中。
-
方法名相同,参数列表不同(类型,个数,顺序)
-
返回类型可以不同,不影响重载的判断
-
编译时是多态
2.重写
-
发生在父子类之间
-
方法名,参数列表相同,只修改函数体
-
返回类型必须相同或为子类型
-
访问权限要被父类高
-
运行时多态
==和equals的区别
==:比较两个对象的引用或基本数据类型的值是否相同
equals:默认是比较对象的引用,可被重写来比较对象的内容
Hashcode有什么作用?
hashCode()方法的作用是返回对象的哈希码,主要用于优化信息存储结构,如哈希表(HashMap、HashSet等,)通过哈希码来快速定位对象的存储地址,提高数据的访问效率。在java中相等的对象必须具有相同的哈希码。
String、StringBuffer、StringBuilder的区别
ArrayList和LinkedList的区别是什么?
1.ArrayList:
-
基于动态数组实现,支持随机访问
-
插入、删除操作需要数据拷贝,效率较低。
-
扩容成本高,需要复制整个数组。
2.LinkedList:
-
基于双向链表实现
-
插入、删除操作效率高,不需要移动其他元素。
-
不支持高效的随机访问