Java笔试题
一、 10个箱子,每个箱子10个苹果,其中一个箱子的苹果是9两/个,其他的都是1斤/个。 要求利用一个秤,只称一次,找出那个装9两/个的箱子
答:将十个箱子编号从1到10编号,从第一个箱子取出一个苹果,第二个箱子取出两个苹果,以此类推,第十个箱子取出十个苹果。
这样的话,如果所有苹果都是10两的话,他们的重量总计是:
1*10+2*10+…+9*10+10*10 = 550
假设是第x个位置的苹果是九两,那么公式是:
x = 550-称重数

二、 如何查看linux 的cpu使用情况
答:top 如图:

三、 一个Linux用户设置了umask 022, 新建一个文件,默认权限是什么?
答:默认权限是644。用户可读,可写,用户组可读,其他组可读。
➜ ~ git:(master) ✗ touch umask_022
➜ ~ git:(master) ✗ ll umask_022
-rw-r–r– 1 christinazy staff 0B 5 14 23:20 umask_022
➜ ~ git:(master) ✗
四、 通过浏览器访问京东首页 www.jd.com时,都向服务器传了哪些信息?
答:1,客户端接受数据类型。比如,text/html ,text/json ,*
2,接受语言编码
3,请求内容大小,类型
4,客户端信息(浏览器信息,操作系统)

五、 比较memcached和redis
六、 抽象类和接口区别,使用时如何选择?
答:
1,定义不同,一个是interface,一个是abstract class
2,内容不同,一个全是抽象方法,一个既有抽象方法,又有实现方法。
3,接口可以多继承,抽象类只能单继承。
接口是用策略模式 抽象类用模板模式

七、 多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
答:
1,继承Thread
2, 实现runnable接口
3,Executors线程池 Executors.newFixedThreadPool(5)
4,spring的配置ThreadPoolTaskExecutor,然后由TaskExecutor引用执行
第三种实现方式

package test.dump;import java.util.concurrent.Executor;
import java.util.concurrent.Executors;public class CPUBusyTest {static Object lock = new Object();static Executor executor = Executors.newFixedThreadPool(5);public static void main(String[] args) {Task task1 = new Task();Task task2 = new Task();executor.execute(task1);System.out.println("这行会输出");executor.execute(task2);System.out.println("task2会一直等待,所以不会输出");}static class Task implements Runnable{@Overridepublic void run() {synchronized (lock){calculate();}}private void calculate() {int i = 0;while(true){System.out.println(i++);}}}
}

第四种:

  <bean id="msgTaskExecutor" name="msgTaskExecutor"class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"><!-- 核心线程数  --><property name="corePoolSize" value="10"/><!-- 最大线程数 --><property name="maxPoolSize" value="20"/><!-- 队列最大长度--><property name="queueCapacity" value="10"/><!-- 单位毫秒,超过这个时间后会将大于corePoolSize的线程关闭--><property name="keepAliveSeconds" value="1000"/><!-- 拒绝执行任务的具体操作AbortPolicy: 抛出RejectedExecutionException异常。CallerRunsPolicy:主线程执行该任务,执行完之后尝试添加下一个任务到线程池中 --><property name="rejectedExecutionHandler"><bean class="java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy"/></property></bean>

八、 什么是死锁,举例说明
答:两个以上线程对同一资源竞争。例如两个两线程a,b分别需要拿到锁1,2.而线程a拿到1的锁,线程b拿到2的锁。两个线程相互持有锁,相互等待造成死锁。

九、 XML文件的解析方式有哪些, Java中有哪些工具类
答:dom4j sax

十、 Overload和Override的区别
答:overload 一个类中方法名称相同,形参个数和类型不同
override 子类重写父类方法

十一、 比较SoftReference, WeekReference和 PhantomReference
答:1,与上面相对应的还有一种Strongreference. 通过直接new对象叫做强引用。
强引用表现形式:
Person p = new Person();
p就是强引用类型。

