java常见面试题

第一部分:HR常见面试题

  1. 你为什么选择本公司?
    在我个人看来,求职是大事情,男怕入错行,选公司也是一样,正因为贵公司优秀,有特色,我才会到这里来,而且我有关注贵公司的公众号,我的

工作经历非常跟贵公司发布的信息非常相似!

  1. 你做过的项目?
    网上订餐系统,学生管理系统,图书馆管理系统。讲述自己所负责的部分的细节

  2. 你在项目中遇到过哪些问题和困难,你是如何处理,如何解决的?
    具体问题,比如:刚进公司时,业务不熟悉,代码命名不规范;还有些项目是之前写的,用的是其他框架,所以我花了很多时间去学习,请教同事,

同时也正因为这样,我很快跟同事们熟悉了

  1. 关于35岁这个梗,你怎么看?
    坦白来说,IT行业更新换代特别快,这就需要我们保持活到老学到老的心态,与时俱进才能轻松面对行业内的竞争压力,宝剑锋从磨砺出,梅花香自

苦寒来

  1. 如果你给被公司带来损失,你会这么做?
    既然事情已经发生,那么我首先会主动承认错误,向领导说明事情发生的具体情况和原因,并请求公司和领导帮助,将损失降到最低

  2. 你能接受加班吗?
    如果公司需要我加班,我会义不容辞,当然在工作中,我会尽量提高自己的工作做效率,避免不必要的加班!

  3. 你怎么看待工作中的压力?
    哪个行业都会有压力,这就需要我们自己去正确调节,将压力转换为动力,之前工作压力较大的期间,同时也是我进步最大的时候,最充实的时候!

  4. 你如何评价你自己?
    我认为自己是一个内向,不善言辞的人,但同事们都说我热心肠,喜欢主动帮助比人,无论是工作还是生活。为人友善,脾气好有耐心,遇事比较冷

静,成熟稳重

  1. 你怎么解决工作中遇到的问题?
    每一份工作都是有压力和难题的,那大部分问题都是由自己大意造成的,所以我会先仔细检查两遍,然后上百度找答案,如果还是没有解决,我会找

同事和领导寻求帮助

  1. 你的上司刁难或者抢了你的功劳你会怎么办?
    如果公司刁难我,那肯定是我有哪些方面做的不够好,以后肯定会特别注意,如果是工作中的事,我会认为这是一份挑战,尽力去挑战。关于功劳,

我认为荣誉是集体的,领导以员工为傲,那说明团体很优秀,说明领导的带领得好。

  1. 当问题回答不上来的时候?
    抱歉,因为我学的东西挺多,所以有些问题凭空想,一会儿想不起来,但是当我遇到问题的实际场景的
    时候可能就明白了!

----------------------------------------------华丽丽的分界线---------------------------------------------------

第二部分:专业知识

  1. 多态的概念
    1.面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点


2.多态的定义:指允许不同类的对象对同一消息做出不同响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函

数调用)
3.实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
4.多态的作用:消除类型之间的耦合关系。
5.现实中,关于多态的例子不胜枚举。
下面是多态存在的三个必要条件,要求大家做梦时都能背出来!

多态存在的三个必要条件
一、要有继承;
二、要有重写;
三、父类引用指向子类对象。

  1. String和StringBuffer的区别
    Java平台提供了两种类型的字符串:String和StringBuffer/StringBuilder,它们可以储存和操作字符串。其中String是只读字符串,也就意味着

String引用的字符串内容是不能被改变的。而StringBuffer/StringBuilder类表示的字符串对象可以直接进行修改。StringBuilder是Java 5中引

入的,它和StringBuffer的方法完全相同,区别在于它是在单线程环境下使用的,因为它的所有方面都没有被synchronized修饰,因此它的效率也

比StringBuffer要高,但是StringBuffer安全性更高

  1. java7项原则
    1.开闭原则(Open Close Principle)
    定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭
    2.里氏代换原则
    定义2:子类型必须能够替换掉它们的父类型。
    3.依赖倒转原则
    定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。即针对接口编程,不要针对实现编程
    4.接口隔离原则
    接口隔离原则的含义是:建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少
    5.迪米特法则
    是强调了类之间的松耦合,类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成影响,也就是说,信息的隐藏促进

