每当到了寻找java开发相关工作的时候,免不了需要参加各种企业的笔试以及面试,没错,刷题是必要的,先不管有没有用,好歹做的题目足够多了,自信也就来了,下面就跟小编一起来看看吧。
1. JDK和JRE有什么区别?
JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java的开发环境和运行环境。
JRE:Java Runtime Environment 的简称,Java运行环境,为Java的运行提 供了所需环境。 具体来说 JDK 其实包含了
JRE,同时还包含了编译 Java 源码的编译器 Javac,还 包含了很多 Java 程序调试和分析的工具。
简单来说:如果你需要运行 Java 程序, 只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。
2、int和Integer有什么区别?
Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类
型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入 了对应的包装类型(wrapper
class),int的包装类就是Integer,从Java 5开始引入了自 动装箱/拆箱机制,使得二者可以相互转换。
3、float f=3.4是否正确?
不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于
下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转 换float f =(float)3.4; 或者写成float f
=3.4F。
4、 什么是Java虚拟机?为什么Java被称作是“平台无关的编程 语言”?
java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能 被Java虚拟机执行的字节码文件。
因为它有虚拟机(JVM),JAVA程序不是直接在电脑上运行的,是在虚拟机上 进行的,每个系统平台都是有自己的虚拟机(JVM),所以JAVA语言能跨平台。
5、Math.round(11.5) 等于多少?Math.round(-11.5)等于多 少?
答:Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四
舍五入的原理是在参数上加0.5然后进行下取整。
6、Java 中会存在内存泄漏吗,请简单描述。
答:理论上不会,Java有垃圾回收机制(GC)不会存在内存泄露问题(); 然而在实际开发中,可能会存在无用但可达的对象,这些对象不能被GC回收,
因此也会导致内存泄露的发生。
7、数据库性能优化有哪些方式?
SQL优化:
尽量避免使用 SELECT *;
只查询一条记录时使用 limit 1;
使用连接查询代替子查询;
尽量使用一些能通过索引查询的关键字。
表结构优化:
尽量使用数字类型字段,提高比对效率;
长度不变且对查询速度要求高的数据可以考虑使用 char,否则使用 varchar;
表中字段过多时可以适当的进行垂直分割,将部分字段移动到另外一 张表;
表中数据量过大可以适当的进行水平分割,将部分数据移动到另外一张 表。
其它优化:
对查询频率高的字段适当的建立索引,提高效率;
根据表的用途使用合适 的数据库引擎;
读写分离。
8、JDBC中存在哪些不同类型的锁?
从广义上讲,有两种锁机制来防止多个用户同时操作引起的数据损坏。
乐观锁-只有当更新数据的时候才会锁定记录。
悲观锁 - 从查询到更新和提交整个过程都会对数据记录进行加锁。