`

面试题记录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
 
 
 
 
分享到:
评论

相关推荐

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

    以下是对"大数据面试题分类记录"中可能涉及的一些核心知识点的详细说明: 1. **数据处理**:这部分可能会涉及到数据清洗、数据预处理、ETL(提取、转换、加载)流程、数据集成和数据质量控制。例如,如何处理缺失值...

    面试题及面试题记录.zip

    这份"面试题及面试题记录.zip"文件包含两份资源:Java面试题宝典V7.pdf和面试真题汇总.xlsx,它们提供了丰富的面试问题和可能的答案,帮助求职者准备Java相关的面试。以下是基于这些文件名推测的一些重要知识点: 1...

    经典sql面试题

    #### 颇具挑战性的SQL面试题——删除冗余记录 **题目背景与分析** 在本题中,我们面对的是一个常见的问题:如何有效地处理数据库中的冗余数据。在实际应用中,由于各种原因(如数据导入错误、系统故障等),数据库...

    各大IT公司面试题集合

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

    java 面试题基础题,sql 面试题 带答案

    以下是对这些领域的基础面试题及答案的详细解读。 一、Java 面试题 1. **Java 的特点:** Java 以其跨平台性、安全性、高性能、面向对象等特性受到广泛欢迎。它的“一次编写,到处运行”理念使得代码能在多种操作...

    数据库面试题数据库面试题.

    数据库面试题涵盖了数据库基础知识、数据结构、算法、面向对象编程、软件工程以及特定数据库系统(如Visual FoxPro和SQL)的使用等多个方面。以下是这些题目所涉及的关键知识点的详细解释: 1. **算法的执行效率与...

    c# winform面试题

    "C# Winform 面试题详解" C# Winform 面试题详解 1. foreach 遍历访问的对象需要实现 IEnumerable 接口或声明 GetEnumerator 方法的类型 在 C# 中,foreach 语句可以遍历实现了 IEnumerable 接口或声明了 ...

    delphi面试题 delphi题目

    【Delphi面试题 Delphi题目】的解析涵盖了多个Delphi编程和数据库操作的知识点,以下是详细解答: 1. Delphi元件派生: - 如果一个元件希望放到IDE的元件面板上,它必须从(TComponent)类派生。 - 如果一个元件能...

    软件测试面试题.pdf

    在软件测试的面试题中,我们通常会遇到以下知识点: 1. 软件测试的目的与原则: - 目的:测试的主要目的是发现软件中的缺陷,降低产品开发风险,并记录软件运行的数据以提供决策支持。 - 原则:其中的“缺陷集群...

    面试题记录最后一班了难

    面试题记录最后一班了难

    Socket编程面试题

    Socket 编程面试题 TCP 和 UDP 的区别: 1. 连接方式:TCP 提供面向连接的传输,通信前需要建立连接(三次握手机制);UDP 提供无连接的传输,通信前不需要建立连接。 2. 可靠性:TCP 提供可靠的传输(有序、无...

    Java面试题以及答案整理.pdf

    为了在Java面试中脱颖而出,了解和掌握常见的面试题及答案至关重要。以下是一些关键知识点的详细解析: 1. **super()与 this()的区别** `super()`用于调用父类的构造器,确保子类实例化时父类的初始化;`this()`则...

    SSH2面试试题

    SSH2面试试题主要涵盖Struts 2、Hibernate和Spring这三个框架的相关知识,这些技术是Java企业级应用开发中常用的三大框架。以下是对这些面试题目的详细解析: 1. Struts 2框架来源于WebWork和XWork。WebWork是基于...

    java面试题,智力面试题,程序员面试题 (带有答案)

    本题目是一份针对Java程序员的面试题集,包含了基础题、Java相关问题、数据库操作、JavaScript编程以及逻辑思维题。以下是各个部分的详细解答: 基础题: 1、HTML 中的 `<td>` 标签代表表格中的一个单元格(Table ...

    计算机常见算法面试题

    计算机常见算法面试题 本资源摘要信息涵盖了计算机常见算法面试题,主要涉及链表、字符串操作、搜索算法等方面的知识点。下面是对标题、描述、标签和部分内容的详细解释: 标题:计算机常见算法面试题 该标题表明...

    SQLServer高频面试题及答案

    SQL Server高频面试题及答案 数据库基础知识篇 1. 主键、外键、超键、候选键 超键是关系模式中能唯一标识元组的属性集。候选键是最小超键,即没有冗余元素的超键。主键是数据库表中对储存数据对象予以唯一和完整...

    新浪PHP面试题新浪PHP面试题

    【标题】"新浪PHP面试题"所涉及到的知识点主要涵盖了PHP编程语言在实际应用和面试中的常见问题。作为中国知名互联网公司新浪的面试题目,这些题目反映了新浪对PHP开发人员的技术要求和期望。 【描述】虽然描述部分...

    运维面试题 运维面试题 运维面试题

    建立CMDB(配置管理数据库),记录服务器的系统、配置和应用信息,方便查询和管理。 RAID(冗余磁盘阵列)技术可以将多个硬盘整合为一个大磁盘并提供冗余备份。RAID 0提供高速读写但无冗余,一旦硬盘损坏,数据丢失...

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

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

    SQL面试题.doc

    SQL 面试题 SQL(Structured Query Language)是一种特殊-purpose 编程语言,用于管理关系数据库管理系统(RDBMS)。SQL 面试题是 IT 行业中非常重要的一部分,涵盖了数据库管理、数据查询、数据操作等方面的知识。...

Global site tag (gtag.js) - Google Analytics