纳业无忧欢迎您 !

微信
手机版

Java开发工程师面试应该注意什么-如何面试java技术经理

2024-06-09 19:05:08 来源 : 互联网 围观 :
Java开发工程师面试应该注意什么-如何面试java技术经理

如何面试java技术经理

这个比较灵活,我这边给一个面试(笔试)样例,主要从技术 管理两个方面开展:

一、业务需求分析题(70分)

某公司对部门员工绩效考核,考核分定量和定性二类考核,每类有多个考核项目,每个考核项目有多个考核指标。

(一)、需求分析举例(20分)

1、模拟实际工作遇到案例分析(5分)。

2、考核项目模拟举例(5分)。

3、考核方案举例(10分)

(二)、解答问题(50分)

1、请分析业务,作业务流程图(5分)

2、请设计“绩效考核管理系统”数据库结构表(15分)

3、通过编码实现对部门员工考核评分基本功能。(伪代码或说明“评分算法”)(20分)

4、多年数据,如何提高查询效率。(10分)

二、管理题。(30分)

1、 怎样管理项目?(6分)

2、 怎样管理团队?(6分)

3、 请设计高并发处理方案(10分)

4、 如何提高研发效率(8分)

欢迎关注我、欢迎吐槽评论。

一般java面试都会问些什么问题

初级Java开发面试知识点及题目

Java开发面试真题

九种基本数据类型的大小,以及他们的封装类。

Switch能否用string做参数? jdk7以后

equals与==的区别:要比较两个基本类型的数据或两个引用变量是否相等,只能用操作符

Object有哪些公用方法?

clone

equals

hashCode

getClass

wait

notify

notifyAll

toString

Java的四种引用,强弱软虚,用到的场景。

Hashcode的作用。

ArrayList、LinkedList、Vector的区别。

String、StringBuffer与StringBuilder的区别。

Map、Set、List、Queue、Stack的特点与用法。

HashMap和HashTable的区别。

HashMap和ConcurrentHashMap的区别,HashMap的底层源码。

TreeMap、HashMap、LindedHashMap的区别。

Collection包结构,与Collections的区别。

try catch finally,try里有return,finally还执行么?

Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况。

Java面向对象的三个特征与含义。

Override和Overload的含义去区别。

Interface与abstract类的区别。

Static class 与non static class的区别。

java多态的实现原理。

实现多线程的两种方法:Thread与Runable。

线程同步的方法:sychronized、lock、reentrantLock等。

锁的等级:方法锁、对象锁、类锁。

写出生产者消费者模式。

ThreadLocal的设计理念与作用。

ThreadPool用法与优势。

Concurrent包里的其他东西:ArrayBlockingQueue、CountDownLatch等等。

wait()和sleep()的区别。

foreach与正常for循环效率对比。

Java IO与NIO。

反射的作用于原理。

泛型常用特点,List能否转为List。

解析XML的几种的原理与特点:DOM、SAX、PULL。

Java1.7与1.8新特性。

设计模式:单例、工厂、适配器、责任链、观察者等等。

JNI的使用。

JVM

内存模型以及分区,需要详细到每个区放什么。

堆里面的分区:Eden,survival from to,老年代,各自的特点。

对象创建方法,对象的内存分配,对象的访问定位。

GC的两种判定方法:引用计数与引用链。

GC的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?

GC收集器有哪些?CMS收集器与G1收集器的特点。

Minor GC与Full GC分别在什么时候发生?

几种常用的内存调试工具:jmap、jstack、jconsole。

类加载的五个过程:加载、验证、准备、解析、初始化。

双亲委派模型:Bootstrap ClassLoader、Extension ClassLoader、ApplicationClassLoader。

分派:静态分派与动态分派。

TCP

OSI与TCP/IP各层的结构与功能,都有哪些协议。

TCP与UDP的区别。

TCP报文结构。

TCP的三次握手与四次挥手过程,各个状态名称与含义,TIMEWAIT的作用。

