`

面试题记录2

 
阅读更多

 

  1. 说一下对java范型的理解
  2. 运行时异常与非运行时异常的区别,列举常遇到的异常
  3. java存储金额一般用什么类型,Double占多少字节,有没有最大值,超过最大值的数据怎么处理?
  4. int与integer的区别
  5. Object类里面常用的方法有哪些?
  6. 类加载器的机制
  7. 页面出现乱码,原因可能是哪些地方,怎么避免?
  8. 上传、下载一个excel时怎样避免乱码
  9. mysql中的字段类型有哪些
  10. 在mysql中存储一个超大的xml数据怎么实现,哪种更好?
  11. mysql,sybase中实现分页查询
  12. 索引的作用,联合索引与单字段索引的区别,索引的实现机制
  13. 对mysql查询优化器的理解
  14. 常用的缓存,缓存的作用,缓存的实现机制,写一段代码实现一个简单的缓存
  15. js中常用的技术,get与post的区别,转向与重定向的区别
  16. 从一个请求发起到struts的处理流程
  17. servlet中常用的方法
  18. 谈谈对MVC的理解

 高级level要求:

 掌握JVM性能调优、了解常见JVM垃圾收集算法、Java并发框架与库、了解Java内存模型

 熟悉nginx原理,配置及模块的安装。

(1、深入理解java语言与J2EE体系,深入理解JVM虚拟机运行机制,包括JVM的类加载,JVM的物理内存模型,分代管理,GC,深入理解JVM的逻辑模型。深入理解代理,反射,模板等设计模式,跨JVM系统之间交互,多JVM之间交互的技术,包括但不限于socket,TCP, UDP,IO ,NIO,mina,netty ,hessian,等通信框架原理。深入理解JAVA 的接口,类,抽象类的层次体系,深入理解学习JDK下各种包,类,接口的使用。

2、 对互联网分布式系统架构设计有一定掌握与自己的认识,如:RPC ,RMi,dubbo,zookeeper,tair,memcahed,rids,hadoop, hbase, strom不限于这些技术。

3、熟练掌握JAVA语言基础,对JAVA集合,类,对象,IO,NIO框架原理有所研究学习,熟练掌握IOC ,AOP,代理,反射等核心原理或有所了解,对大型分布式系统架构,系统间通信技术底层有所学习了解,对PRC,RMI ,SOA等技术有自己的认识与理解。不限于struts,spring,hibernate,ibatise等常用框架,

4、熟练掌握eclipse,maven构建工具,对CI持续集成,了解自动化部署测试更佳 ,了解CI工具如jinkens等。

5、熟悉常用数据库,数量掌握SQL语法,对oracle,mysql等数据库又一定学习了解。

6、熟悉J2EE分布式通信框架,如webservice,JMS ,消息中间件;)

 

1. 说一下对java范型的理解

泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。

泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动隐式的,提高代码的重用率。

参考:

java泛型   http://baike.baidu.com/view/1436058.htm

Java 泛型(一) 泛型使用基础   http://www.cnblogs.com/mengdd/archive/2013/01/21/2869778.html
泛型(二) 泛型之中的通配符(Wildcards)使用  http://www.cnblogs.com/mengdd/archive/2013/01/21/2869861.html
 
 2. 运行时异常与非运行时异常的区别,列举常遇到的异常
Java异常可分为3种:
  (1)编译时异常:Java.lang.Exception
  (2)运行期异常:Java.lang.RuntimeException
  (3)错误:Java.lang.Error
Java.lang.Exception和Java.lang.Error继承自Java.lang.Throwable;
Java.lang.RuntimeException继承自Java.lang.Exception.

Throwable 是所有 Java 程序中错误处理的父类 ,有两种资类: Error 和 Exception 。
   Error :表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的严重错误 ,导致 JVM 无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。
Exception :表示可恢复的例外,这是可捕捉到的。
Java 提供了两类主要的异常 :runtime exception 和 checked exception 。 checked 异常也就是我们经常遇到的 IO 异常,以及 SQL 异常都是这种异常。 对于这种异常, JAVA 编译器强制要求我们必需对出现的这些异常进行
catch 。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆 catch 块去处理可能的异常。

    但是另外一种异常: runtime exception ,也称运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机 接管。比如:我们从来没有人去处理过 NullPointerException 异常,它就是运行时异常,并且这种异常还是最常见的异常之一。
    出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层,如果是多线程就由 Thread.run() 抛出 ,如果是单线程就被 main() 抛出 。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,那么这整个程序也就退出了。运行时异常是
Exception 的子类,也有一般异常的特点,是可以被 Catch
块处理的。只不过往往我们不对他处理罢了。也就是说,你如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。
 
常见异常:
java.lang.NullPointerException  空指针
java.lang.ClassNotFoundException  指定的类不存在
java.lang.ArrayIndexOutOfBoundsException  数组下标越界
java.lang.arithmeticexception 数学运算异常  比如程序中出现了除以零这样的运算就会出这样的异常
java.lang.IllegalArgumentException  方法的参数错误
java.lang.StackOverflowError  堆栈溢出错误。当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误。
类型强制转换异常:ClassCastException
文件未找到异常:FileNotFoundException
字符串转换为数字异常:NumberFormatException
操作数据库异常:SQLException
输入输出异常:IOException
方法未找到异常:NoSuchMethodException
java.lang.OutOfMemoryError内存不足错误。当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误。
 参考: Java之运行时异常与编译时异常区别  http://www.linuxidc.com/Linux/2009-11/23008.htm
 
3. java存储金额一般用什么类型,Double占多少字节,有没有最大值,超过最大值的数据怎么处理?
 用int、long或BigDecimal,因为double或者float存在浮点数无法精确计算的问题。 Double占8字节
Java中BigDecimal和double的精度问题  http://blog.iamzsx.me/show.html?id=153003
C语言数据类型占字节数   http://blog.csdn.net/guoguo295/article/details/8663632
4.  int与integer的区别
 int 是基本数据类型Integer是其包装类
int的初值为0,Ingeter的初值为null。
参考:
Integer与int的种种比较你知道多少?  http://www.cnblogs.com/liuling/archive/2013/05/05/intAndInteger.html
 5.  Object类里面常用的方法有哪些?
 toString
clone
equals
hashCode
finalize
wait
notify
notifyAll
6. 类加载器的机制
引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的,并不继承自 java.lang.ClassLoader。
扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。Java 虚拟机的实现会提供一个扩展库目录。该类加载器在此目录里面查找并加载 Java 类。
系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类。一般来说,Java 应用的类都是由它来完成加载的。可以通过 ClassLoader.getSystemClassLoader()来获取它。
除了系统提供的类加载器以外,开发人员可以通过继承 java.lang.ClassLoader类的方式实现自己的类加载器,以满足一些特殊的需求。
类加载流程:加载-> 链接(验证、准备、解析)-> 初始化 -> 使用 ->卸载
参考:
 9. mysql中的字段类型有哪些
int
char
varchar
text
longtext
BLOB
DATE
DATETIME
TIMESTAMP
BIGINT
FLOAT
DOUBLE
DECIMAL
 10.  在mysql中存储一个超大的xml数据怎么实现,哪种更好?
1). 存成一个二进制大型对象(BLOB,binary large object)
这一方法的优点是,将数据存入表中变得相当简单,而且重新获得也同样很容易。这种文档表的管理也很方便。
这种方法的缺点在于你将可能无法进行一些有用的文本搜索,并且在放置特定文档时也会碰到困难,因为没有任何方法来识别表中的文档。
2). text或者longtext
参考: http://www.chinahtml.com/0510/xml-1128352598555.html
11.  mysql,sybase中实现分页查询
 实现MySQL分页的最简单的方法就是利用利用mysql数据库的LIMIT函数,LIMIT [offset,] rows可以从MySQL数据库表中第M条记录开始检索N条记录的语句为:
SELECT * FROM 表名称 LIMIT M,N  例如从表Sys_option(主键为sys_id)中从第10条记录开始检索20条记录,语句如下:
select * from sys_option limit 10,20   select * from table [查询条件] order by id limit ?,? 
sybase中实现分页查询:
sybase没有mysql的limit关键字,也不支持sqlserver的 ROW_NUMBER() 来对查询行数据动态设置ID来帮助索引分页。
参考: sybase分页的实现   http://blog.csdn.net/chuangxin/article/details/5270714
Sybase采用固定表+存储过程实现分页  http://www.cnblogs.com/pony/archive/2011/09/06/2169063.html
 
12.  索引的作用,联合索引与单字段索引的区别,索引的实现机制
索引优点
1).大大加快数据的检索速度;
2).创建唯一性索引,保证数据库表中每一行数据的唯一性(然而,如果必须保证数据完整性,那么应该创建主键约束或者唯一性键约束,而不是创建一个唯一性索引。);
3).加速表和表之间的连接;
4).在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。
索引缺点
1).索引需要占物理空间。
2).当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。
 约束类型
总的来说有五种:主键约束, check约束, unique约束, 默认约束, 外键约束
联合索引与单字段索引的区别
复合索引就是一个索引创建在两个列或者多个列上。在搜索时,当两个或者多个列作为一个关键值时,最好在这些列上创建复合索引。单个列上创建的索引称为单个索引。
查询时使用联合索引的一个字段,如果这个字段在联合索引中所有字段的第一个,那就会用到索引,否则就无法使用到索引。例如联合索引 IDX(字段A,字段B,字段C,字段D),当仅使用字段A查询时,索引IDX就会使用到;如果仅使用字段B或字段C或字段D查询,则索引IDX都不会用到。 这个规则在oracle和mysql数据库中均成立。
索引机制、索引技术、索引设计准则  http://www.cnblogs.com/wq3if2in/archive/2009/04/02/1428068.html
 
 
 
 
分享到:
评论

相关推荐

    面试题及面试题记录.zip

    面试题及面试题记录.zip

    2018iOS面试题汇总

    本文档记录了18年大致的iOS面试题,希望对各位同道有所帮助

    大数据面试题分类记录.rar

    大数据面试题整理,有道云笔记版以及pdf版,有道云笔记直接导入即可查看,认真整理了部分面试题,还有一些参考链接在里面,根据需要再自行查看 今日更新,增加了题目分类,方便查看

    各大IT公司面试题集合

    │ JAVA面试题集(2) -- 最大的IT资源网.txt │ JAVA面试题集(3) -- 最大的IT资源网.txt │ JAVA面试题集(4) -- 最大的IT资源网.txt │ JAVA面试题集(5) -- 最大的IT资源网.txt │ JAVA面试题集(6) --...

    (完整版)公司结构化面试试题及记录.pdf

    (完整版)公司结构化面试试题及记录.pdf

    剑指offer面试题python题解(做题记录).zip

    python面试题、知识点,用于程序员应聘学习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘学习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘学习参考,提供代码+题型等资料 ...

    前端大厂最新面试题-面试记录流水记录.docx

    前端大厂最新面试题-面试记录流水记录.docx

    软件测试经典面试题 (超实用)

    开发及环境搭建类面试题 28 1、描述软件产生内存泄露的原因以及检查方式。(可以结合一种开发语言进行描述) 28 2、简述什么是值传递,什么是地址传递,两者区别是什么? 28 3、结构化程序设计和面向对象程序设计...

    sql模拟面试题.

    sql模拟面试题

    java面试题以及技巧

    │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ 孙卫琴精通struts.基于MVC的.java.web设计与开发.pdf │ 学习Struts提供的和Form相关标签.txt │ 日企编码规范.doc │ 电信盈科...

    mysql优化及基础面试题

    mysql优化及基础面试题。 什么是慢查询 慢查询日志,顾名思义,就是查询慢的日志,是指 mysql 记录所有执行超过 long_query_time 参数设定的时间阈值的 SQL 语句的日志。该日志能为 SQL 语句的优化带来很好的帮助...

    mybatis面试题(经典问答)

    mybatis面试题(经典问答) 1、JDBC有多少步? JDBC可以分为六个步骤 负载驱动程序 获取数据库连接 创建语句对象 操作数据库进行增删改查 获取结果集 关闭资源 2.什么是mybatis? 如果你在面试中被问到,只需说以下...

    java 面试题记录.zip

    Java前后开发面试题,大厂进阶之路,基于JavaGuide、Cyc大佬、牛客上的面经及王道考研相关视频,并改进了其中说法矛盾或含糊之处。 包含计算机网络知识、JavaSE、JVM、Spring、Springboot、SpringCloud、Mybatis、多...

    记录一些MySQL、Redis面试题以及一些常见的算法题 获取最新MySQL面试题

    记录一些MySQL、Redis面试题以及一些常见的算法题。 获取最新MySQL面试题。

    2019互联网大厂高频重点面试题 (第2季)脑图-完结.txt

    本人吐血整理,git部分未记录(尚硅谷周阳老师的视频脑图) 本期内容包括JUC多线程并发、JVM和GC等目前大厂笔试中会考、面试中会问、工作中会用的高频难点知识。上半场,从多线程并发入手,分层递进讲解,逐步让大家...

    高频的50个 MySQL 面试题含详细讲解

    MySQL面试题以及答案整理【最新版】MySQL高级面试题大全,发现网上很多MySQL面试题都没有答案,所以花了很长时间搜集,本套MySQL面试题大全,汇总了大量经典的MySQL程序员面试题以及答案,包含MySQL语言常见面试题、...

    110道 MySQL面试题及答案

    这份文档包含了110道MySQL面试题及其答案,旨在帮助准备MySQL面试的人更好地准备和学习。 ## 查询语句 1. 如何查询表中的所有记录? 答案:使用SELECT语句,例如:SELECT * FROM table_name; 1. 如何查询表中的...

    MySQL数据库高级工程师-面试题-MySQL DBA面试题01-风哥整理(面试必过)

    1.1 1、MySQL 的复制原理以及流程 (1)、复制基本原理流程 1. 主:binlog 线程——记录下所有改变了数据库数据的语句,放进master 上的binlog 中; 2. 从:io 线程——在使用start slave...更多面试题,请下载附件......

    史上最全 55道 MySQL面试题及答案,看完碾压面试官

    MySQL面试题以及答案整理【最新版】MySQL高级面试题大全,发现网上很多MySQL面试题都没有答案,所以花了很长时间搜集,本套MySQL面试题大全,汇总了大量经典的MySQL程序员面试题以及答案,包含MySQL语言常见面试题、...

    快钱支付信息科技java面试题整理

    文档是小弟面试完,回来即整理的几类问题,大至把面试题都记录了下来, 所以还未有完整正确答案,大家对照问题,百度去吧~!

Global site tag (gtag.js) - Google Analytics