1:JDK和JRE的区别?
JDK:是java的开发工具包,里面包含了各种类库和工具
JRE:是java程序的运行环境
2:java支持的数据类型有哪些?什么是自动拆装箱?什么时候自动装箱不起作用?
2.1java中的8种基本数据类型:boolean byte char short int float double long
2.2:基本数据类型和它对应的封装类型之间可以相互转换,从基本数据类型到封装类
型叫做装箱,从封装类型到基本数据类型叫拆箱,自动拆装箱是jdk5.0提供的新特特性
2.3当我们要调用的方法中存在重载的时候,即基本类型数据作为唯一参数的方法与
该基本类型包装类作为唯一参数的方法重载,这时候自动装箱不起作用。
3:进程和线程的区别?
进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,
一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。
线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个程序至少有一个进程,一个进
程至少有一个线程。
4:创建线程有几种不同的方式?你喜欢哪一种?为什么?
5:如何确保N个线程可以访问N个资源同时又不导致线程死锁?
6:Iterator和ListIterator的区别是什么?
7:HashMap和HashTable有什么区别?
8:如何权衡是使用无序的数组还是有序的数组?
9:HashSet和TreeSet有很么区别?
10:Java中垃圾回收有什么目的?什么时候进行垃圾回收?
11:finally代码块和finalize()方法有什么区别?
12:解释一下Applet的生命周期?
13:弹出式选择菜单(Choice)和列表(List)有什么区别?
14:说出三种之处重绘(painting)的组件
15:什么是Servlet?
16:doGet()方法和doPost()方法有什么区别?
17:什么是web应用程序?
18:什么是servlet链(Servlet Chaining)
19:HTTP响应的结构是什么样的?
20:什么是cookie? session和cookie有什么区别?
21:浏览器和servlet通信使用的是什么协议?
22:什么是URL编码和URL解码?
23:什么是jsp页面?
24:什么是JDBC?
25:Class.forName()方法有什么作用?
26:什么是隐式类型转换?什么是显示类型转换?
27:&& 和 &的区别,|| 和 | 的区别?
28:解释一下什么是类方法,什么是实例方法?
29:简述方法和变量的命名规则?
30:什么是方法重载?
31:如何创建一个对象?
32:简述Java的访问权限?
33:简述什么是对象上转型?
34:上转型对象可以操作什么?不可以操作什么?
35:已知一个java.util.Date对象,如何格式化成如下格式:YYYY-MM-dd hh:mm:ss
36:简述如下关键字用途 try、catch、throw、throws、finally?
37:File f = new File("myfile.dat"); FileInputStream istream = new FileInputStream(f)如何从流中获取数据?
38:实现多线程的两种方法?
39:构造方法能否被重写?为什么?
40:常用的对称加密算法有哪些?非对称加密算法有哪些?
41:session失效有哪几种方法,session的过期时间默认是多少?在哪里配置?
sessionid丢失、服务器关闭、session过期、session.removeAttribute()
默认30分钟
web.xml 配置 session-config -> session-timeout
42:如何获取Oracle序列seq_order的当前值,请写出sql语句。
43:spring是如何管理事物的?
44:通过get和post提交表单的区别是什么?
45:常用的防止页面重复提交的方式有哪些?请简要说明
46:服务端如何获取客户端的ip地址
47:java常用的加密算法有哪些?
48:简要说明 List、set和map的区别?
49:如何处理内存溢出?
50:HashMap底层实现
51:mysql 引擎MyISAM 和 InnoDB的区别?
52:一条特别长的sql执行速度特别慢,怎么去优化它?
53:spring bean的五个作用域?
54:如果HashMap的大小超过了负载因子定义的容量,怎么办?
55:JVM优化
56:tomcat优化
一、Tomcat内存优化
Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本
catalina.sh 中设置 java_OPTS 参数,
-server 启用jdk 的 server 版;
-Xms java虚拟机初始化时的最小内存;
-Xmx java虚拟机可使用的最大内存;
-XX: PermSize 内存永久保留区域
-XX:MaxPermSize 内存最大永久保留区域
配置说明模板:
JAVA_OPTS=’-Xms1024m -Xmx2048m -XX: PermSize=256M -XX:MaxNewSize=256m
-XX:MaxPermSize=256m’
二、Tomcat并发优化
server.xml
在Connector标签里配置
maxThreads 客户请求最大线程数
minSpareThreads Tomcat初始化时创建的 socket 线程数
maxSpareThreads Tomcat连接器的最大空闲 socket 线程数
enableLookups 若设为true, 则支持域名解析,可把 ip 地址解析为主机名
redirectPort 在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口
acceptAccount 监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads )
connectionTimeout 连接超时
minProcessors 服务器创建时的最小处理线程数
maxProcessors 服务器同时最大处理线程数
URIEncoding URL统一编码
三、Tomcat缓存优化
compression 打开压缩功能
compressionMinSize 启用压缩的输出内容大小,这里面默认为2KB
compressableMimeType 压缩类型
connectionTimeout 定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间
参考文章:http://blog.csdn.net/sxj_world/article/details/78454420
57、你们工作中采用什么架构,如何设计,为什么搭建这样的架构,解决了哪些问题
58、jvm优化和tomcat优化你们怎么做的,参数之间配置的关系,并发量如何设计和计算出所需负载均衡服务器
59、高并发你们如何解决的,缓存有哪些,如何设计适合自己的缓存
60、你在项目中涉及到那些需要多线程,线程受那些因素影响,举例说明
61、锁有哪些,线程锁有哪些,多线程中如何合理使用,举例说明
62、分布式锁的原理,进程之间如何共享锁,redis和zk分布式锁的优缺点,举例说明他们适合的场景
63、如何合理设计架构,重构系统如何实现,新系统如何实现,如何让代码重用性更高,让拓展性更好
64、23种设计模式如何在项目应用,6种原则架构中如何考虑,举例说明
65、同步和异步远程调用会出现哪些异常,如何解决重试和异步调用失败的问题
66、业务系统和架构是相互联系的,如何合理的规划业务和架构,根据你的经验举例说明
67、数据库方面:数据库表设计原则、数据库锁、索引的应用优化,举例说明
68、分库分表解决那些问题,带来哪些问题
69、主从复制你们采用哪些技术,mycat用过吗,对事务的支持如何做到最优化配置
70、mycat做分布式数据库如何监控和确保数据同步不丢失
71、mongodb删除功能在高并发中会出现问题吗,你如何解决
72、系统上线后你采用哪些工具进行监控,如何做到容灾设
73、在项目中采用过哪些消息队列,如何进行流式监控,丢失消息如何处理,kafka跟其他的优缺点
74、设计好架构和业务后你如何安排人员,说说你的方案
75、总结一下你对管理中的方法和思路 最近常见面试问题
逻辑思维问题
1:有A B C D 四个少女,她们正在接受训练已便成为预言家,实际上,后来她们之中只有一个成为了
预言家,并在特尔斐城谋得一职位,其余三人,一个当了职业舞蹈家,一个当了宫廷侍女,第三个当
了演奏家,一天,她们四个人在练习预言。
A预言:“B 无论如何也成不了职业舞蹈家”
B预言:“C将成为特尔斐城的预言家”
C预言:“D不会成为演奏家”
D预言:“我将嫁给一个叫阿特的男人”
可是,事实上她们四个人中,只有一个人的预言是正确的,而这个人当了特尔斐城的预言家,能分析出
这四个人的职业吗?