普华永道高级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
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
普华永道高级JAVA面试记录的更多相关文章
- 带你全面了解高级 Java 面试中需要掌握的 JVM 知识点
目录 JVM 内存划分与内存溢出异常 垃圾回收算法与收集器 虚拟机中的类加载机制 Java 内存模型与线程 虚拟机性能监控与故障处理工具 参考 带你全面了解高级 Java 面试中需要掌握的 JVM 知 ...
- 互联网高级Java面试总结
前不久刚换了单位,这段时间抽出时间来总结一下. 本人渣本毕业四年,无大厂工作经验,出来面高级Java. 上家单位是一个知名互联网平台,但是体量不大的小公司(5线互联网公司),但就是出名(职场人都知道~ ...
- 补充Java面试记录
补充Java面试记录 背景:这两天面试遇到的部分问题都分散在了前面两篇文摘中,这里再做一些其他的记录,以备不时之需! 一.谈谈你对SpringBoot的理解? SpringBoot简介:SpringB ...
- 2019 华云数据java面试笔试题 (含面试题解析)
本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.华云数据等公司offer,岗位是Java后端开发,最终选择去了华云数据. 面试了很多家公司,感觉大部分公司考察的点 ...
- 阿里、百度等多家公司Java面试记录与总结
算算自己大概面试了近十家公司,也拿到了几个Offer,现在面试告一段落,简单总结下面试经验. 我现在主要的方向是Java服务端开发,把遇到的问题和大家分享一下,也谈谈关于技术人员如何有方向的提高自己, ...
- 高级Java面试总结1
一.三大框架方面问题 1.Spring 事务的隔离性,并说说每个隔离性的区别 解答:Spring事务详解 2.Spring事务的传播行为,并说说每个传播行为的区别 解答:Spring事务详解 3. ...
- 高级Java面试总结3
1,java堆,分新生代老年代,新生代有Eden,from surviver,to surviver三个空间,堆被所有线程共.eden内存不足时,发生一次minor GC,会把from survivo ...
- 高级Java面试总结2
1. JVM结构原理.GC工作机制详解 答:具体参照:JVM结构.GC工作机制详解 ,说到GC,记住两点:1.GC是负责回收所有无任何引用对象的内存空间. 注意:垃圾回收回收的是无任何引用的对 ...
- 高级java面试宝典
1.spring事物的配置 spring事物分为俩种,一种是注解事物,一种是AOP事物注解事物的配置: 事物的隔离级别,事物的传播性,事物的超时回滚,哪些异常回滚,哪些不回滚,有默认的回滚规则注解事物 ...
随机推荐
- c#面向对象基础 类、方法、方法重载
C#是纯粹的面向对象编程语言,它真正体现了“一切皆为对象”的精神.在C#中,即使是最基本的数据类型,如int,double,bool类型,都属于System.Object(Object为所有类型的基类 ...
- Oracle TDE的数据加密示例并用logminer验证加密效果
1.确认数据库版本 2创建密钥钱包 3创建加密列的表并初始值 4演示TDE的数据加密示例 5 logminer验证加密效果
- SQL,LINQ,Lambda语法对照图(转载)
如果你熟悉SQL语句,当使用LINQ时,会有似曾相识的感觉.但又略有不同.下面是SQL和LINQ,Lambda语法对照图 SQL LINQ Lambda SELECT * FROM HumanReso ...
- MUI - 上拉刷新/下拉加载
新闻信息列表必备的功能,支持Table,Ul等列表. 以下是DIV版本,在安卓端或者ios端必须使用双webview模式,传送门:http://dev.dcloud.net.cn/mui/pulldo ...
- Mysql和Oracle数据库concat()函数
一.函数的使用参数不同 Mysql支持多个字符串拼接: CONCAT(str1,str2,-) Oralce只支持两个字符串的拼接,若想拼接多个字符串可以嵌套使用concat CONCAT(str1, ...
- centos7 怎么卸载 用源代码包安装的codeblocks
进入源文件的目录下, 输入make uninstall, 即可.
- Android课程---关于ListView列表视图的学习
activity_ui3.xml <?xml version="1.0" encoding="utf-8"?> <ListView xmlns ...
- Python强化训练笔记(一)——在列表,字典,集合中筛选数据
列表,字典,集合中根据条件筛选数据,如下所示 列表:[-10,2,2,3,-2,7,6,9] 找出所有的非负数 字典:{1:90,2:55,3:87...} 找出所有值大于60的键值对 集合:{2,3 ...
- ios-获取商店已上线app信息
NSString *url = [[NSString alloc] initWithFormat:@"http://itunes.apple.com/lookup?id=%@",@ ...
- maven说
maven打包命令:mvn assembly:assembly 打包成jar包需要修改配置把unpack改成false文件在: C:\Users\Administrator\.m2\repositor ...