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
冒泡排序: 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.
适用于采用代理主键形式的主键列。同样不能用于主键列是自动增长的表。