2,SoftReference 需要用SoftReference对象包装。形式如下:
SoftReference sr = new SoftReference(new Person());
Person p1 = sr.get();
sr就是软引用类型。 通过sr.get()可以得到强引用对象。
软引用特点:
1),可以通过get()得到强引用对象,可以访问到对象
2),当堆内存超过阀值,jvm会优先回收软引用对象
3),当jvm回收软引用对象时候,会先将sr.get()返回对象为null,然后将软引用放到ReferenceQueue,然后调用finalize,最后等待下次jvm垃圾回收。
适用场景:本地缓存对象

3,WeakReference 需要用WeakReference对象包装。形式如下:
WeakReference sr = new WeakReference(new Person());
Person p1 = sr.get();
sr就是弱引用类型。 通过sr.get()可以得到强引用对象。
弱引用除了包装类不一样,还有一个不一样。那就是:
1),弱引用不用等堆内存超过阀值回收此对象,而是随时都可以回收。
适用场景:系统只会用一次的对象

4,PhantomReference 幽林引用和以上定义有一些区别。形式如下:
ReferenceQueue queue = new ReferenceQueue ();
PhantomReference pr = new PhantomReference (object, queue);
幽林引用特点如下:
1)无法通过pr.get()得到引用对象
2)通过判断queue是否为空,判断幽林对象时候要被jvm垃圾回收
适用场景:主要为了检测对象是否被垃圾回收。

十二、 用代码实例或UML描述适配器模式
答:适配器可以用继承或者组合。可以优选选择组合方式,减少类直接依赖。类图如下:

十三、 描述你所理解的Java集合框架
答:map
十四、 任选两题,写出代码
1. 写一个函数,输入n,输出其斐波那契数列的第n项。
斐波那契数列的定义如下:
2. 实现用户类User(包含用户Id,用户名和年龄字段), 要求其可以作为HashMap的key使用
3. 实现一个简单的JavaBean和JSON相互转换的工具类
4. 写一个方法,参数为 String。此方法返回 参数String中最长的回文字符串的长度。回文字符串示例:奇数情况:abcba,偶数情况:abba


JAVA面试内容

1)基础知识(T1-T4):
1、集合/数组、接口/抽象类、反射/泛型等(Hashmap、ConcurrentHashmap、TreeMap;ArrayList、LinkList;等)
2、多线程(多线程的相关使用、并发包等)
3、设计模式
4、常用框架(如:struts、mybatisc、spring等)的相关使用、原理
5、mysql数据库(索引的使用和原理;SQL优化;数据库锁;数据库事务/隔离级别;等)
6、内存溢出、内存泄露(如何产生;问题排查;解决过程等)
7、JVM(垃圾回收过程、算法、JVM优化等)
8、常用算法(二分查找、快速排序、递归等)
9、缓存的使用、原理等(内存缓存、memcached、redis等)
10、代码重构
11、Linux常用命令
12、服务器(部署、性能调优等)

2)设计方面(T2选,T3-T4 必):
1、代码框架设计
2、数据库表设计
3、分布式系统设计(可用性,可伸缩性,高并发,高性能等)

3)编码方面(T1-T3必, T4选):
1、编码习惯(方法、变量命名等)
2、程序结构(可读性等)
3、严谨性(分支条件,边界条件等)
4、单元测试 (是否主动检查/使用的测试用例是否完备)

4) 其他方面(T1-T4):
1、沟通能力
2、应变能力
3、稳定性
4、潜力


countdownlatch
CAS
Volite原理
Mysql索引,乐观锁,事物
HashMap数据结构
ThreadLocal源码
Integer常量池
AutomicInteger原理
Jmap
Synchronized锁
JVM内存模型
JVM类加载机制
JVM垃圾回收算法及机制
SpringMVC是线程安全的吗
Spring IOC AOP 的原理
Mybatis原理
索引原理


2017-11-24面试题更新
1:集合类以及集合框架;HashMap与HashTable实现原理,线程安全性,hash冲突及处理算法;ConcurrentHashMap

