Java基础面试题都有哪些?

Java基础面试题都有哪些?,第1张

一般面试官都会让面试者回答哪些Java基础面试题啊?难不难啊? 针对这一系列的疑问,广州增城Java培训学校收集了部分Java基础面试题与大家分享,希望对各位参加了广州专业Java培训的学生,有一定的帮助! 一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的 *** 作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出bbbhhtccc。 3.数据类型之间的转换 如何将数值型字符转换为数字(Integer,Double) 如何将数字转换为字符 如何取小数点前两位,并四舍五入。 4.日期和时间 如何取得年月日,小时分秒 如何取得从1970年到现在的毫秒数 如何获取某个日期是当月的最后一天 如何格式化日期 5.数组和集合 6.文件和目录(I/O) *** 作 如何列出某个目录下的所有文件 如何列出某个目录下的所有子目录 判断一个文件或目录是否存在 如何读写文件 7.Java多态的实现(继承、重载、覆盖) 8.编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。 9.Java中访问数据库的步骤,Statement和PreparedStatement之间的区别。 10.找出下列代码可能存在的错误,并说明原因: 二、JSP&Servlet技术 1.描述JSP和Servlet的区别、共同点、各自应用的范围 2.在Web开发中需要处理HTML标记时,应做什么样的处理,要筛选那些字符(<>&“”) 3.在JSP中如何读取客户端的请求,如何访问CGI变量,如何确定某个Jsp文件的真实路径。 4.描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理。 5.列出Jsp中包含外部文件的方式,两者有何区别。 6.说明Jsp中errorPage的作用,应用范围。 7.介绍在Jsp中如何使用JavaBeans。 8.简单介绍JSP的标记库 9.Jsp和Servlet中的请求转发分别如何实现。 三、J2EE相关知识 1.介绍J2EE、J2SE、J2SE的区别。 2.J2EE是一种技术还是一种平台,他提供了那些技术。 3.什么是Application Server,它有什么功能和优点。 4.简单介绍连接池的优点和原理。 5.Web.xml的作用 四、其他 1.Web安全性的考虑(表单验证、浏览器Basic方式的验证,应用程序的安全性,SSL,代码考虑) 2.简单介绍您所了解的MVC。 3.简单介绍所了解的XML。 4.文档和编码规范 5.Java中的分页、效率考虑。 6.简单介绍您所了解的structs。 Java面试题收藏: 1.xml在项目中的作用 2.s-EJB 与 e-EJB的区别 3.会话面的作用 4.cmp与bmp的优缺点 5.j2me程序的必需的几个部分 6.c/s与b/s的区别 7.构建一个connect pool然后再调用它, 8.j2ee平台与dotnet平台的区别 9.ejb的life cycle 10.session bean 和 entity bean的区别 11.ejb中的transaction机制 12.synchronized (生产者和消费) 13.String 和 StringBuffer 14.Serializable 15.MVC (Struts的工作流程) 16.什么是MDA 17.tcp与udp的区别 18.链表与散列表和数组的区别 19.堆和栈的区别 20.ejb的分类及区别 21.你对现在软件业以及国内软件业的看法 22.谈谈java多线程 23.谈谈文件加密技术 24.软件开发生命周期 25.路由协议种类及特点 26.java的awt和swing组件的GUI设计的关键 27.对于java流的认识 28.简单描述一下awt与swing区别。 29.简述java编程中事件处理模式。 30.你编写过applet吗?applet的安全权限如何?试列举java application或者applet中与servlet/jsp通信可以采用的方式。 31.简述逻辑 *** 作(如&|)与条件 *** 作(如&&||)的区别。

个人介绍:

首先介绍下我面试时的自身条件情况,我把自己的情况分为优势和劣势来说可能更有利于你们比较自身情况。

劣势:

1.15年7月毕业后开始到上海工作,面试的时候是17年3月到4月,一年多的经验,勉强算两年经验。分析:一年多经验我认为是比较尴尬的,处于一个不上不下的位置,很多公司比较喜欢招三年经验的,或者直接招应届生来培养。

2.毕业于一个非985/211,勉强上一本的高校。分析:这个相对影响较小,因为有工作经验后,公司对学校的要求就没那么高了,只要是本科就基本没问题,但是还是有个别叼毛公司只要985/211。

3.前一家公司是传统电信行业,加入项目组时,项目已经上线有段时间了,我们的任务就是有需求就开发,有bug就优化,其他时间就聊骚,各干各的,工作一年多跟在养老一样,用一句话说就是编程5分钟,扯淡2小时,项目经验严重不足,没开发过很难的需求。分析:这一点是最伤的,公司招有经验的就想看你都干了些什么牛批的东西,结果你告诉面试官我写的需求都是垃圾。

优势:

