基础问题和思想:
1、抽象类和接口的区别(单纯的语法区别只能给一半分,要说出来适用场景);
2、hashcode()和equals()的关系;
3、HashMap(Set)底层机制(用到的数据结构以及代码原理);
4、Object的常用的一些方法;
5、讲一下反射以及用到的场景;
6、Spring 主要做了哪些工作(IOC 事务AOP 逻辑AOP等);
7、IOC和AOP以及应用场景;

  

AOP使用场景

AOP用来封装横切关注点,具体可以在下面的场景中使用

Authentication 权限

Caching 缓存

Context passing 内容传递

Error handling 错误处理

Lazy loading 懒加载

Debugging 调试

logging, tracing, profiling and monitoring 记录跟踪 优化 校准

Performance optimization 性能优化

Persistence 持久化

Resource pooling 资源池

Synchronization 同步

Transactions 事务

AOP

日志应用:

实现登陆和日志管理(使用Spring AOP

1)LoginService   LogService   TestMain

2)用Spring 管理  LoginService 和 LogService 的对象

3)确定哪些连接点是切入点,在配置文件中

4)将LogService封装为通知

5)将通知植入到切入点

6)客户端调用目标

8、JVM的内存管理和GC;
9、OOM的解决方案(关联问题8);
10、JVM ClassLoader原理;
11、怎么新开线程,线程安全怎么控制,ThreadLocal有什么用,HashMap怎么做到线程安全,怎么解决死锁的问题;
12、说几个常用的设计模式和应用场景;
13、java代理机制;
14、多服务器的session共享解决方案;
15、zookeeper的工作原理;
16、soa架构模式有什么好处;

数据库方面:
1、数据库连接池机制;
2、数据库隔离级别有哪些,mysql默认级别是哪个;
3、inner join、left join、right join、group by、having是怎么用的(给出2个表,手写查询语句);
4、char和varchar的区别;
5、数据库方面的性能优化;
6、mysql的索引类型、区别、以及如何选取,画出btree是怎么存的,什么时候索引会失效
7、mysql表存储引擎有哪些,如何选取
8、分表的解决方案
9、hash分表怎么分

实战问题:
1、一个请求超过20秒了,你怎么排查和解决;
2、说说你觉得做的比较不错的项目,讲一下项目结构和用到的框架,再说一下为什么要选择这些框架;
3、“商品秒杀”的解决方案;
4、手写个单例模式出来;
5、分布式锁的解决方案
6、分布式事务解决方案
7、分布式环境下的定时任务管理

==============================================================================================================================

基础问题和思想:
1、抽象类和接口的区别(单纯的语法区别只能给一半分,要说出来适用场景);
2、hashcode()和equals()的关系;

hashCode()和equals()的关系是这样的:

如果两个对象相等(equal),它们的hashcode一定相同;

如果两个对象有相同的hashcode,它们不一定相等(equal);

之所以这样设计是为了在Map中更快的查找到对象(相对于线性搜索);

一般Map都设计成数组+链表的结构,使用hashcode去查找对象需要两个步骤,首先使用hashcode定位数组下标索引,然后遍历该数组元素对应的链表,找到equals的元素;

Object默认的hashcode实现对于不同的对象会返回不同的值,因此,在上面那个例子中,不同的对象(即使同一个类型)有着不同的hashcode;

值的散列就像在车库储存货物,不同的货物能被存放到不同的车库。比较有效查找货物办法是将不同的货物存到不同的车库中,而不是同一个车库;

所以将hash值尽可能的分散是一个比较好的策略;

3、HashMap(Set)底层机制(用到的数据结构以及代码原理);

略。
4、Object的常用的一些方法;

1.clone方法
保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。

2.getClass方法
final方法,获得运行时类型。

3.toString方法
该方法用得比较多,一般子类都有覆盖。

4.finalize方法
该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用。

5.equals方法
该方法是非常重要的一个方法。一般equals和==是不一样的,但是在Object中两者是一样的。子类一般都要重写这个方法。

6.hashCode方法
该方法用于哈希查找,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到。

一般必须满足obj1.equals(obj2)==true。可以推出obj1.hash- Code()==obj2.hashCode(),但是hashCode相等不一定就满足equals。不过为了提高效率,应该尽量使上面两个条件接近等价。

7.wait方法
wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait()方法一直等待,直到获得锁或者被中断。wait(long timeout)设定一个超时间隔,如果在规定时间内没有获得锁就返回。

调用该方法后当前线程进入睡眠状态,直到以下事件发生。

(1)其他线程调用了该对象的notify方法。

(2)其他线程调用了该对象的notifyAll方法。

(3)其他线程调用了interrupt中断该线程。

(4)时间间隔到了。

此时该线程就可以被调度了,如果是被中断的话就抛出一个InterruptedException异常。

8.notify方法
该方法唤醒在该对象上等待的某个线程。

9.notifyAll方法
该方法唤醒在该对象上等待的所有线程。

5、讲一下反射以及用到的场景;
6、Spring 主要做了哪些工作(IOC 事务AOP 逻辑AOP等);

7、IOC和AOP以及应用场景;