TCP拥塞控制。

TCP滑动窗口与回退N针协议。

Http的报文结构。

Http的状态码含义。

Http request的几种类型。

Http1.1和Http1.0的区别

Http怎么处理长连接。

Cookie与Session的作用于原理。

电脑问一个网页,整个过程是怎么样的:DNS、HTTP、TCP、OSPF、IP、ARP。

C/S模式下使用socket通信,几个关键函数。

Ping的整个过程。ICMP报文是什么。

数据结构与算法

链表与数组。

队列和栈,出栈与入栈。

链表的删除、插入、反向。

字符串操作。

Hash表的hash函数,解决方法有哪些。

各种排序:冒泡、选择、插入、希尔、归并、、堆排、桶排、基数的原理、平均时间复杂度、最坏时间复杂度、空间复杂度、是否稳定。

的partition函数与归并的Merge函数。

对冒泡与的改进。

二分查找,与变种二分查找。

二叉树、B 树、AVL树、红黑树、哈夫曼树。

二叉树的前中后续遍历:递归与非递归写法,层序遍历算法。

图的BFS与DFS算法,最小生成树prim算法与最短路径Dijkstra算法。

KMP算法。

排列组合问题。

动态规划、贪心算法、分治算法。(一般不会问到)

大数据处理:类似10亿条数据找出最大的1000个数

JAVA基础概念方面

1、String 是最基本的数据类型吗

答:不是。Java中的基本数据类型只有8个:byte、short、int、long、float、double、char、boolean;除了基本类型(primitive type),剩下的都是引用类型(reference type)。 其在内存中的引用包括栈内引用和堆引用两种。

2、解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法

答:通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的现场保存都使用JVM中的栈空间;而通过new关键字和构造器创建的对象则放在堆空间,堆是垃圾收集器管理的主要区域,由于现在的垃圾收集器都采用分代收集算法,所以堆空间还可以细分为新生代和老生代,再具体一点可以分为Eden、Survivor(又可分为From Survivor和To Survivor)、Tenured;方法区和堆都是各个线程共享的内存区域,用于存储已经被JVM加载的类信息、常量、静态变量、JIT编译器编译后的代码等数据。

3、构造器(constructor)是否可被重写(override)

答:构造器不能被继承,因此不能被重写,但可以被重载。

4、重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分

答:方法的重载和重写都是实现多态的,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求。

5、抽象类(abstract class)和接口(interface)有什么异同?

答:抽象类和接口都不能够实例化,但可以定义抽象类和接口类型的引用。一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类仍然需要被声明为抽象类。接口比抽象类更加抽象,因为抽象类中可以定义构造器,可以有抽象方法和具体方法,而接口中不能定义构造器而且其中的方法全部都是抽象方法。抽象类中的成员可以是private、默认、protected、public的,而接口中的成员全都是public的。抽象类中可以定义成员变量,而接口中定义的成员变量实际上都是常量。有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法。

6、同步方法和同步代码块的区别是什么

在Java语言中,每一个对象有一把锁。线程可以使用synchronized关键字来获取对象上的锁。synchronized关键字可应用在方法级别(粗粒度锁)或者是代码块级别(细粒度锁)。

类的成员不写访问修饰时默认为default。默认对于同一个包中的其他类相当于公开(public),对于不是同一个包中的其他类相当于私有(private)。受保护(protected)对子类相当于公开,对不是同一包中的没有父子关系的类相当于私有。Java中,外部类的修饰符只能是public或默认,类的成员(包括内部类)的修饰符可以是以上四种。

系统设计与部署方面

1、数据库设计原则, 通俗地理解三个范式

通俗地理解三个范式,对于数据库设计大有好处。在数据库设计中,为了更好地应用三个范式,就必须通俗地理解

三个范式(通俗地理解是够用的理解,并不是最科学最准确的理解):

第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;

第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;

第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。

没有冗余的数据库设计可以做到。但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降