1.大学时拿过比较多的奖,每年都是校级优秀学生,毕业时是市级优秀毕业生,拿过省级ACM二等奖等。分析:大学的荣誉对一个有工作经验的人来说,公司不一定会看重,但是可能会对面试官产生微妙的影响,特别是ACM奖,我碰到过有的面试官也是搞过ACM的,有共同的话题聊起来总是比较容易的,但是也要注意不能把这一栏篇幅写的过于多,只能当作点缀用,我当时是放在简历最后一栏,简要的写了最主要的几个奖。

2.良好的沟通交流能力。分析:这个能力不会是关键性的,但是可以加分。

3.较强的学习能力和逻辑思维能力。分析:有些公司和面试官还是比较看重一个人的学习能力的,经验代表着你现在在什么级别,而学习能力则代表着你将来能到达什么级别。

学习过程:

看了我的优劣势介绍,你会发现我的优势相对于我的劣势来说,简直不值一提。我自己对此也有清晰的认识,因此从过完年之后,我就开始抓紧空闲时间学习。学习的过程如下:

1.看面试题

正常人第一步肯定都会看面试题,我也不例外,在看的过程中,我发现有些文章写的不错,对我帮助不小值得推荐,如下:

Java面试题全集(上)很多基础的东西,建议先看。

各大公司Java后端开发面试题总结

面试心得与总结—BAT、网易、蘑菇街

关于Java面试,你应该准备这些知识点

2.深入学习

在看面试题的过程,你会遇到一些自己没接触过的或者以前没深入学习过的知识,例如最常问的HashMap内部实现原理,这就促使你得开始去看jdk的源码或者是学习一些新的东西。看源码是很重要的一步,起步很难,但是会让你收益良多,看源码的过程如果碰到无法理解的地方,可以百度看下别人的理解。我学习源码的过程中,看过几个人的关于源码的文章写的很不错,如下:

五月的仓颉

占小狼

zhangshixi的Core java系列

3.熟悉项目

找出自己工作以来开发过的最叼的功能,将整个功能的流程和涉及的东西吃透。项目是面试中必问的环节,一般是以一个功能点为基础展开问,因此你必须对这个功能有很深的认识,不能有模糊的地方。如果有时间,能把涉及到的知识点也搞懂最好。

4.做面试题

有不少公司是有面试的,如果你没有准备过,很容易在各种小地方犯错,建议去一些面试题网站多做些题目,我自己是用的牛客网。

5.学习记录

把自己每天的学习时间和学习内容记录下来,可以让自己更有动力的学习,学习是一个枯燥的过程,你必须让自己时刻保持有动力。

投简历、约面试环节

1.在哪些网站投?

拉勾网、BOSS直聘、猎聘网。

2.是否该海投?

投简历分为两个情况。

1)没有社招面试经验:建议采取海投的方式,只要职位要求跟自己比较匹配都可以投,累计面试经验。这个环节可以把投简历的网站增加两家:智联和无忧。

2)自认为社招面试经验已经足够:投那些职位匹配、公司满意的职位。公司评价可以去看准网、百度、知乎等查询。

3.一天约几家面试合适?

最理想的情况为2家面试,上午一般在10点左右,下午一般在2点左右。建议把理想的公司放下午,因为下午的时间比较充足,可以让公司更充分的了解你。我开始面的时候,每次都是上午面的不好,下午面的不错。

4.投简历经常没下文?

我当初也没想到简历筛选这关有这么难,可能是我的简历确实亮点不多,再者HR很多都不是行内人,因此他们看得最直接的就是你上家的公司和你毕业的学校,如果你不是从牛逼的公司/学校出来,可能会碰到和我一样的情况,应对的办法就是多投。

5.是否该裸辞?

我一开始是边上班边投,然后利用调休时间,或者请假去面试。后来,面试机会越来越多,请假太频繁了,自己都不好意思了,并且自己也已经有足够的信心,这个时候我选择了裸辞。裸辞还有一个原因是,在面试过程中你会发现,有的公司要人要的紧,如果你的辞职流程过长可能会导致你错过这个公司。

6.注意事项

1)面试前一天把路线和时间算好,最好别迟到。

2)背个书包,带好简历、充电宝、纸巾、雨伞。

面试环节

1.笔试常见的问题?

面试常见的问题上面给的面试题链接基本都有。我只提几点:1)写SQL:写SQL很常考察group by、内连接和外连接。2)手写代码:手写代码一般考单例、排序、线程、消费者生产者。我建议排序算法除了冒泡排序,最好还能手写一种其他的排序代码。试想:如果一般面试者都写的冒泡排序,而你写的是快速排序/堆排序,肯定能给面试官留下不错的印象。

2.面试流程?

1)让你自我介绍

2)问Java基础知识

3)问项目

4)情景问题,例如:你的一个功能上了生产环境后,服务器压力骤增,该怎么排查。

5)你有什么想问面试官的

3.面试常问的知识点?

1)集合相关问题(必问):

HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList的底层实现。

HashMap和Hashtable的区别。

ArrayList、LinkedList、Vector的区别。

HashMap和ConcurrentHashMap的区别。

HashMap和LinkedHashMap的区别。

HashMap是线程安全的吗。