http://blog.csdn.net/sinat_25398439/article/details/53185905
8、JVM的内存管理和GC;
9、OOM的解决方案(关联问题8);
10、JVM ClassLoader原理;
11、怎么新开线程,线程安全怎么控制,ThreadLocal有什么用,HashMap怎么做到线程安全,怎么解决死锁的问题;
12、说几个常用的设计模式和应用场景;
13、java代理机制;
14、多服务器的session共享解决方案;
15、zookeeper的工作原理;
16、soa架构模式有什么好处;

数据库方面:
1、数据库连接池机制;
2、数据库隔离级别有哪些,mysql默认级别是哪个;
3、inner join、left join、right join、group by、having是怎么用的(给出2个表,手写查询语句);
4、char和varchar的区别;
5、数据库方面的性能优化;
6、mysql的索引类型、区别、以及如何选取,画出btree是怎么存的,什么时候索引会失效
7、mysql表存储引擎有哪些,如何选取
8、分表的解决方案
9、hash分表怎么分

实战问题:
1、一个请求超过20秒了,你怎么排查和解决;
2、说说你觉得做的比较不错的项目,讲一下项目结构和用到的框架,再说一下为什么要选择这些框架;
3、“商品秒杀”的解决方案;
4、手写个单例模式出来;
5、分布式锁的解决方案
6、分布式事务解决方案
7、分布式环境下的定时任务管理

java 常用面试题的更多相关文章

  1. Java常用面试题总结

    1.多线程实现方式 2.cookie和session区别 3.数据加密 4.接口并发 5.常用的集合类 6.遍历集合方式 7.接口和抽象类 8.#和$区别 9.防止sql注入 10.springMvc ...

  2. JAVA常用知识点及面试题总结

    1. String.StringBuffer.StringBuilder三者区别? (1)三者在执行速率上的比较: String<StringBuffer<StringBuilder 原因 ...

  3. Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源,BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 各种后台管理系统

    Java,面试题,简历,Linux,大数据,常用开发工具类,API文档,电子书,各种思维导图资源,百度网盘资源BBS论坛系统 ERP管理系统 OA办公自动化管理系统 车辆管理系统 家庭理财系统 各种后 ...

  4. 【转载】 Java线程面试题 Top 50

    Java线程面试题 Top 50 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员 的欢迎.大多数待遇丰厚的J ...

  5. Java线程面试题 Top 50 (转载)

    转载自:http://www.cnblogs.com/dolphin0520/p/3958019.html 原文链接:http://www.importnew.com/12773.html   本文由 ...

  6. Java线程面试题 Top 50

    转自:http://www.importnew.com/12773.html 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java ...

  7. Android开发面试经——3.常见Java基础笔试题

      Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...

  8. 【多线程】Java线程面试题 Top 50(转载)

    Java线程面试题 Top 50 原文链接:http://www.importnew.com/12773.html   本文由 ImportNew - 李 广 翻译自 javarevisited.欢迎 ...

  9. Java线程面试题 Top 50(转载)

    原文链接:http://www.importnew.com/12773.html 本文由 ImportNew - 李 广 翻译自 javarevisited.欢迎加入Java小组.转载请参见文章末尾的 ...

随机推荐

  1. loj6253/luogu4062-Yazid的新生舞会

    先考虑部分分(只有01/只有0~7)做法:枚举每个数,把和他相同的设为1,不同的设为-1,然后这个数作为众数贡献的个数就是区间和>0的个数 推着做,树状数组记前缀和<=x的区间的数量就可以 ...

  2. 结合NTLM中继和Kerberos委派攻击AD

    0x00 前言 在上个月我深入演讲了无约束委派之后,本文将讨论一种不同类型的Kerberos委派:基于资源的约束委派.本文的内容基于Elad Shamir的Kerberos研究,并结合我自己的NTLM ...

  3. jedisClient操作redis实现增删改查功能

    这个集群环境下和单机环境下: package com.taotao.sso.dao.impl; import org.springframework.beans.factory.annotation. ...

  4. Java基础-Java中的并法库之线程池技术

    Java基础-Java中的并法库之线程池技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是线程池技术 二.

  5. vue 获取后端数据打印结果undefined问题

    今天做项目时后端有一个要展示到页面上的附件需要前端获取,我获取到了那个附件的信息,但打印fj.name或fj.url时控制台就会显示undefined,后来才发现是json数据没有解析对,应该使用JS ...

  6. SpringMVC关于ajax提交400错误(后台获取为null)

    400错误有三种情况 1:请求的数据量过大,不过这种情况一般很少见. 2:请求的data参数有误,确保每一个参数都能请求到. 注释:之前小白出现400错误,后台获取参数为null是因为第三种情况,经过 ...

  7. html5 canvas旋转

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. [整理]win7下VS2010遇到内存不足解决方发

    电脑重装Win7 64bit不久后,一天内VS2010使用久了,就会出现内存不足,实际内存使用情况却不是,显示内存已使用70%.以前没有遇到过,经网上查找,貌似是VS2010对内存计算会在某些情况下计 ...

  9. Spring Mvc 一个接口多个继承; (八)

    在 spring 注解实现里,一个接口一般是不能多继承的! 除非在 bean 配置文件里有 针对这个 实现类的配置: <beans:bean id="icService" c ...

  10. JavaScript编写风格指南 (二)

    七:注释 // 频繁的使用注释有助于他人理解你的代码// 1.代码晦涩难懂// 2.可能被误认为是错误的代码// 3.必要但不明显的针对特定浏览器的代码// 4.对于对象,方法或者属性,生成文档是有必 ...