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预言:“我将嫁给一个叫阿特的男人” 可是,事实上她们四个人中,只有一个人的预言是正确的,而这个人当了特尔斐城的预言家,能分析出 这四个人的职业吗?