低范式标准,适当保留冗余数据。具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理

数据模型设计时考虑。降低范式就是增加字段,允许冗余。

2、主要了解对方参与的项目,以及在项目中承担的角色。

如果是开发角色,需重点询问其开发的模块,实现了那些功能、使用的是什么框架或技术、有没有遇到什么难忘的坑。

如果是架构和设计角色,需要重点了解其参与模块的功能架构、部署架构、运行时架构和数据流图等。还可以问一下对系统可用性、数据一致性、性能等的考虑。

Java实习生面试前应该做好哪些准备

我说几点意见,你做下参考:(谁能找到我隐藏的错别字,找到给你NEW个妹子)

1、对相应的岗位要有一定的了解,相关知识也应该去了解熟悉,这些可以去各大招聘网查看,上面都会介绍对相关岗位的要求。

2、简历很重要,简历要认真写好,有针对性的写。

3、自己之前写的一些比较好的项目,整理出来面试的时候有用。特别是对相关岗位有关系的项目加分很多的。

4、要自信,因为你是有备而来。

5、谦虚,好学,作为实习生,新手,菜鸟,不懂的地方太多了,别装逼,别不懂装懂,别做井底之蛙。

就写这么说吧,觉得有用就点个赞,觉得没用不看。

“啪,啪。”

“谁呀?”

长长的沉默….

“Java.”

java工程师面试,问你开发中遇到的最困

结合实际经验,回答你遇到的问题,或者你熟悉的技术,说说你遇到什么问题,怎么调研,怎么解决的,主要是解决问题的思路

招聘专员招聘java都应该问什么或者筛选

1、先看简历上有没有写“精通JAVA”。

2、看面试者是不是北上广回来的人,问问他们原单位门前的路叫啥名字。(我面试了一些人,北上广工作2年以上都不知道公司门前的路名)

3、然后将薪资待遇分3~4个挡位,告诉他们每个挡位的薪资待遇,然后让他们自己挑选期望的薪资。

4、1档考基础,2档考编程,3档考算法,4档考问题处理能力。考题不要选偏门的,就是日常工作常用的即可,要求笔试。不要上机用IDE或搜索答案。

综合筛选之后就是公司可以使用的人才了,接下来要考验人品。

在太原面试java软件开发工程师,如何跟

我猜楼主是想知道当地java程序员的行情。很遗憾,我不是太原的,不能给予一个准确的数据。

建议楼主在各种招聘网站多看看当地别家公司的招聘信息,相同岗位相同工作年龄的薪资范围,这样能对当地的情况有所了解。也可以去咨询一下当地的猎头,他们对于行情相当了解,甚至能给你内推一个好的岗位。同时楼主可以估算下自己的生活成本,如果有房贷车贷都计算在内,这样心里就大概有数了…

阿里Java研发岗如何面试:数据结构 M

面试题如下

一面(主要是jvm,并发,锁,数据结构等基础)

1.自我介绍(说说自己的擅长及拿手的技术)

2.自我介绍(说说自己的擅长及拿手的技术)说说treemap和HashMap的区别?HashMap和ConcurrentHashMap的区别?

3.HashMap底层如何实现(JDK1.8有所改动)?

4.说说Hash的一致算法?

5.你知道的GC算法和回收策略有哪些?GC的机制是什么?

6.垃圾回收器的基本原理?是否可以立即回收内存?怎么样主动的通知JVM进行垃圾回收?

7.双亲委派模型机制

8.线程池创建的几个核心构造参数是什么?

9.乐观锁和悲观锁?可重入锁和Synchronized?

10.他们都是可重入锁吗?哪个效率更高?

11.CountDownLaunch和Cylicbarrior的区别以及分别是在哪样场景下使用的?

12.Http和Https的区别以及Https加密的?

13.以后的职业规划和想法

二面(主要是数据库,协议,Spring等)

1.自我介绍,聊下自己认为做得很好的项目!

2.InnoDB支持的四种事务隔离级别名称是什么? 之间的区别是什么?MySQL隔离级别是什么?

3.说说事务的特性?讲讲对慢查询的分析?

4.你理解的BTree机制?

5.有哪些MySQL常用的优化方法?

6.Http请求过程,DNS解析的过程?

7.三次握手和四次握手的过程?

8.B 树索引和Hash索引之间的区别?

9.Spring IOC如何管理Bean之间的依赖关系,怎么样避免循环依赖?

10.SpringBean创建过程中的设计模式?

11.说说AOP的实现原理?

12.Tomcat的基本架构是什么?

三面(主要是缓存,高并发,分布式)

1.自己项目中的总结的并发经验

2.说说MySQL的锁并发?加锁的机制是什么?

3.高并发场景下如何防止死锁,保证数据的一致性?

4.集群和负载均衡的算法与实现?

5.说说分库与分表设计?

6.分库分表带来的分布式困境与对应之策有哪些?

7.Redis和Setnx命令使如何实现分布式锁的?使用Redis怎么进行异步队列?会有什么缺点?

8.缓存击穿的概念和解决方案?

9.Redis的数据结构? 线程模型? Redis的数据淘汰机制

10.Redis的数据一致性问题

11.MQ底层原理的实现?

12.阻塞队列不用Java提供的该怎么实现?

13.讲讲负载均衡的原理?

14.如何实现高并发环境下的削峰、限流?

四面(主要项目入手)

1.讲讲项目中用到的中间件(Dubbo/MQ/Zookeeper/Redis/Kafka)?

2.什么情况下会造成雪崩?该怎么避免这种情况?

3.高并发架构的设计思路?

4.以前的项目中遇到的问题和解决策略?

5.生活中遇到过哪些挫折?最后怎么解决的?

---------------------

毕业生刚学完java,如何在面试当中介绍

刚毕业的话,一般在学校有一些毕业的项目,毕业的设计,我们可以整理一下我们在做这个毕业项目的时候用到的技术用到的哪些框架。在简历上尽量写的详细一点,因为很多的面试都是来自于简历。

1、也可以在网络上找一些Java相关的一些小项目进行分析,看他们是否用到哪些相关的技术!我们把用到的相关技术整理出来,写到自己简历项目当中!

2、在面试过程中我们要以我们自己写的项目为中心,介绍我们的工作经验,只要我们有做过哪怕一个项目那也算是我们的项目工作经验。

3、在网上找一些全面的面试题,很多面试时都会问你用到什么框架,你是用什么技术解决某一个功能?然而更多的问题始终来源于你的简历上所描述的项目。

个人观点,仅供参考

两年的java工作经验,面试时会被问到些

当我刷到这条脉脉的时候,想到当年老板面试我的时候,拿多线程问题虐我时,想想当时太难了。

悄悄给大家看几道阿里必问的面试题,测测能完美的回答几道呢?

1. 有没有一种一定能保证线程安全的代码写法?(偷偷告诉你,真的有!)

2. 多个线程如何保持A1B2C3等顺序交替输出?

3. synchronized volatile的CPU原语是如何实现的?

4. 无锁、偏向锁、轻量级锁、重量级锁有什么差别?

5. 如何正确的启动和停止一个线程?

6. 线程和纤程的区别的是什么?为什么纤程比较轻量级?

7. ThreadLocal有没有内存泄漏的问题?为什么?

8. 下列三种业务,应该如何使用线程池:

高并发、任务执行时间短

并发不高、任务执行时间长

并发高、业务执行时间长

网上搜罗一堆答案,各式各样,唉!!!

如果你平时只有CRUD的经验,不了解多线程与高并发,面对这样面试题,大概率一头雾水。

如果你真是这样,要想走到架构师的级别,不啃下高并发这块硬骨头是非常难的。

那么“高并发”到底该如何学呢?

