java面试总结(4)

2019-04-16 23:45

34.Math.round(11.5)等於多少? Math.round(-11.5)等於多少? ceil: 向上取整 Math.ceil(11.3)=12 Math.ceil(-11.3)=-11 floor:向下取整 Math.ceil(11.6)=11 Math.ceil(-11.6)=-12

round:四舍五入 Math.round(11.5)=12 Math.round(-11.5)=-11

☆35.说出一些常用的类,包,接口,异常,请各举5个[笔试]

类 : String , Integer , Character , Float , ArrayList, Date,calendar,java.net.URL 包 : java.util

java.lang: Java语言包,主要包含与语言、数据类型相关的类。程序运行时,编译器

自动引入该包

java.awt和javax.swing:提供了创建图形界面元素的类,通过这些类,可以控制应用

程序的外观界面

java.sql: 包含了与数据库编程相关的类/接口

java.io: Java输入/输出包,包含与输入和输出操作相关的类,提供了不同的输入/输出

设备读写的支持

java.net: Java网络包,提供与网络操作相关的类 java.text java.math

接口 : Servlet ,Iterator , List, Map , Cloneable , Serializable

异常: IndexOutputBoundsException, NullPointException,NumberFormatException, ClassNotFoundException, MethodNotFoundException,IOException

☆☆常见的异常,如何解决?(重点) ClassCastException(类型转换异常)

IllegalArgumentException(非法计算异常) IndexOutOfBoundsException(下标越界异常) NoSuchElementException(没有这样的元素异常) NullPointerException(空指针异常)

RasterFormatException, SecurityException, SystemException(系统出现的异常) 项目中常见的问题: 1>.com.mysql.jdbc.exceptions.jdbc.MySQLSyntaxErrorExcption mysql关键字冲突 2>.json死循环

36.作用域public,private,protected,以及不写时的区别

访问修饰符有哪些?每个访问修饰符的作用?修饰方法和类的修饰符?以及它们的作用[湛腾]

作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × ×

37.int和Integer的区别?[上海卫城企业征信有限公司]

Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java

为int提供的封装类。Java为每个原始类型提供了封装类

39.&和&&的区别。

&是位运算符。&&是布尔逻辑运算符

40.JDK使用的版本?JDK8的新特效?[文思海辉] JDK 7

新特性:接口的默认方法(接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法) Lambda 表达式( ->) 函数式接口 方法与构造函数引用 Lambda 作用域 访问局部变量 访问对象字段与静态变量 访问接口的默认方法 Date API(包java.time下包含了一组全新的时间日期API) Annotation 注解(支持多重注解)

☆41.静态变量和实例变量的区别? [文思海辉 平安科技] 静态变量:类名来引用

实例变量:创建对象才能引用

43.四位数的随机数?[中国电信理想]

(数据类型)(最小值+Math.random()*(最大值-最小值+1))

44.当前时间?3年前的时间

**********结构算法*********

8种排序算法:

直接插入 插入 希尔

内部排序 选择 简单选择

(只使用内存)交换 冒泡排序(快速)

归并 基数

外部排序

(内存和外层相结合)

[美教]:二分算法(不只需要会框架的人,那样还不如招个应届生) import java.util.Comparator; public class MyUtil { public static > int binarySearch(T[] x, T key) { return binarySearch(x, 0, x.length- 1, key); } // 使用循环实现的二分查找 public static int binarySearch(T[] x, T key, Comparator comp) { int low = 0; int high = x.length - 1; while (low <= high) { int mid = (low + high) >>> 1; int cmp = comp.compare(x[mid], key); if (cmp < 0) { low= mid + 1; } else if (cmp > 0) { high= mid - 1; } else { return mid; } } return -1; } // 使用递归实现的二分查找 private static> int binarySearch(T[] x, int low, int high, T key) { if(low <= high) { int mid = low + ((high -low) >> 1); if(key.compareTo(x[mid])== 0) { return mid; } else if(key.compareTo(x[mid])< 0) { return binarySearch(x,low, mid - 1, key); } else { return binarySearch(x,mid + 1, high, key); } } return -1; } }

冒泡排序: N个数字来排队,两两相比小靠前,外层循环n-1,内存循环n-i-1

For(int i=0;i

If(arr[j]>arr[j+1]){ Int remp; Temp=arr[j];

}else{ Arr[j]=arr[j+1]; Arr[j+1]=temp; } } }

*********框架-hibernate*********************

☆1.Hibernate的理解 工作原理及为什么要用?

理解:hibernate是一个开源的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装, 使得Java程序员可以随心所欲的使用对象编程思想来操纵数据库 原理:

1.读取并解析配置文件

2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion

4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session

8.关闭SesstionFactory

优点: 1.简化了数据访问层的代码 2.程序更加面向对象

3.提高了开发效率 4.方便移植

2.请描述下hibernate对象的三种状态是什么,有什么不同? 瞬时状态transient: 对象只存在于内存中,缓存和数据库中都没有id 持久化状态persistent: 内存中有id,缓存中有id,数据库也有id 游离状态detached: 内存中有id,缓存中没有id,数据库有id

3.谈谈你对Hibernate和MyBatis的理解及相对JDBC有什么优缺点? 相同点:都是通过sessionFactorybulider由xml配置文件生成sessionfactory,然后由sessionfactory生成session,然后开启执行事务和sql, 三者生命周期都是差不多的 mybatis的优势:可以进行更加细致的sql优化,减少查询的字段 hibernate优势:dao层比mybatis简单,数据库移植性比mybatis强,二级缓存机制比mybatis好,对象的缓存和维护比mybatis好 相对于jdbc开发效率高,运行速度快,但内存消耗大

Hibernate和JDBC的区别? 同:

hibernate是对JDBC的轻量级的封装 java的数据库操作中间体 线程不安全,都需要及时关闭 显示的事务处理 异:SQL语言 SQL HQL

操作对象 数据 持久化对象 数据状态 瞬时 可持久化 开发效率 低 高

☆4.请描述下什么是hibernate 1+N问题及如何解决? 查询多的一方默认会把一的一方查询出来(Eager),而且是发N条sql的方式查询 1、将多的一方设FetchType.LAZY,用到一的一方的时候才发sql语句,只是延迟而已 2、使用hql的迫切左外联接查询(left join fetch),只发一条|xml可以设置fetch=\ 3、使用Criteria查询,即使用hql的左外联接查询,只发一条 4、@BatchSize(size=?) 取一的一方的时候发1+N/?条sql | xml中的class标签中设置batch-size=\只有fetch=\有用

5.请写出常见的几种主键生成策略,并解释其用途? 1:assigned

----表示在新增数据时由应用程序指定主键的值。主要针对主键是采用自然主键的形式。这种方式,适用于主键列不是自动增长列。 2:increment

----表示新增数据操作时由hibernate自动生成主键值。其生成的值为:先查询该主键列的最大值,然后在最大值的基础上加上1.

适用于采用代理主键形式的主键列。同样不能用于主键列是自动增长的表。


java面试总结(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2014-2020年中国彩色水泥市场调查与投资战略研究报告 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: