IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Day1/Java实习面试题每日一刷 -> 正文阅读

[Java知识库]Day1/Java实习面试题每日一刷

什么是面向对象?

对比面向过程,面向对象更注重事情有哪些参与者(对象),以及各自需要做什么,而面向过程仅仅是注重事情的步骤以及顺序。就像洗衣机洗衣服这件事,面向过程会拆分成一个个小步骤,从打开洗衣机,放衣服,一直到烘干。面向对象会拆出人和洗衣机两个对象,人要做什么,洗衣机要做什么。面向过程比较直接,面向对象更易于复用,扩展和维护。

面向对象还有三大特性:封装、继承、多态
封装的意义在于明确出允许外部使用的所有成员变量和方法,而无需关系内部是怎么实现的
最常见的封装就是Javabean中的属性私有,对外开放getter和setter方法,还有就是mybatis调用方法操作数据库。

继承:就是基于父类去扩展子类,一个父类可以有多个子类,父类是子类共有的特性,子类是他们独有的特性。在项目中通常会把模型的id,gmtCreated,gmtModified放入一个类当中,让其他的类去继承,减少了代码的重复

多态:多态首先得满足有几个条件,1是得有继承关系,2.子类要重写方法,3.父类引用要指向子类对象 多态的好处是便于维护,更易于扩展,但它也有个坏处,就是不能调用子类特有的方法。

==与equals的区别

==对比的是栈中的值,对基本数据类型比较的是变量值,对引用类型比较的就是内存对象的地址

equals在object类中作用是和==是一样的,但通常来说我们会重写equals,比如String中的equals方法就是比较String对象的值是否是相同,底层是将一个个字符拆出来对比的。

后期理解String直接创建与new String的区别?

简述final作用

final可以修饰类,方法和变量,修饰类,表示该类不可以被继承,修饰方法,表示该方法不可以被重写,但可以被重栽,修饰变量,表示该变量不可以被重新赋值。

final修饰的成员变量,在声明的时候就要赋值,或者在代码块中和构造器中赋值,类变量在声明的时候就要赋值或者在静态代码块中进行赋值。
final修饰的局部变量,在声明时可以不赋值,但在使用之间一定要赋值,
final修饰的引用类型的变量,一旦声明就不能指向另一个对象,也不能=null,但引用的值时可变的,像数组可以改变某一索引值的位置,对象可以改变它的属性。

为什么局部内部类和匿名类只能访问局部final变量

当外部类方法结束时,局部变量就销毁了,这时如果内部类还没有结束,访问了外部类方法已经被销毁的变量,就会出现一个错误,为了解决这个问题,内部类就会复制局部变量称为内部类的成员变量,内部类任可访问它,但如果局部变量发生改变与这个copy的变量不一样时,也会发生错误,所有给局部变量加个final,不给它改变,这实际上就是个妥协。在idea中好像是给内部类调用的局部变量自动加了个final。

String、StringBuffer、StringBuilder区别以及使用场景

String的源码是用final修饰的,每次创建不会改变对象,而是产生新的对象
这就造成了内存的浪费
StringBuffer和StringBuilder是在原对象上进行操作,不会产生新的对象,所以说要经常改变值的话,最好用StringBuffer和StringBuilder

StringBuffer在源码中方是法被synchronized修饰,是线程安全的,StringBuilder没有synchronized修饰是线程不安全的,性能方面是StringBuilder比StringBuffer要要好一点。

如果在单线程情况下,考虑性能选择用StringBuffer,在多线程情况下,多个线程共享变量使用StringBuffer

重载和重写的区别

重载是发生在一个类当中,方法名必须相同,参数个数,类型,顺序不同。访问修饰符和返回类型是没有关系的,如果只有这个不同编译时是会发生错误的

重写是发生在父子类当中,方法名,参数列表必须相同,返回值范围要小于等于父类,抛出的异常范围小于等于父类,访问修饰符要大于等于父类;如果父类访问修饰符为private,则方法不能被重写。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 07:36:16  更:2021-07-28 07:37:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/1 12:46:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码