每日六道java新手入门面试题,通往自由的道路
作者:太子爷哪吒 发布时间:2023-11-13 16:22:29
1. 面试第一步,自我介绍。
这个自我介绍,在整个面试当中可以说是第一步,如果你能把你想说的重点说出来,把面试官带到你准备好的技术点中,可以说,你这次自我介绍成功了!
那么说下自我介绍需要包含什么:基本信息,教育背景、工作经历、项目经历、个人成长等。
可以说模板基本类似,但是每个的技术点、工作经历、项目经历都大不相同。所以在自己把握的点当中突出出来,抓住面试官的眼球。
模板:
例如:面试官您好,我叫xxx,18年毕业xx学校本科xx专业,毕业至今已有x年工作经验,在从事Java开发期间任职于x家公司。
第一家公司是xxx,这家公司是做xxx的,在java这一块我主要负责/参与的是xxx项目,在这个项目中主要负责xxx功能模块。在这家公司我收获成长最大的是xxx(技术和做事方面阐述),之所以离开这家公司是因为xxx(离职原因可以不说,就阐述下具体干了些什么)。
第二家公司也就是我上一任公司xxx,这家公司是做xxx,我在这家公司主要负责的是xxx,我在这家公司的收获是xxx,离开这家公司是因为xxx(离职原因可以不说,就阐述下具体干了些什么)。
平时的话我也会经常去学习技术,或者写一些技术博客比如我的公众号、CSDN博客有太子爷哪吒(也可以加一些自己平时的爱好,甚至写的什么博客,什么GitHub地址都行,能让自己加分就行!)
所以来说,这个比较广泛,可以自由发挥。打好第一步,后面的信息相对来说比较足点。我个人面试的话,经常特别紧张,但是一旦我自我介绍说好了,面试官问了我在自我介绍中提过的技术点,我个人就会相对自信点。跟面试官也会聊得比较久,比较开心。其实面试都是双向,他在选择你,你也在选择他,所以不必担心,不必过于紧张。把准备好的说出来就行啦!
2. 请你简述下对面向对象的理解,面向对象和面向过程的区别?
1.个人理解:
软件开发思想,先有面向过程,后有面向对象 。
在大型软件系统中,面向过程的做法不足,从而推出了面向对象 。
都是解决实际问题的思维方式 。
两者相辅相成,宏观上面向对象把握复杂事物的关系;微观上面向过程去处理。
面向过程以实现功能的函数开发为主;面向对象要首先抽象出类、属性及其方法,然后通过实例化类、执行方法来完成功能 。
面向过程是封装的是功能;面向对象封装的是数据和功能 。
面向对象具有继承性和多态性;面向过程则没有 。
2.面向对象
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特 性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护 。
缺点: 性能比面向过程低。
3.面向过程
优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗 资源;比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发,性能是 最重要的因素。
缺点:没有面向对象易维护、易复用、易扩展 。
嗯?讲的不错嘛!看来是有相对应的理解在里面啊!不错不错,我再考你一个问题。
3. 那你再讲下面向对象的特征有哪些方面
面向对象的特征有具体四个方面:封装、继承、抽象、多态。
封装:封装把一个对象的属性私有化,同时提供一些可以被外界访问的访问。
继承:继承是从已有类得到继承信息创建新类的过程,提供继承信息的类叫做父类,得到继承信息的类叫做子类。通过使用继承我们能够非常方便地复用以前的代码。
抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括了数据抽象和行为抽象。
多态:所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发 出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中 实现的方法,必须在由程序运行期间才能决定。实际上就是用同样的对象调用同样的方法会做出不同的反应事情。
4. 请问:我们是否可以继承 String类?
不可以,在我们查看String源码的时候,可以发现:String类是被final修饰,是不可以被继承的。
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
.....
}
而final有什么作用呢?
修饰类时:表示着该类不能被继承。
修饰方法时:表示方法不能被重写。
修饰变量时:表示变量不能被一次赋值,不能再修改了。
所以String被final修饰的好处有:安全,高效。 并且在当只有字符串不可变的时候,我们才能实现字符串常量池,字符串常量池可以为我们缓存字符串,提高程序的运行效率。
5. 我再问下final、finally、finalize这三者有什么区别吗?
final:修饰符(关键字)有三种用法:
如果一个类被声明为 final,意味着它不能再派生出新的子类,即不能被继承,因此它和 abstract 是反义词。
将变量声明为 final,可以保证它们在使用中不被改变,被声明为 final 的变量必须在声明时给定初值,而在以后的引用中只能读取不可修改。
被声明为 final 的方法也同样只能使用,不能在子类中被重写。
finally: 通常放在try…catch…处理异常中,代表着程序无论正常执行还是发生异常,这里的代码都会执行。 一般是把释放资源的代码放在finally块中。
finalize: 是Object类中定义的方法,Java中允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之 前做必要的清理工作。这个方法是由垃圾收集器在销毁对象时调用的。
6. 请讲下String和 StringBuilder、StringBuffer之间的区别?
首先String和 StringBuilder、StringBuffer它们都是可以存储和操作字符串的。
String它是使用final关键字字符数组来保存字符串,所以String对象是不可变的。
而StringBuilder和StringBuffer都是继承自AbstractStringBuilder类,这其中也是用字符数组来保 存字符串,但是没有被final修饰,所以是可变的。
但是StringBuilder中的方法没有synchronized修饰,所以它的效率会比StringBuffer高。
安全方面的话:
String的对象是不可变的,所以它是线程安全的。
StringBuffer因为对方法加了同步锁,所以也是线程安全,但是StringBuilder没有加同步锁,所以 线程不安全的。
性能方面的话:
每次对String类型进行改变的时候,都会生成一个新的String对象, 然后将指针指向新的String的对象。
StringBuffer和StringBuilder每次修改,会可以对对象本身进行操作修改,而不是生成新的对象并 改成对象引用。
使用场景:
如果要操作少量的数据用 String 。
单线程操作字符串缓冲区下操作大量数据用StringBuilder。
多线程操作字符串缓冲区下操作大量数据 用StringBuffer 。
来源:https://blog.csdn.net/weixin_45766180/article/details/117918660
猜你喜欢
- 背景实际开发中,常常需要将比较复杂的 JSON 字符串转换为对应的 Java 对象。这里记录下解决方案。如下所示,是入侵事件检测得到的 JS
- 本文实例讲述了C++实现的O(n)复杂度内查找第K大数算法。分享给大家供大家参考,具体如下:题目:是在一组数组(数组元素为整数,可正可负可为
- 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。 一、静态库和动态库的区别1. 静态函数库这类库的
- 一、栈(Stack)1、什么是栈?栈其实就是一种数据结构 - 先进后出(先入栈的数据后出来,最先入栈的数据会被压入栈底)什么是java虚拟机
- 本文实例讲述了Java实现的计时器【秒表】功能。分享给大家供大家参考,具体如下:应用名称:Java计时器用到的知识:Java GUI编程开发
- java 计算同比增长工具类为了数据的严谨性,统一装换为BigDecimal,话不多说,看代码。package com.pig4cloud.
- Android ListView的Item点击效果的定制
- 在《Spring Boot Hello World》中介绍了一个简单的spring boot例子,体验了spring boot中的诸多特性,
- SQLite是Android自带的关系型数据库,是一个基于文件的轻量级数据库。Android提供了3种操作数据的方式,SharedPrefe
- 1、何为依赖冲突Maven是个很好用的依赖管理工具,但是再好的东西也不是完美的。Maven的依赖机制会导致Jar包的冲突。举个例子,现在你的
- 1、什么是 ThreadLocal:ThreadLocal,即线程本地变量,如果你创建了一个变量,那么访问这个变量的每个线程都会有这个变量的
- 开篇语Synchronized,Java 友好的提供了的一个关键字,它让开发者可以快速的实现同步。它就像一个星星,远远看去就是一个小小的点。
- 背景:本人不是Java开发人员,经过四年多的历练,可以说是一枚BI攻城师了吧,最近粗糙的写了一个Portal来集成cognos报表,下面就入
- 打开首页,明显看到链接是https打头,https和http的通信协议差别,在于https安全性更高:http和https的差别很明显,二者
- 一个发送验证码的需求:包括限制文本框输入长度和只允许输入数字按惯例 先上图:class MyBody extends StatefulWid
- spring.activemq.pool.enabled=false时,每发送一条数据都需要创建一个连接,这样会出现频繁创建和销毁连接的场景
- 导语相信大家无论是做前端还是做后端的,都被接口接口文档所折磨过,前端抱怨接口文档和后端给的不一致,后端抱怨写接口文档很麻烦,所以Swagge
- Android 中ScrollView嵌套GridView,ListView的实例在Android开发中,经常有一些UI需要进行固定styl
- jpa EntityManager复杂查询概念EntityManager:EntityManager是JPA中用于增删改查的接口,它的作用相
- IDEA快速搭建spring boot项目1.创建项目老规矩,点击Create New Project2.编写控制器在com.demo.sp