不用害怕,我们为你精心准备了高并发专题课,带你将多线程的知识系统化,帮助你理解多线程在CPU层级的实现,以及这些实现如何一层一层的映射到那些上亿用户,千万QPS,百万TPS的系统。

怎么样,是不是超级酷?当然如果你还学的不过瘾的话,我们Java全栈课程也是相当充实的,还会你手把手进行大型互联网电商项目实战演练,让你充分将每个知识点融入实际的操作中。

课程主理人是知名院校教学总监吴刚老师,拥有数十年IT行业教学经验,曾任职大型互联网公司首席架构师,主导过多个高并发项目,其电商项目曾在双十一活动中承载过亿的浏览量和成交量。他的专业素养与实战经验将为课程注入丰富的趣味和营养!

课呱呱,爱她(IT)就上课呱呱,IT小白变专家,课呱呱能帮你实现!

Java程序员面试中容易被问哪些问题

由于我每年都会面试不少程序员,其中就包括相当数量的Java程序员,所以就这个问题,跟头条的广大网友交流一下。

Java工程师面试也是有一定的侧重点,做不同的研发方向,问题上也有所区别。另外,初级程序员与主力程序员的面试问题也有很大的不同,总的来说就是方向与定位相结合,下面为大家一一描述。

Java初级程序员面试

面试Java初级程序员的流程相对来说比较简单,通常是两轮面试,首轮面试一般进行技术面试,次轮面试通常是有HR统一安排关于职业规划以及心理方面的面试(大部分情况是走个流程),这两轮面试中,技术面试起到了关键的作用。

面试初级程序员(2-3级)一般从技术细节入手,要通过面试,首先要知道初级程序员都需要具备哪些能力。下面先描述一下作为一个Java初级程序员(2-3级,Web方向为主)应该满足哪些要求:

  1. 清晰Java面向对象编程步骤,理解封装、继承、多态等核心概念,理解基本的前端内容(HTML、CSS、JavaScript)。

  2. 能理解程序流程图描述的功能需求,能独立完成功能模块的编写、部署,能理解功能模块之间的交互关系,能完成功能模块之间的消息传递和处理。

  3. 能理解MVC、DAO等框架,并在实际开发中熟练使用,能独立完成前后台的数据处理,能完成各种认证功能的处理。

  4. 能使用数据库连接池等基本优化提高程序运行效率。

  5. 能理解容器在程序运行中的作用,能配置各种容器的基本参数。

  6. 对程序的安全性有一定的理解,能避免初级的安全性问题。

  7. 能处理一定数量的并发问题,能解决多线程情况下的数据安全问题。

  8. 能理解不同角色的任务分配,能进行有效沟通。

  9. 常见框架的使用,比如SpringMVC等。

初级程序员的工作往往是编写程序基本功能组件,是保证程序质量的一个重要环节,所以团队的整体能力往往并不是由架构师决定的,反而是由众多的初级程序员决定的。

Java主力程序员面试

主力程序员的面试通常要3轮或4轮,当然如果你走到了后面的两轮,基本上选择权就在你手里了,后面的两轮面试公司会给你安排一个看似比较美好的职业发展规划,因为主力程序员不仅要编码通常还承担者一部分管理工作(项目责任人),也是管理层比较倚重的。

主力程序员的技术面试流程并没有那么多细节问题,首先要了解一下做过哪些项目,在项目中都承担了什么任务,项目中遇到了哪些问题,怎么解决的等等。通常主力程序员的面试时间也比较长(2至3个小时),面试的氛围也比初级程序员要轻松很多。

主力程序员大部分是推荐上来的,有人力资源公司推荐的,也有公司内推上来的,当然也有主动投送简历要求面试的。一般对主力程序员都会有背景调查,这一方面是对公司负责,另一方面也是对者应有的尊重。

希望通过我的回答,大家能对Java程序员的面试有一个基本的了解。

我是悟空问答的签约作者,致力于为头条网友提供优质的科技类问题解答,关注我,跟我一起交流关于科技类的问题吧。

相关文章

标签列表