校招的过程其实挺残酷的,不只是笔试的难题还有面试的考验,甚至还有结果等待的煎熬,其实,对于任何事情没有简单可言,只有是否努力可言。小时候第一个数学,1+1=2,回想很简单,然而曾经的那时并不是如此,所以,自己根据自己面试的内容进行了整理,其中包含着阿里巴巴,美团,京东,百度,腾讯,滴滴,CVTE的面试内容。内容比较多。需要点耐心进行浏览哦~
面试知识点:
1:简单讲一下Java的跨平台原理
答:由于非跨平台的情况下,对于不同的操作系统,那么就需要开发几套不同程序代码。为了解决这个问题,java通过不同系统,不同版本,不同位数的JVM来屏蔽不同的系统指令集差异而对外提供统一的接口(JavaAPI),所以这样对于我们普通的开发者来说,只需要开发符合Java规范的程序即可。如果程序需要部署到不同的操作系统,那么我们只需要按照对应版本的虚拟机即可。
2:java开发环境的步骤
答:需要的内容:对应操作系统的JDK , 对应版本位数的IDE(开发工具,比如Eclipse或者IDEA),如果是开发Web项目,那么还需要服务器,比如Tomcat,jetty。
步骤:
(1)下载JDK,并且配置好Java_Home这个环境变量,因为对于开发工具和Tomcat都需要依赖这个配置变量。
(2)下载IDE,正常解压即可。
(3)下载Tomcat ,正常解压即可,并且将这个集成到开发工具中,便于项目进行发布。 三者的版本要符合规范
3:Java中Int数据占几个字节
答:四个字节,32位
4:面向对象的特征有哪些?
答:继承,封装,多态,抽象(然后对每个概念进行描述和讲解一个实例)
5:拆箱和装箱
答:装箱:就是基本数据类型转换成对应的包装类型。
比如:int x = 5 ; -----Integer y = x ; (这是自动装箱)
实际上进行的是:Integer y = Integer.valueOf(x); (这是手动装箱)
拆箱:就是包装类型转换成对应的基本数据类型。
比如:Integer a = 5; -------- int b = a ; (这发生了自动拆箱)
实际进行的是:int b = a.intValue() ; (手动拆箱)
6:有了基本数据类型,为什么还需要包装类型
答:Java是面向对象的语言,而基本数据类型没有面向对象的特性,而且包装类型存在缓存,这样能够更加好的利用资源。(比如,Integer的缓存内容就是-128--------127)
7:equals和==的区别
答:“==”判断两个对象是否值相等。这里要注意:当为基本类型的时候,就是比较值,如果是引用类型,那么就是比较首地址。
Equals:判断两个对象的内容是否一样,这个一般是用于引用对象的比较的使用。
8:实现一个拷贝文件的工具类,使用字符流还是字节流
答:使用字节流,因为我们拷贝的文件中,可能有图片,图像,如果使用字符流就无法进行拷贝,所以为了工具类的实用性,采用字节流更好。
9:简单说一下forward和redirect的区别
答:相同点:都是对请求进行处理
不同点:(1)forward是发生在服务器端,效率更好,而redirect是发生在了客户端
(2)forward是请求转发,只是一次请求,而redirect是相当于了两次请求
(3)Forward不会改变客户端的URL显示,而redirect会改变客户端的URL的显示
10:servlet的生命周期
答:加载servlet的class---》实例化Servlet-----》初始化servlet(调用init方法)------》调用服务service方法(处理doget和dopost方法)-----》servlet容器关闭时调用销毁方法(destory方法)
11:session和cookie的区别
答:共同点:session和cookie都是会话跟踪技术,cookie通过在客户端记录信息确定用户信息,而session通过在服务器端进行记录确定用户信息,但是session依赖于cookie,其中sessionID(session的唯一标识需要存放在客户端);
不同点:(1)cookie存放在客户端的浏览器上,而session存放在服务器中
(2)cookier不是很安全,别人可以分析本地的cookie并进行cookie欺骗,所以考虑安全应该使用session
(3)Session会在一段时间内保存在服务器上,当访问增多时,会比较占用你服务器的性能,考虑到减轻服务器性能,应该使用cookie
(4)单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多存放20个cookie
(5)重要信息一般放在session,而类似购物车就应该使用cookie,但是cookier是可以被禁用的,所以应该利用cookie与数据库两种方式。