2:如何将一个Java对象序列化到文件里

3:Java的并发、多线程、线程模型

4:Java中实现多态的机制是什么

5:什么是线程池,如何使用?

6:数据一致性如何保证;Synchronized关键字,类锁,方法锁,重入锁

7:进程和线程的区别

8:说说你对Java反射的理解

9:Java如何调用c、c++语言

10:你所知道的设计模式有哪些

1:堆和栈在内存中的区别是什么(数据结构方面以及实际实现方面)

2:求1000以内的水仙花数以及40亿以内的水仙花数

3:最快的排序算法是哪个?给阿里2万多名员工按年龄排序应该选择哪个算法?堆和树的区别;写出快排代码;链表逆序代码

4:万亿级别的两个URL文件A和B,如何求出A和B的差集C,(Bit映射->hash分组->多文件读写效率->磁盘寻址以及应用层面对寻址的优化)

5:子串包含问题(KMP 算法)写代码实现

1:死锁的四个必要条件

2:常见编码方式;utf-8编码中的中文占几个字节;int型几个字节

3:实现一个Json解析器(可以通过正则提高速度)

4:MVC MVP MVVM; 常见的设计模式;写出观察者模式的代码

5:TCP的3次握手和四次挥手;TCP与UDP的区别

6:HTTP协议;HTTP1.0与2.0的区别;HTTP报文结构

1:研究比较深入的领域有哪些

2:对业内信息的关注渠道有哪些

3:最近都读哪些书

4:自己最擅长的技术点,最感兴趣的技术领域和技术点

5:项目中用了哪些开源库,如何避免因为引入开源库而导致的安全性和稳定性问题

1:您在前一家公司的离职原因是什么?(划重点,基本都会问到)

2:讲一件你印象最深的一件事情

3:介绍一个你影响最深的项目

4:介绍你最热爱最擅长的专业领域

5:公司实习最大的收获是什么

6:与上级意见不一致时,你将怎么办

7:自己的优点和缺点是什么?并举例说明?

8:你的学习方法是什么样的?实习项目中遇到的最大困难是什么以及如何解决的

9:说一件最能证明你能力的事情

10:针对你你申请的这个职位,你认为你还欠缺什么

11:如果通过这次面试我们单位录用了你,但工作一段时间却发现你不适合这个职位,你怎么办

12:项目中遇到最大的困难是什么?如何解决的

13:你的职业规划以及个人目标;未来发展路线及求职定位

