用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
挑战Java面试题复习第1天,坚持就是胜利 ...
挑战Java面试题复习第1天,坚持就是胜利
怀念夏天
论坛元老
|
2024-10-26 21:03:44
|
显示全部楼层
|
阅读模式
楼主
主题
1886
|
帖子
1886
|
积分
5658
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
面向对象和面向过程的区别
面向过程:
步骤分析:将问题分解为一系列步骤。
函数实现:用函数渐渐实现这些步骤。
调用实验:在需要时调用这些函数。
高性能:得当对性能要求高的场所,如单片机和嵌入式
开发
。
面向对象:
对象分解:将问题分解为多个对象。
行为形貌:对象形貌事物在问题解决过程中的行为。
特性:封装、继续、多态。
优点:易于维护、复用和扩展,可构建低耦合体系。
性能:相对面向过程,性能较低。
标识符的命名规则
标识符:
定义:程序中自定义的元素,如类名、方法名、变量名等。
命名规则(硬性要求):
组成:可包含字母、数字、$、_。
限制:不能以数字开头。
避免:不得使用关键字。
命名规范(非硬性要求):
类名:首字母大写,后续每个单词首字母大写(大驼峰式)。
变量名:首字母小写,后续每个单词首字母大写(小驼峰式)。
方法名:与变量名规范相同。
自动装箱与拆箱
装箱:
定义:将根本数据类型自动转换为对应的包装器类型。
示例:int 转换为 Integer。
方法:通过 Integer.valueOf(int) 实现。
拆箱:
定义:将包装器类型自动转换回对应的根本数据类型。
示例:Integer 转换为 int。
方法:通过 Integer.intValue() 实现。
Java SE5之前的装箱:
需要显式使用 new 关键字创建包装器类型实例。
示例:Integer i = new Integer(10);
Java SE5及之后的装箱:
提供了自动装箱特性,简化了包装器类型的创建。
示例:Integer i = 10;(自动调用 Integer.valueOf(int))
重载和重写的区别
重写(Override):
父子类关系:仅在子类与父类之间发生。
方法署名一致:方法名、参数列表、返回类型(除子类方法返回类型是父类返回类型的子类外)必须与被重写的方法相同。
访问权限:子类方法的访问修饰符不能比父类方法的更严格。
异常限制:重写的方法不能抛出新的或更广泛的查抄型异常。
重载(Overload):
多态性体现:是类中多态性的一种体现。
参数列表差别:要求同名方法的参数列表必须不同(可以是参数类型、个数或顺序)。
返回类型:对返回值类型没有限制,可以相同也可以不同,重载的判定依据是参数列表而非返回类型。
equals与==的区别
== 操作符:
地点比力:比力两个对象在内存中的地点是否相同。
对象引用:判定两个引用是否指向同一个对象。
类型要求:操作数必须类型相同或存在继续关系。
数值比力:对于根本数据类型,如果值相称则比力结果为 true。
指针操作:本质上是比力指针地点。
equals 方法:
内容比力:比力两个对象的内容是否相称。
继续自 Object:所有类都继续自 java.lang.Object 类,适用于所有对象。
默认行为:如果没有重写 equals 方法,它的行为与 == 相同。
空指针安全:使用 equals 比力时,可以避免 NullPointerException。
最佳实践:在比力对象时保举使用 equals 方法,尤其是在阿里代码规范中。
总结:
在比力对象是否相称时,应使用 equals 方法。
在比力常量时,将常量写在前面,以避免可能的 NullPointerException。
保举使用阿里代码规范,并使用阿里插件来查抄和更换不合适的 == 使用。
Hashcode的作用
Java聚集分为List和Set:
List:有序,答应重复。
Set:无序,不答应重复。
Set判定元素存在性:
使用equals方法,但在大量元素时效率低。
哈希算法提升效率:
将聚集分别为多个存储地区。
每个对象通过hashCode方法计算哈希码,确定存储地区。
hashCode方法:
根据对象的内存地点计算出一个值。
聚集添加新元素时,先通过hashCode方法定位存储位置。
如果位置无元素,直接存储;如果位置有元素,使用equals方法比力。
相同则不存储,不同则寻找其他位置。
减少equals方法调用次数,进步性能。
String、StringBuffer和StringBuilder的区别
String 类要点:
不是根本数据类型,而是一个对象。
底层是 final 类型的字符数组。
字符串内容不可变,任何修改都会生成新的 String 对象。
字段定义:private final char value[];
字符串连接操作:
使用 + 操作符时,会隐式创建 StringBuilder 对象并调用 append 方法举行拼接。
StringBuilder 和 StringBuffer 要点:
两者都继续自 AbstractStringBuilder 抽象类。
底层都是可变字符数组:char[] value;
适用于频繁的字符串操作。
线程安全:
StringBuffer 是线程安全的,方法加了同步锁。
StringBuilder 非线程安全,没有加同步锁。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
怀念夏天
论坛元老
这个人很懒什么都没写!
楼主热帖
CVE-2017-12635 Couchdb 垂直权限绕过 ...
WEB安全基础入门—操作系统命令注入(s ...
Redis 原理 - Set
【牛客】8 企业真题
IOS手机Charles抓包
【手把手】光说不练假把式,这篇全链路 ...
java中Long和Integer缓存-128~127的简 ...
聊聊 C++ 和 C# 中的 lambda 玩法 ...
恭喜,成功入坑 GitHub 。。。 ...
数据库(Oracle 11g)使用expdp每周进 ...
标签云
集成商
AI
运维
CIO
存储
服务器
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表