普华永道⾼级JAVA⾯试记录
最近在考虑换个⼯作原因?咱能不逗吗?
⼀⾯感觉发挥不错⼆⾯之后累觉不爱基本上浪费了半天的⼯资(好多钱啊~~~)
PWD上海地址在浦东软件园⼯作环境说实话没我现在⼯作的环境好,不过⾥⾯的⼈给⼈感觉不错。前台不NICE但给⼈很舒服的感觉。说重点,⾯试过程。
⾯试分笔试和⾯试笔试⾯试都是英⽂(回答问题要是实在英⽂撑不住了就⽤中⽂)
笔试题偏基础说两个注意点⼿写冒泡排序和⽤英⽂描述⼀个设计模式
⾯试有两次
第⼀个考官是个微胖界的胖⼦(很和蔼)第⼆个有点娘(很刁钻)
问题
JVM机制 hibernate机制各种集合 SSH框架
不想写了直接贴我之前准备的问题(答案⾃⼰写的仅供参考)
类的继承
是JAVA⾯向对象的主要特性,⼦类可使⽤⽗类的所有功能,也可拓展新的功能。⼀个类只能继承⼀个⽗类,但是可以实现多个接⼝。
构造函数的调⽤顺序
构造函数⼀般⽤来初始化对象,给对象赋值。 Object---->B的域----->B构造函数⾥的⽅法体----->A的域----->A构造函数。
⼦类对⽗类函数重写
继承⽗类后同名且同参同返回
⼦类的加载顺序
⽗类--静态变量
⽗类--静态初始化块
⼦类--静态变量
⼦类--静态初始化块
*************in main***************
⽗类--变量
⽗类--初始化块
⽗类--构造器
⼦类--变量
⼦类--初始化块
⼦类--构造器
*************second subClass***************
⽗类--变量
⽗类--初始化块
⽗类--构造器
⼦类--变量
⼦类--初始化块
⼦类--构造器
JVM class loader对类是如何加载的和加载顺序
⾸先,总共有四个加载器:bootstrap(核⼼)、exptension(扩展)、appclassloader(system)、URLclassloader(远程)。
继承关系,从⾼到低,ABCD 如果B调⽤某⽅法会⾸先请求A去 A没到则B⾃⼰ B也没到则classnotfound ⽽不会去请求C
函数的可视范围
函数被重写原理
⾸先弄明⽩JAVA中的四个特性:组合、继承、重载、重写。组合:⼀个类引⽤另⼀个类,⽽实际运⾏中,
继承其实就是隐式的组合,也就是在⼦类中保存⼀个实例对象super,并指向⽗类。所以,函数被重写的原理就是:在执⾏中,如需调⽤某⽅法,先在⼦类中,如果没到,则会去在⽗类中,如果到了,也就是重载了。
集合类的分类
collection(list<arrayList\linkendList\vector>set<>) map(hashMap\hashTable\weakHashTable)
区别 arraylist⾮同步满增50% vector同步满增100% set不可重复
SET,LIST,MAP的实现类和之间的关系
set list都实现collection 三者都为接⼝不可实例化
TREEMAP的特性
有序
TREESET的特性
唯⼀有序不为空
LIST的实现类之间的区别
arraylist linkendlist vector
不同集合类在不同情况下的应⽤
快速查询 arraylist 批量增加 linkendlist
增删查 hashmap 遍历treemap
HASH的原理
hash其实就是以空间换时间将⾄转成HASH值根据数组长度取余将余数作为该数据数组下标如果被占⽤则重新HASH+1 数组是线性结构中定位最快的HASHMAP,HASHSET
线程
线程的不同实现
继承thread或者实现runnable
THREAD和RUNNABLE的区别和关系
thread为继承类 runnable为接⼝
Thread运⾏在⽗类的run⽅法中,Runnable运⾏在实现Runnable接⼝的⼦类对象run⽅法中。
runnable可以打破⼀个类只能继承⼀个⽗类的局限性且适合资源共享
thread也是实现runnable
RUNNABLE和CALLABLE
如何捕捉线程异常
set uncaughExceiption
为什么要⽤EXECUTOR
⾼并发解决⽅案
HTML静态化负载均衡图⽚服务器分离数据库集缓存
如何使⽤synchronized关键字
同步
Producer and consumer
Reflection如何使⽤,在什么情况下⽤
反射是JAVA的特性之⼀,能够通过getClass 获取到某⼀个Class对象,并查看该Class的基本情况
具体什么场景下使⽤反射哥也不知道好吗。。。hibernate不就是⽤的反射吗利⽤反射可以改变类的属性!
Generics的作⽤
代码规范话减少变异后的强制类型转换健壮安全
I/O
Readers and Writers
DATABASE JDBC
冒泡排序java代码详解SSH 相关问题
SPRING相关问题
IOC AOP实现
SPRING BEAN的scope的定义
singleton 共享实例 prototype 每次请求new⼀个实例 request 每次请求new⼀个实例但仅当前httprequest内有效
JQUERY事件绑定
$('#button').blind(function(){alert()}})
AJAX
Java 死锁,如何解决
JAVA中死锁我靠这玩意⼉⼀般原因都很复杂的根本没有万⾦油式的解决⽅案好吗我们能做的只能避免慎⽤synchronize 多线程是尽量按顺序执⾏
最近项⽬介绍,问些项⽬⾥相关问题如struts原理
set List区别
equaIs hashcode及其原理⼀跟地址有关吗
最熟悉项⽬介绍,围绕项⽬中的ssh提问,例⼀对多如何定义,可不可以⽤List,与set区别
sQL调优
数据库索引
主要问的问题:
1)spring的IOC和AOP
2)struts1和struts2的区别
3)多线程,死锁等
4)hibernate的缓存分类,实体状态,⼀对多和多对多实现等
5)spring,struts,hibernate如何集成
6)set,list等集合的相关特性
7)实现不重复的100个随机数的⽅法
8)hibernate中inverse的使⽤
控制映射关系默认为FALSE 所以在多对多中如果某⼀表数据变化需要多张表都更新最好将某张表设为TRUE 则不会重复更新
9)spring中事务的实现
像Struts2⼀样,都是凭借强⼤的功能对业务逻辑⽅法的调⽤进⾏拦截,然后⼜BeanNameAutoProxyCreator⾃动⽣成事务代理,最后送事务管理器,统⼀管理
10)常⽤的设计模式
11)hash code的作⽤
提升效率⽐如set集合它是⽆序不重复的在对SET新增记录时为了满⾜不重复则在插⼊之前必须先equals⼀个个校验存不存在效率低下这⾥ HASHCODE就该上场了每次新增,先HASH⼀把然后将值直接放到HASH值相应的地址如果改空间被占⽤则再equals⼀把
如果相等则不存不等则HASH+1
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论