- 说一下对java范型的理解
- 运行时异常与非运行时异常的区别,列举常遇到的异常
- java存储金额一般用什么类型,Double占多少字节,有没有最大值,超过最大值的数据怎么处理?
- int与integer的区别
- Object类里面常用的方法有哪些?
- 类加载器的机制
- 页面出现乱码,原因可能是哪些地方,怎么避免?
- 上传、下载一个excel时怎样避免乱码
- mysql中的字段类型有哪些
- 在mysql中存储一个超大的xml数据怎么实现,哪种更好?
- mysql,sybase中实现分页查询
- 索引的作用,联合索引与单字段索引的区别,索引的实现机制
- 对mysql查询优化器的理解
- 常用的缓存,缓存的作用,缓存的实现机制,写一段代码实现一个简单的缓存
- js中常用的技术,get与post的区别,转向与重定向的区别
- 从一个请求发起到struts的处理流程
- servlet中常用的方法
- 谈谈对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虚拟机分配给一个对象时抛出该错误。
3. java存储金额一般用什么类型,Double占多少字节,有没有最大值,超过最大值的数据怎么处理?
用int、long或BigDecimal,因为double或者float存在浮点数无法精确计算的问题。 Double占8字节
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)
这一方法的优点是,将数据存入表中变得相当简单,而且重新获得也同样很容易。这种文档表的管理也很方便。
这种方法的缺点在于你将可能无法进行一些有用的文本搜索,并且在放置特定文档时也会碰到困难,因为没有任何方法来识别表中的文档。
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来帮助索引分页。
12. 索引的作用,联合索引与单字段索引的区别,索引的实现机制
索引优点
1).大大加快数据的检索速度;
2).创建唯一性索引,保证数据库表中每一行数据的唯一性(然而,如果必须保证数据完整性,那么应该创建主键约束或者唯一性键约束,而不是创建一个唯一性索引。);
3).加速表和表之间的连接;
4).在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。
索引缺点
1).索引需要占物理空间。
2).当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。
约束类型
总的来说有五种:主键约束, check约束, unique约束, 默认约束, 外键约束
联合索引与单字段索引的区别
复合索引就是一个索引创建在两个列或者多个列上。在搜索时,当两个或者多个列作为一个关键值时,最好在这些列上创建复合索引。单个列上创建的索引称为单个索引。
查询时使用联合索引的一个字段,如果这个字段在联合索引中所有字段的第一个,那就会用到索引,否则就无法使用到索引。例如联合索引 IDX(字段A,字段B,字段C,字段D),当仅使用字段A查询时,索引IDX就会使用到;如果仅使用字段B或字段C或字段D查询,则索引IDX都不会用到。 这个规则在oracle和mysql数据库中均成立。
分享到:
相关推荐
以下是对"大数据面试题分类记录"中可能涉及的一些核心知识点的详细说明: 1. **数据处理**:这部分可能会涉及到数据清洗、数据预处理、ETL(提取、转换、加载)流程、数据集成和数据质量控制。例如,如何处理缺失值...
这份"面试题及面试题记录.zip"文件包含两份资源:Java面试题宝典V7.pdf和面试真题汇总.xlsx,它们提供了丰富的面试问题和可能的答案,帮助求职者准备Java相关的面试。以下是基于这些文件名推测的一些重要知识点: 1...
#### 颇具挑战性的SQL面试题——删除冗余记录 **题目背景与分析** 在本题中,我们面对的是一个常见的问题:如何有效地处理数据库中的冗余数据。在实际应用中,由于各种原因(如数据导入错误、系统故障等),数据库...
│ JAVA面试题集(2) -- 最大的IT资源网.txt │ JAVA面试题集(3) -- 最大的IT资源网.txt │ JAVA面试题集(4) -- 最大的IT资源网.txt │ JAVA面试题集(5) -- 最大的IT资源网.txt │ JAVA面试题集(6) --...
以下是对这些领域的基础面试题及答案的详细解读。 一、Java 面试题 1. **Java 的特点:** Java 以其跨平台性、安全性、高性能、面向对象等特性受到广泛欢迎。它的“一次编写,到处运行”理念使得代码能在多种操作...
数据库面试题涵盖了数据库基础知识、数据结构、算法、面向对象编程、软件工程以及特定数据库系统(如Visual FoxPro和SQL)的使用等多个方面。以下是这些题目所涉及的关键知识点的详细解释: 1. **算法的执行效率与...
"C# Winform 面试题详解" C# Winform 面试题详解 1. foreach 遍历访问的对象需要实现 IEnumerable 接口或声明 GetEnumerator 方法的类型 在 C# 中,foreach 语句可以遍历实现了 IEnumerable 接口或声明了 ...
【Delphi面试题 Delphi题目】的解析涵盖了多个Delphi编程和数据库操作的知识点,以下是详细解答: 1. Delphi元件派生: - 如果一个元件希望放到IDE的元件面板上,它必须从(TComponent)类派生。 - 如果一个元件能...
在软件测试的面试题中,我们通常会遇到以下知识点: 1. 软件测试的目的与原则: - 目的:测试的主要目的是发现软件中的缺陷,降低产品开发风险,并记录软件运行的数据以提供决策支持。 - 原则:其中的“缺陷集群...
面试题记录最后一班了难
Socket 编程面试题 TCP 和 UDP 的区别: 1. 连接方式:TCP 提供面向连接的传输,通信前需要建立连接(三次握手机制);UDP 提供无连接的传输,通信前不需要建立连接。 2. 可靠性:TCP 提供可靠的传输(有序、无...
为了在Java面试中脱颖而出,了解和掌握常见的面试题及答案至关重要。以下是一些关键知识点的详细解析: 1. **super()与 this()的区别** `super()`用于调用父类的构造器,确保子类实例化时父类的初始化;`this()`则...
SSH2面试试题主要涵盖Struts 2、Hibernate和Spring这三个框架的相关知识,这些技术是Java企业级应用开发中常用的三大框架。以下是对这些面试题目的详细解析: 1. Struts 2框架来源于WebWork和XWork。WebWork是基于...
本题目是一份针对Java程序员的面试题集,包含了基础题、Java相关问题、数据库操作、JavaScript编程以及逻辑思维题。以下是各个部分的详细解答: 基础题: 1、HTML 中的 `<td>` 标签代表表格中的一个单元格(Table ...
计算机常见算法面试题 本资源摘要信息涵盖了计算机常见算法面试题,主要涉及链表、字符串操作、搜索算法等方面的知识点。下面是对标题、描述、标签和部分内容的详细解释: 标题:计算机常见算法面试题 该标题表明...
SQL Server高频面试题及答案 数据库基础知识篇 1. 主键、外键、超键、候选键 超键是关系模式中能唯一标识元组的属性集。候选键是最小超键,即没有冗余元素的超键。主键是数据库表中对储存数据对象予以唯一和完整...
【标题】"新浪PHP面试题"所涉及到的知识点主要涵盖了PHP编程语言在实际应用和面试中的常见问题。作为中国知名互联网公司新浪的面试题目,这些题目反映了新浪对PHP开发人员的技术要求和期望。 【描述】虽然描述部分...
建立CMDB(配置管理数据库),记录服务器的系统、配置和应用信息,方便查询和管理。 RAID(冗余磁盘阵列)技术可以将多个硬盘整合为一个大磁盘并提供冗余备份。RAID 0提供高速读写但无冗余,一旦硬盘损坏,数据丢失...
python面试题、知识点,用于程序员应聘学习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘学习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘学习参考,提供代码+题型等资料 ...
SQL 面试题 SQL(Structured Query Language)是一种特殊-purpose 编程语言,用于管理关系数据库管理系统(RDBMS)。SQL 面试题是 IT 行业中非常重要的一部分,涵盖了数据库管理、数据查询、数据操作等方面的知识。...