常见Java基础笔试/面试题之三

计算机基础知识

数据结构

1、什么是队列、栈、链表

2、什么是树(平衡树,排序树,B,B+,R,红黑树)、堆(大根堆、小根堆)、图(有向图、无向图、拓扑)

3、栈和队列的相同和不同之处

共同点:都是只允许在端点处插入和删除元素的数据结构;

不同点:栈是仅在栈顶进行访问,遵循后进先出的原则(LIFO);队列是在队尾插入数据,在队头删除数据(FIFO)

4、栈通常采用的两种存储结构

线性存储结构和链表存储结构

5、两个栈实现队列,和两个队列实现栈

算法

1排序都有哪几种方法?

插入排序,冒泡排序,快速排序,堆排序,归并排序,选择排序,计数排序,基数排序,桶排序等

2、会写常用的排序算法,如快排,归并等。

3、各种排序算法的时间复杂度稳定性 ,重点快排。

4、单链表的遍历和逆序

5深度优先搜索广度优先搜索

6、最小生成树

7、常见Hash算法,哈希的原理和代价

8、全排列、贪心算法、KMP算法、hash算法

9、一致性Hash算法

操作系统

1、虚拟内存管理

2、换页算法

3、进程间通信

4、进程同步:生产者消费者问题、哲学家就餐问题、读者写者问题

5、死锁的四个必要条件,避免方法

6Linux的一些基本命令,如lstailchmod

计算机网络

1tcp,udp区别

2HTTP请求和响应的全过程

3HTTP常见响应码:200301302404500

4getpost的区别

5forwardredirect的区别

6osi七层模型

7tcp/ip四层模型及原理

8TCPUDP区别

9TCP的三次握手,四次关闭

10、丢包,粘包,

11、容量控制,拥塞控制

12、子网划分

13IPV4IPV6

14HTTPSHTTP/2

数据库:

1范式

2、数据库事务和隔离级别

3、为什么需要锁,锁定分类,锁粒度

4乐观锁悲观锁的概念及实现方式