互联网公司面试题以及范围相关推荐

  1. 互联网公司面试题合集

    整理了一份BAT及各大互联网公司面试题合集 1. 扫描下方二维码关注公众号 2. 关注后自动推送下载链接 ▲扫描关注后自动下载 注:文章仅仅知识分享,切勿用于其它商业活动 .感谢所有技术分享者的付出.

  2. 最全BAT大型互联网公司面试题整理,没有之一

    最近有很多网友都在求大厂面试题.正好我之前电脑里面有这方面的整理,于是就发上来分享给大家. 这些题目是网友去百度.小米.乐视.美团.58.猎豹.360.新浪.搜狐等一线互联网公司面试被问到的题目.熟悉 ...

  3. MyCat:第二章:Mycat前世今生,国内一线互联网公司面试题汇总

    如果我们有10台物理机,我们就可以实现1000亿的数据分片,我们有10台物理机么?没有,所以,Mycat至今没有机会验证 1000亿大数据的支撑能力--Mycat 's Plan 2.0 " ...

  4. 各互联网公司面试题整理

    今日头条 进程的结构,堆栈 tcp的连接过程状态 索引结构 mysql建表考虑事项 mysql字段类型,结构,连表,索引匹配 redis数据类型,为什么快,工作进程结构 系统架构 360网盾 事务隔离 ...

  5. 【建议收藏】复盘:2021年最新、最全、最实用的Android岗学习资料/面试真题

    前言 2021年已经过去一大半也到了"金九银十"火热招聘的时候,很多小伙伴都蠢蠢欲动想要刚给自己涨一波薪资:面试作为涨薪最直接最有效的方式,我们需要花费巨大的精力和时间来准备.除了 ...

  6. 备战金九银十,阿里P8师兄指导完整攻略(附:学习资料+面试宝典+项目实战笔记)

    前言 还剩下两个月就到了金九银十,一般来说,秋招的含金量明显是高于春招的. 那么如何准备即将到来的面试热潮呢?运筹帷幄之后,决胜千里之外! 坚决不打毫无准备的仗是小编的原则:不论是笔试还是面试都是有章 ...

  7. Android开发六年收获阿里offer定级P7,多亏在阿里P8师兄给的攻略、面试技巧以及学习笔记!!!

    前言 又到了每年的毕业季,应届毕业生在找工作过程对于简历设计和面试技巧有一定的欠缺,这对于求职是比较重要的两个因素,因此掌握一定的面试技巧对于找互联网技术岗位的工作帮助非常大.本篇文章给大家分享一波职 ...

  8. 【强烈推荐】程序猿们,九度Online Judge开始举办月赛啦!!会编程才是王道!!!!!

    程序猿们,九度Online Judge开始举办月赛啦!!会编程才是王道!! 在国内计算机考研中,已经有越来越多的高校采用ACM上机考试的形式,在复试中来考察考生的实际动手编程能力,并且机试在复试中所占 ...

  9. 薪资被倒挂?是怒刷 LeetCode,还是另寻他路?

    不知道从啥时候开始,薪资倒挂这个词就开始火起来了. 其实可以理解为一年比一年高的入行门槛以及愈发激烈的同行竞争.这也无可厚非,大量的互联网公司出现,市场上的程序员需求急剧上升,程序员获得了薪资市场的优 ...

最新文章

  1. Nature:揭示人大脑类器官为何缺乏正常人脑特有的细胞亚型和复杂回路
  2. python中select用法_Python select及selectors模块概念用法详解
  3. 【Linux】一步一步学Linux——seq命令(221)
  4. mysql子查询是什么_mysql子查询
  5. Spark分区器HashPartitioner和RangePartitioner代码详解
  6. libevent源码深度剖析十
  7. vim、gvim在windows下中文乱码的终极解决方案
  8. android区域截图app,【干货】最新App应用市场截图尺寸大全
  9. mysql不兼容_mysql5.7 不兼容问题
  10. JeecgBoot 连接达梦数据库
  11. JDK1.8源码下载及获取、导入IDEA阅读、配置JDK源码
  12. mysql5.6semi plugin_mysql5.6 semi replication 半同步复制配置(示例代码)
  13. 如何在MyEclipse中建立一个代理服务器
  14. python sklearn生成分类、回归任务数据集(可选切分训练数据/测试数据)
  15. HXSafeGuard工程通过VS2010编译未安装VS2008出现以下错误
  16. 第四章节 窗体应用(windows应用程序)
  17. Reg Organizer v8.75 注册表及系统清理优化工具
  18. 【HTML 教程系列第 10 篇】什么是 HTML 中的水平线标签 hr
  19. 如何下载并安装mysql_超详细的MySQL下载与安装教程
  20. 关于不同体系结构风格的简单认识

热门文章

  1. 关于中层管理者任务传递方式的思考
  2. android 分享带图片的信息到彩信,微薄====
  3. 2018江西省计算机知识竞赛,2018年信息技术知识竞赛题库及答案
  4. 祭奠被消亡的CSDN文章
  5. #牛客网 吐泡泡 (栈)
  6. 互联网内容安全中的音频审核应该怎么做好
  7. 如何在Excel中启用宏?
  8. 制定to-do list的艺术
  9. 57 长短期记忆网络(LSTM)【动手学深度学习v2】
  10. iphone与android传文件,安卓与苹果手机之间互传文件的方法教程