ConcurrentHashMap是怎么实现线程安全的。

2)线程相关问题(必问):

创建线程的3种方式。

什么是线程安全。

Runnable接口和Callable接口的区别。

wait方法和sleep方法的区别。

synchronized、Lock、ReentrantLock、ReadWriteLock。

介绍下CAS(无锁技术)。

什么是ThreadLocal。

创建线程池的4种方式。

ThreadPoolExecutor的内部工作原理。

分布式环境下,怎么保证线程安全。

3)JVM相关问题:

介绍下垃圾收集机制(在什么时候,对什么,做了什么)。

垃圾收集有哪些算法,各自的特点。

类加载的过程。

双亲委派模型。

有哪些类加载器。

能不能自己写一个类叫java.lang.String。

4)设计模式相关问题(必问):

先问你熟悉哪些设计模式,然后再具体问你某个设计模式具体实现和相关扩展问题。

5)数据库相关问题,针对Mysql(必问):

给题目让你手写SQL。

有没有SQL优化经验。

Mysql索引的数据结构。

SQL怎么进行优化。

SQL关键字的执行顺序。

有哪几种索引。

什么时候该(不该)建索引。

Explain包含哪些列。

Explain的Type列有哪几种值。

6)框架相关问题:

Hibernate和Mybatis的区别。

Spring MVC和Struts2的区别。

Spring用了哪些设计模式。

Spring中AOP主要用来做什么。

Spring注入bean的方式。

什么是IOC,什么是依赖注入。

Spring是单例还是多例,怎么修改。

Spring事务隔离级别和传播性。

介绍下Mybatis/Hibernate的缓存机制。

Mybatis的mapper文件中#和$的区别。

Mybatis的mapper文件中resultType和resultMap的区别。

Mybatis中DAO层接口没有写实现类,Mapper中的方法和DAO接口方法是怎么绑定到一起的,其内部是怎么实现的。

7)其他遇到问题:

介绍下栈和队列。

IO和NIO的区别。

接口和抽象类的区别。

int和Integer的自动拆箱/装箱相关问题。

常量池相关问题。

==和equals的区别。

重载和重写的区别。

String和StringBuilder、StringBuffer的区别。

静态变量、实例变量、局部变量线程安全吗,为什么。

try、catch、finally都有return语句时执行哪个。

介绍下B树、二叉树。

ajax的4个字母分别是什么意思。

xml全称是什么。

分布式锁的实现。

分布式session存储解决方案。

常用的linux命令。

一些经验:

1.先投一些普通公司,等面出了心得再去投理想的公司。

2.不熟悉的技术不要主动提。

3.对于那种实习期6个月还打8折的公司,除非你没有其他选择了,否则不要去。

4.小公司喜欢在薪水上压你,开的时候适当提高。

5.不要去参加招聘会,纯粹是浪费时间。

6.把面试当作一次技术的交流,不要太在意是否能被录取。

7.公司一般面完就决定是否录取了,让你回去等消息这种情况一般没戏,无论你自己觉得面的有多好。

8.尽量少通过电话面试,效果不好。

9.在面试的日子里,要保持每天学习,无论是学习新东西还是复习旧东西。

10.拿到offer了,问问自己这个公司让自己100%满意了吗,如果不是,请继续努力找更好的。

11.通过面试官可以大概判断这家公司的情况。

12.拉勾投的简历很多会被筛掉,但是拉勾还是面试机会的最主要来源。

13.理想的公司可以多投几次,我有好几次都是第一次投被筛掉,多投几次就过的经验。

14.问到自己有深入研究过的知识,抓住机会好好表现,不要轻易放过。

正如圈内的大佬所说的那样,基础很重要。浙江优就业的老师帮你总结一下。

常见的面试题有:

安卓图片加载后一直在手机如何优化?

解释一下安卓中SharedPreferences类?

客户端和服务端如何收发信息?

activity里如何发起http请求?

安卓UI线程调用sleep?

static类如何回收?

接口和抽象类

JVM垃圾回收算法

如何区分哪些是老年代对象?

线程池

线程终止

设计模式 单例

JDBC

Runnable run() start() 区别?

Socket

静态代码块和构造器的执行顺序

final的map能否修改?

String StringBuffer StringBuild区别?

内存泄露?

ArraryList LinkedList

HashMap原理

linux常用命令 查看进程PS

redis相关?

运行时异常 一个对象为空,怎么进行处理?

泛型 哪里用到?什么好处 ?

对数据库进行一些 *** 作,mybatis要进行哪些 *** 作?

为什么Java是跨平台?

匿名内部类能不能有外部内的接口?(反正跟匿名内部类有关)?

@Test 测试用例 干嘛

如何获取http的参数?

Controller的参数设置,为什么是单例的?

@autowired装载一个类,构造器里能不能直接调用这个类 ?

spring和springmvc区别?

springmvc跨域?

锁的种类等

望采纳!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6857761.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-29
下一篇 2023-03-29

发表评论

登录后才能评论

评论列表(0条)

保存