5分页如何实现(OracleMySql

6Mysql引擎

7MYSQL语句优化

8、从一张大表读取数据,如何解决性能问题

9内连接左连接右连接作用及区别

10StatementPreparedStatement之间的区别

11索引以及索引的实现(B+树介绍、和B树、R树区别

12、什么是数据库连接池

海量数据处理

1、海量日志数据,如何提取出某日访问淘宝次数最多的IP

2、上亿数据,统计其中出现次数最多的前N个数据

35亿个int,找出他们的中位数

4、两个文件,各存放50亿条URL,每个URL64字节。内存限制是4G,找出两个文件中相同的URL

5、有40亿个不重复的unsigned int的整数,没排过序,现在给一个数,如何快速判断这个数是否在这40亿个数当中。

6、提示:分治、Hash映射、堆排序、双层桶划分、Bloom filterbitmap、数据库索引、mapreduce

Java基础

封装、继承、多态

1Java中实现多态的机制是什么,动态多态和静态多态的区别

2、接口和抽象类的区别,如何选择

3Java能不能多继承,可不可以多实现

4Static Nested Class  Inner Class的不同

5、重载和重写的区别。

6、是否可以继承String

7、构造器是否可被override?

8public,protected,private的区别?

集合相关

1、列举几个JavaCollection类库中的常用类

2ListSetMap是否都继承自Collection接口?存储特点分别是什么?

3ArrayListLinkedListVector之间的区别与联系

4HashMapHashtableTreeMap以及ConcurrentHashMap的区别

5Collection  Collections的区别

6、其他的集合类:treeset,linkedhashmap等。

异常相关

1ErrorException的区别

2、异常的类型,什么是运行时异常

3finalfinallyfinalize的区别

4try-catch-finally中,如果在catchreturn了,finally中的代码还会执行么,原理是什么?

5、列举3个以上的RuntimeException

6Java中的异常处理机制的简单原理和应用

其它

1StringStringBufferStringBuilder的区别

2==equals的区别

3hashCode的作用,和equals方法的关系

4Input/OutputStreamReader/Writer有什么区别

5、如何在字符流和字节流之间转换?

6switch可以使用那些数据类型

7Java的四种引用

8、序列化与反序列化

9、正则表达式

10intInteger的区别,什么是自动装箱和自动拆箱

Java高级

多线程

1、进程和线程的区别

2、并行和并发的区别和联系

3、同步与异步

4、多线程的实现方式,有什么区别

5、什么叫守护线程

6、如何停止一个线程?

7、什么是线程安全

8synchronized  lock的区别

9、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

10、启动一个线程是用run()还是start()?

12waitsleep的区别

13notifynotifyAll的区别

14、线程池的作用

15Java中线程池相关的类

JVM底层技术

1gc的概念,如果AB对象循环引用,是否可以被GC

2jvm gc如何判断对象是否需要回收,有哪几种方式?

3Java中能不能主动触发GC

4JVM的内存结构,堆和栈的区别

5JVM堆的分代

6Java中的内存溢出是什么,和内存泄露有什么关系

7Java的类加载机制,什么是双亲委派

8ClassLoader的类加载方式

IO

 1NIOAIOBIO 之间的区别

2IONIO常用用法

其它

1hashcode 有哪些算法

2、反射的基本概念,反射是否可以调用私有方法

3Java范型的概念

4JVM启动参数,-Xms -Xmx

5代理机制的实现

6String s = new String("s"),创建了几个对象。

Java Web

Servlet

1JSPServlet的区别,Servelt的概念。

2Servlet的生命周期

3Servlet中的session工作原理 ,以及设置过期时间的方式

4Servlet中,filter的应用场景有哪些?

5JSP的动态include和静态include

6web.xml中常用配置及作用

7Servlet的线程安全问题

MVC框架

1、介绍几个常用的MVC框架

2、什么是MVC

3Struts中请求的实现过程

4Spring mvcStruts mvc的区别

5Service嵌套事务处理,如何回滚

6struts2 中拦截器与过滤器的区别及执行顺序

7struts2拦截器的实现原理

http相关

1sessioncookie的区别

2HTTP请求中session实现原理?

3、如果客户端禁止Cookie能实现Session

4http getpost区别

5redirectforward的区别

6、常见的web请求返回的状态码。404302301500分别代表什么

SSH相关

1Hibernate/Ibatis/MyBatis之间的区别

2、什么是OR Mapping

3hibernate的缓存机制、一级和二级缓存

4、使用Spring的好处是什么,Spring的核心理念

5、什么是AOPIOC,实现原理是什么

6spring bean的初始化过程

7Spring事务管理 Spring bean注入的几种方式

8spring四种依赖注入方式

容器相关

1、什么是web服务器、什么是应用服务器

2、常用的web服务器有哪些?

3Tomcatweblogic的区别

web安全

1、什么是SQL注入 ,如何避免。

2、什么是XSS攻击,如何避免

3、什么是CSRF攻击,如何避免

动态代理

1Java的动态代理的概念

2Java的动态代理的实现

编码问题

1、常用的字符编码

2、如何解决中文乱码问题

其它

1XML的解析方式,以及优缺点。

2、什么是ajaxAjax如何解决跨域问题

设计模式

1、谈一下自己了解或者熟悉的设计模式

2Singleton的几种实现方式,实现一个线程安全的单例。

3工厂模式抽象工厂模式之间的区别

知识的综合能力

1、请介绍一下一个http请求的全过程,描述的越全面越好

2、当你在浏览器地址栏输入www.taobao.com,敲下回车之后都发生了什么

工具使用

1、知道git/svn是干什么的吗?用过吗

2、知道maven/gradle是干什么的吗?用过吗

3、平常使用什么IDE,为什么

4、平常使用什么浏览器,为什么

5、平常开发机器是什么操作系统的

6、会在Linux上开发吗。Linux常用命令会吗

项目相关

1、请简单介绍一下你的这个项目

2、你在这个项目中充当什么角色

3、这个项目的技术选型有做过么。

4、选择某项技术做过哪些调研和对比

5、这个项目中遇到的最大的问题是什么?你是如何解决的。

6、项目中是否考虑过性能、安全性等问题

技术热情

1、当前Java的最新版本

2Java8lambda表达式

3Java8stream API

4Java9的模块化

5Java10的局部变量类型推断

6Spring Boot2.0

7HTTP/2

8、会翻墙么,知道翻墙的原理吗

9、你最近在读什么书

表达能力

1、能不能简单做一个自我介绍。

2、能不能描述一下杭州给你的印象。用三句话概括一下。

思考方式

1、如何估算杭州有多少软件工程师

2、你最近读过的印象最深的文章是什么

3、这篇文章中有几个观点,你最赞成哪一个,最不赞成哪一个

其他

1、你对加班怎么看

2、你还有什么问题要问我(面试官)的么

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值