了软件的复用。
6.单一职责原则(Single Responsibility Principle)
定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责,应该仅有一个引起它变化的原因
7.组合/聚合复用原则
就是说要尽量的使用合成和聚合,而不是继承关系达到复用的目的

  1. 什么是进程,什么是线程。
    一个应用程序就是一个进程,进程可以独立运行,一个进程下至少有一个线程
    进程有独立的内存空间,线程没有,同一时间一核心只有一个进程在跑,其他进程都在等待
    线程是进程的不同执行路径,一个进程下面可以有多个线程同时在跑,线程默认是异步的,

16.序列化?
是一种编码方式,写入是序列化,读取是反序列化,设定的long后,不可更改,否则读取无法反序列化
作用:
1、以某种存储形式使自定义对象持久化;
2、将对象从一个地方传递到另一个地方。
3、使程序更具维护性。

17.堆,栈,方法区的区别?
堆区:
村线程操纵的数据(对象形式存放)
1 存储的全部是对象,每个对象包含一个与之对应的class信息–class的目的是得到操作指令
2 jvm只有一个堆区(heap)被所有线程共享,堆区中不存放基本类型和对象引用,只存放对象本身。

栈区:
1 每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象)。对象都存放在堆区中。
2 每个战中的数据(基础数据类型和对象引用)都是私有的,其他栈不能访问。
3 栈分为3个部分:基本类型变量去,执行环境上下文,操作指令区(存放操作指令).

方法区:
存放线程所执行的字节码指令。
1 又叫静态区,跟堆一样.被所有线程共享.方法区包含:所有的class和static变量.
2 方法区中包含的是在整个程序中唯一的元素.如class static 变量.

18.八大基本类型的分装类及其方法
Byte,Short,Integer,Long,Character,Boolean,Float,Double
基本类型只有int对应Integer,和char对应Character,其他均为首字母小写即可

19.java常用的类有哪些,分类包举例,每个包至少三个,如util包下的类,lang包下的类
lang包:八大基本类型的封装类,异常类,Array,Class,Object,System (lang包是系同类,无需导包)
util包:Arrays数组操作工具类,list的子类,set的子类,map的子类,Iterator迭代器,UUID 32为随机码,Scanner扫描类
io包:File,FileInputStream,ObjectInputStream,Reader,Seriablizable
net包:Proxy,Socket,ServerSocket,URL,URI,CookieHandler
sql包:Date(util类Date的子类),Time(util类Date的子类),Array(与lang包的Array作用,方法均不同),ResultSet

20.常用的数据容器有哪些?
Array,list,set,map等等,分别说出里面的5个方法
数组的底层是树结构,set的底层是Map
Hashtable是基于哈希表的Map接口的同步实现,不允许使用null值和null键

21.你用过哪些数据结构
数组结构,链式结构,二叉树结构,队列等

22.说说你对static关键词的理解
static可以修饰内部类,方法,代码块,和变量,static代码块比方法先加载,变量具有申明提升功能
static修饰的内部类不依赖于父类,不能修饰普通类和接口,非静态内部类需要先实例化父类,在点new实例化内部类
static修饰的方法和变量属于类不属于对象,随着类的加载而加载,可以直接被类名加点调用

23.super和this的区别
this关键词表示本类对象,super代表父类对象

24.常见的异常类?运行时异常,检查异常各说出5个
检查异常是可以捕捉的,用try{}catch(){}

如:
SQLException - sql语句异常
IOexception - IO异常
FileNotFoundException - 文件找不到异常
ClassNotFoundException - 类找不到异常
NoSuchMethodException - 方法找不到异常
EOFException - 读取时文件,文件中对象读取完毕

运行时异常不被能捕捉
如:
NullPointerException - 空指针引用异常
ClassCastException - 类型强制转换异常。
IllegalArgumentException -传递非法参数异常。
NumberFormatException - 数字格式异常
ArrayStoreException - 向数组中存放与声明类型不兼容对象异常
ArithmeticException - 算数运算异常

25.流分为哪些类型?
按流向分为:输入,输出流
按类型分:字节,字符,对象,节点,处理流等

未完,待续······

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值