Java面试:1
月薪10000以上:
1.了解Java的反射机制
2. 了解泛型的原理
3. 了解Spring框架的基本原理
4. 熟悉设计模式
5. 了解如斐波那契数列之类的简单算法
月薪20000以上:
1. 精通MySQL的操作,了解如何优化取得更高的性能
2. 熟练使用Java的代理模式
3. 了解Spring框架的底层实现
4. 熟悉Tomcat的性能优化
5. 了解JVM的原理
6. 了解如何搭建高并发,高负载,高可用的系统结构
7. 如果会Hadoop就更好了
面试题:
(纯手打,个人总结,如果有错误欢迎指正)
1. 什么是面向对象:
所谓面向对象是指,编程语言将具体的参数和函数封装为一个实体,每一个实体称之为一个对象,程序员更关心的是每个对象如何设计,以及如何处理他们之间的关系,面向对象的语言特点是支持继承和多态。
2. 什么是继承:
举个简单的例子,李嘉诚的孩子相当于拥有李嘉诚的个人财产,当然前提是这些财产被李嘉诚声明为公有的,这样李嘉诚的孩子就可以继承李嘉诚的房子,钱。但是他无法继承李嘉诚声明为私有的老婆。
3. 什么是多态:
多态就是一个事物有用的多种形态,这是面向对象的一种表现。如人这个生物,他既是一个人,又是一个动物,还是一个哺乳动物。这就是多态的表现,如果某个方法接收一个动物,我传给他一个人,方法可以执行,因为人是更高级的动物。如果一个方法接收一个人,而我传给他一个动物,那程序就无法运行,因为动物可能包含低级动物,他不包含人特有的方法和属性。
4. 什么是可变参数:
可变参数是Java5.0的新特性,具体的使用方法是当一个方法声明的时候以public void test(int ... nums)为例。参数类型后跟三个点后再跟参数名称,该方法就可以接受任意多个int类型的参数,test(1,2,3) test(1,1,1,1,1)程序都可以执行,在方法中nums可以以数组的形式进行使用。
5. 什么是反射:
反射是Java提供的一种可以根据类的名称去获取类中参数的技术,以反射类的公有方法为例,首先需要加载这个类,然后获得类的实体,接着根据方法名去获取方法的对象,最后使用invoke传方法所需的参数就可以执行,如Spring这种框架就是使用反射的技术去注入对象的。
6. 什么是内省:
内省是Java提供的操作对象属性的API,实际上内部也是使用的反射技术,只是操作起来更加的方便。内省需要使用Introspector的getBeanInfo来获取与类相关的BeanInfo,使用getPropertyDescriptors可以得到BeanInfo的所有属性,然后使用getWriteMethod或getReadMethod可以获取该属性的set或get方法,得到的是一个Method对象,通过invoke方法可以运行。
7. MVC设计模式:
MVC设计模式是:Moudle,View,Controller,分别代表模型,视图,控制器。是Web开发中最常用的设计模式,每一层只关心自己的业务特点,无需关心其他模块,降低模块与模块之间的耦合性,增加项目的可扩展性和可维护性。
8. Spring框架的主要原理:
Spring框架的核心是IOC和AOP,IOC又叫依赖注入,有些人喜欢叫控制反转。它的基本原理是通过读取配置文件,通过配置文件中配置的路径,读取文件目录下的所有Java文件,得到文件名称,依次反射这些文件,得到他们的方法和对象,对象或方法上有没有指定名称的注解,最后通过反射生成方法的实体给指定的对象赋值。
AOP又叫面向切面的编程,它可以降低业务之间的耦合度,如日志记录,事务控制,异常处理等等。可以在方法前或方法后做一些操作,它的基本原理是使用Java的动态代理API,通过API获得指定方法的代理对象,通过再代理对象方法执行前后增加方法,可以达到在不改变类本身的情况下,灵活在某些方法执行前后增加其他方法。
9. 什么是泛型:
泛型是JDK5.0中提供的一种新特性,当我们的方法,接受不确定类型的参数时,可以使用特殊变量T,T在使用之前要在方法中进行声明如:public <T> T getObj(T t)这个对象代表,接收一个任意类型的参数,并且返回这个类型的参数。Map集合声明时接收的key和value就是泛型,泛型作用在类上时,即可使用Map<String,String>这种形式进行泛型赋值。
10. 如何声明一个注解:
注解是Java中一个为了取代配置文件的技术,常见的注解有@Override,@Test等,声明一个注解只需要新建一个类,以Imooc注解为例,public @interface Imooc{} 即可声明一个名为Imooc的注解。内部可以以参数类型 参数名()的形式来声明注解中所需要的参数。
十全十美吧,这是总结的Java里面难度比较高的面试题,前面那几个简单的除外。当然了,小公司基本问不到,问不到可以引导他们往这些上面问,可以提升你的逼格。
接下来我要说一下最重要的面试过程:
首先你要明白一个问题,诚实只会让你被淘汰。面试官看你诚实,然后很感动要了你,这种事情只会在童话故事里面。
1. 首先要自信,你要告诉自己,你就是比尔盖茨,是乔布斯,要有自信,但是要谦虚不能自大,你一拽一拽的别人立马就给你个坏印象,但是你说话不流利结结巴巴的别人也不会有好印象,不骄不躁即可。
2. 不要让面试官一直问你,这样你会很被动,指不定他想起来什么坑爹的问题,在他看你简历这种停顿的时候,你就问他这些问题,比如说:哥,咱们公司主要是做什么的啊?如果我进了咱们公司主要做什么?你来咱们公司多久了?这些问题,聪明人肯定能看出来这是三个问题,不会有人一次问三个,除非你不想在这家公司。这么问的是有原因的,一个是捧了他,还有一个潜移默化的告诉他,咱们咱们,让他感觉你已经是这个公司的了,并且,让他跟你说你进来以后主要做什么,他就会觉得,恩这个人正适合做这些,就好像你已经入职了,他告诉你要做什么一样。
3. 不会的问题不要说不会,你可以这么说,首先,如果你知道的一点的话,你就说:这个我研究过,但是上家公司没怎么用,所以没有太深入的了解,如果公司需要的话,我可以很快就学会了。如果这个东西你压根没有听说过你可以这么说:听说过,但是还没看过,如果公司需要的话,很快就能学会了。
4. 要表现出,你对编程这个行业无比的热爱,并且非常的有上进心,有拼搏进取的精神,想要在公司好好的发展,公司给我一片天,我给公司创造一个神话这种心态。还有就是如果他问了某一个问题你没有答上来,或者说那个技术实现你不懂你可以这么说:哥,你能不能给我说一下那个什么什么是怎么回事。这样有几个好处,一个是可以打发时间,面试的时间基本上都那么长,可以减少他问你的问题。另一个就是让他对你有一种好感,至少你很知道进取。最后切记,无论他说的对与错,你都要说,原来是这样啊,谢谢哥,当然,如果那个人明显比你小的话就不要这么叫了,还有就是你面试项目经理级别的职位,就无需这样。
5. 关于上家公司的离职原因,其他没什么记住不要说这几个原因:公司氛围不好,公司工资太低,合同到期了,公司加班多,公司出差多,公司不适合我的发展,公司待遇太差,公司女的太少,个人原因。凡是这些问题的,一律都是找死行为。你可以这么说,我只是举个例子。之前家里有点事情,安排相亲或者什么任何事情都可以,需要耽误一个月左右,公司那时候项目比较着急,老板等不及,然后我就辞职了。
6. 谈薪资的时候要坚定,一口咬定,不要说多少左右,或者多少到多少,直接说6000,8000,10000这些,如果不是万不得已,不要说6500,8500,这种后面带五百块钱的工资,这会让人对你产生怀疑,记住工资不能说多少左右。
编工作经验:
1. 在学校的时候,虽然我这个人不是很聪明,但是比较努力,老师们也喜欢让我做一些事情,然后我们学校某某老师他就经常接项目做,我就跟着他在学校做,主要是做什么做什么。
2. 我们学校大三的时候会安排出去实习,我在某某公司实习了一年,主要是做什么做什么。
3. 最后一年感觉在学校学不到什么东西,就自己出来找工作了,然后做了一年多,刚回学校参加完答辩,在那家公司主要做什么做什么。
需要注意的是,做什么这就需要你自己去编了,这很简单,你只要提前做过几个小案例,我相信编个这个还是很容易的吧。
基本上,面试问题就这么多了,希望大家都要牢记自信,当你有自信的时候,你就无惧任何的面试官,再一个就是既然选择了这个行业,就一定要用心。这里不是说教大家说谎,而是让我慕课学子不会因为工作经验这个门槛而被拒之门外,或者因为这个干着8000一个月的工作,拿着3000一个月的工资。
大家能够做到上面说的话,不管是不是新手,一定能拿到6000以上一个月的,如果还有做不到的请联系我,我亲自教你怎么做。
海阔凭鱼跃,天高任鸟飞,加油。
Java面试:1的更多相关文章
- JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结
我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和 ...
- 转:最近5年133个Java面试问题列表
最近5年133个Java面试问题列表 Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来 ...
- java面试宝典(蓝桥学院)
Java面试宝典(蓝桥学院) 回答技巧 这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的学生在笔试/面试时更好地赢得好的结果.由于这套试题涉及的范围 ...
- JAVA面试精选【Java基础第一部分】
这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童 ...
- Java面试必备知识
JAVA面试必备知识 第一,谈谈final, finally, finalize的区别. 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可 ...
- java面试和笔试大全 分类: 面试 2015-07-10 22:07 10人阅读 评论(0) 收藏
2.String是最基本的数据类型吗? 基本数据类型包括byte.int.char.long.float.double.boolean和short. java.lang.String类是final类型 ...
- 近5年133个Java面试问题列表
Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入. 在我 ...
- java 面试
115个Java面试题和答案——终极列表(上) 本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的章节分为上下两篇,第一 ...
- 【Java面试】基础知识篇
[Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充.源码分享见个人公告.Ja ...
- JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结(转)
hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加 ...
随机推荐
- 种子填充算法描述及C++代码实现
项目需要看了种子填充算法,改进了算法主要去除面积小的部分.种子填充算法分为两种,简单的和基于扫描线的方法,简单的算法如下描述(笔者针对的是二值图像): (1)从上到下,从左到有,依次扫描每个像素: ( ...
- C++标准库:std_map作为一个关联数组
摘要:std::map作为一个容器存在一个典型应用就是作为关联数组来作用.在诸如Java等等语言中,关联数组广泛存在.std::map是一个容器,在它的概念框架中存在两个词:键和值,std::map把 ...
- android 自定义Style初探---ProgressBar
系统自带的ProgressBar太丑了,所以我决定自定义一个Style. 原来的Style <?xml version="1.0" encoding="utf-8& ...
- RabbitMQ 参数们的Power “续”
参数中的 arguments 之前讲参数的一些作用的时候,忽略了最后一个字典类型的参数,因为这个参数是大有文章的,值得单独进出来说道说道. 这时,就不得不打开我们的 Web UI管理系统了,可以看到在 ...
- Java开发环境搭建——Eclipse配置
Pa设置utf-8a.b. (虽然不知道Spelling设置了有什么意义) 显示行号 添加jar包 快捷键xml注释选中内容 CTRL+SHIFT+/格式化 CTRL ...
- Alpha阶段项目Postmortem
以下对成员名字的简称: 陈鸿超 = 陈1 陈彦吉 = 陈2 石浩然 = 石 韩青长 = 韩 1. 设想和目标 1.1 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? ...
- Android开发笔记之《Window下安装Ubuntu双系统,Grub无法显示Window选项》
解决方法是: 在terminal里面输入: sudo update-grub 会找到windows的grub 重启电脑就可以了.
- welcome to learn prgram
Tips for your suceess(成功的秘诀) 1. Practice every day(每天练习) 每天用两小时来学习.你可以使用各种零碎时间,积少成多.你可以使用搞这些时间用来巩固练习 ...
- Java中vector的使用详解
Vector 可实现自动增长的对象数组. java.util.vector提供了向量类(vector)以实现类似动态数组的功能.在Java语言中没有指针的概念,但如果正确灵活地使用指针又确实可以大大提 ...
- struts2 s:file标签使用及文件上传例子
<s:form action="uploadaction" method="post" enctype="multipart/form-da ...