金典java面试题108道之23-43道

23 篇文章 0 订阅
15 篇文章 0 订阅

道歉声明:非常感谢大家的评论,你们的评论提的建议我会一一改正,希望大家能见证我的成长,也希望你们有一个写博客的好习惯,写了博客的朋友可以给我留言,我会去关注你们的

24,Java实现多态的原因??

**

  1. Java实现多态的主要原因是依靠父类或接口的引用指向子类对象,从而实现了一个对象指向多种状态的特征
    拓展:多态分为编译时多态和运行时多态
    编译时多态(大白话,希望你们理解):编译时多态指的是方法的重载
    运行时多态:通过动态绑定寻找匹配的方法执行,如果当前类中没有匹配
    的方法,则沿着继承关系逐层向上,依次在父类或各祖先类中寻找匹配方法,直到Object类
    **

25,HashMap和Hashtable的区别???

**
区别:
(1)线程安全不同,HashMap是线程不安全的,Hashtable是线程安全的
(2)底层初始容量不同,HashMap初始容量为16,Hashtable初始容量为11
拓展:面试官会问:HashMap适合在多线程的情况下使用吗?
不会使用,HashMap和Hashtable都不会在多线程中使用,一般会使用最好使用concurrentHashmap
**

26,简述一下J2ee的设计模式

**

1, 设计模式一般分为三大类:创建模式,结构模式,行为模式(很重要,如果面试官问你设计模式的话,先说这三种类型)
  (1)创建模式:创建模式抽象了实例化过程,简单来说他是依赖于对象复合而不是类的继承
  (1.1)创建模式的种类
     (1.1.1):抽象工厂模式,生成器模式,工厂方法,原型,单例
  (2)结构模式:创建模式抽象了实例化过程,简单来说他是依赖于对象复合而不是类的继承
  (2.1)结构模式的种类
     (2.1.1):适配器模式,桥接,组合,装饰,外观,享元,代理
  (3)行为模式:创建模式抽象了实例化过程,简单来说他是依赖于对象复合而不是类的继承
  (3.1)行为模式的种类
     (3.1.1):责任链模式,命令,解释器,迭代器,中介者,备忘录,状态,模板方法,访问者
**

27,常见的应用服务器名称

**
(1)Tomcat (2)Apache(阿帕奇) (3)catalina(卡特琳娜)
**

28,简述一下垃圾回收机制的优点和原理????

**
  (1)优点:
     (1.1)防止内存泄露,可以有效的释放内存
     (1.2)可以对已死亡的线程进行定期清理
  (2)原理:
  垃圾回收机制内部有一个计数器算法,也就是说在java中创建的每 ;一个对象后面他都会有一个计数器,当计数器为0时,表示该对象将被回收,如果计数器为1时,表示该对象不可以回收
  拓展:如果一个对象被设置为空时,这个对象会不会立即被回收???
    不会被立即被回收,因为java 的垃圾回收机制是周期性的
**

29,同步方法和同步代码块的区别???

**
    (1)同步方法: 同步方法是对想法加锁,要想调用该方法必须获取该方法的内置锁,否则该方法就处于阻塞状态,
    (2)同步代码块:同步代码块修饰的是
synchronized(UserService.class) { this.deleteUser(); }

**

30,检查时异常和非检查时异常的区别????

**
  (1)检查时异常:
     检查时异常会在程序编译的时候报错,也就是说必须要处理这个异常,常见的检查时异常有SQL,IO异常;
  (2)非检查时异常:
     非检查时异常编译一般不会报错,他会在程序运行的时候报错,常见的检查时异常有空指针异常;
**

31,在一个循环中,如果插入大量拼接字符串,采用什么方法最好

**
     (1)常见的拼接字符串的方式有三种:加号,concat,StringBuilder的append()方法
      (2)采用的是StringBuilder的append()方法最好
      (3)“+”号慢的原因,str=new String Builder(str.append("c")).toString他之所以慢是因为他需要toString一下,也就是说他需要转换字符
**

32,Iterator和ListIterator的区别是什么??

**
(1) Iterator是Java中的迭代器,是collection的一个接口
缺点:Iterator接口去元素只能一个一个取,无法操作元素
(2)Listlterator是Iterator的一个拓展,他可以操作元素,弥补Iterator的缺点
缺点:他只能遍历List集合中的元素
**

33,set集合的元素是不可以重复的,那是用什么方法使他的元素不重复????

**
set集合中采用的是equals()方法来区分,equals()方法对比的是元素的内容是否相同,如果用”==“的话会出现不同的对象有相同的值
**

34,什么是触发器?触发器的作用

**
(1)触发器是一种特殊的存储过程,他的执行过程不是由程序调用,而是系统自动调用,他是由事件触发而调用,比如当对一个表进行操作增加删除修改等时就会激活它执行。
(2)作用:触发器一般的应用场景为加强数据的完整性约束和业务规则等。
**

35,什么是存储过程?用来调用什么??

**
(1)存储过程:存储过程其实就是执行特定功能的SQL语句集合
优点:存储过程的执行效率很高,代码可以复用,安全性能好。
缺点:存储过程的代码不易维护,可读性很差
**

36,什么是索引??索引的作用???

**
(1)MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高 MySQL的检索速度
作用:(1.1)大大提高数据的查询速度
   (1.2)通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 &emsp(1.3)通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
(2) 使用场景:一般用来查询,不用来DML操作
   (2.1)如果数据中有大量的重复字段我们也不用索引(如,性别字段)
**

37,什么是事务?什么是会话?什么是锁??

**
(1)事务:一个事务是由一个或一组SQL语句构成,通过事务可以完成整个工作单元的操作
(2)事务的特性(acid):原子性,一致性,持久性,隔离性(如果不知道事务的特性可以关注我的下一篇文章)
(3)会话:在有限的时间内,客户端和服务的进行连接
(4)锁:用来保证线程的安全性
**

38,什么是视图?什么是游标?

**
(1)视图:视图是基于SQL语句结果集的可视化表,他可以帮助我们简化查询,能够对机密数据提供安全保护
(2)游标:游标其实就是一个结果集,类似于JDBC的ResultSet结果集,游标具体分为显示游标和隐式游标
**

39,SQL包括哪些类型?分别是什么?有什么作用?

**
(1)数据库查询语言DQL:select*from…
(2)数据库操作语言DML:delete(删除),insert(插入),update(修改)
(4)数据定义语言DDL:数据定义语言DDL用来创建数据库中的各种对象
索引、同义词、聚簇等如:
CREATE TABLE/VIEW/INDEX/SYN/CLUSTER
(3)数据库控制语言DCL:用来控制数据库组件的存取
**

40,索引的原理???

**
(1)索引是基于B树的,换句话说以空间换取时间,在未加入索引的时候,查询数据没查询一条记录都会去遍历表,加了索引以后,会将索引的Key值存储在B树上,而B树的特点就是在磁盘等存储设备上进行动态的查找表
**

41,什么是主键?什么是外键?

**
主键:能唯一标识一条记录,以防止重复的值
外键:是为了与另一张表做关联
42,什么是内连接??什么是外连接??区别是什么??
(1)内连接:连接的结果只包含符合条件的行

select e.ename,e.sal,d.dname from emp e inner join dept d on e.deptno=d.deptno

外连接:
(1)左外连接
在这里插入图片描述(2)右外连接
在这里插入图片描述(3)全外连接
在这里插入图片描述(4)自然连接
在这里插入图片描述
**

43,什么是连接池?他的作用是什么?有什么优点??

**
(1)什么是连接池:预先在缓存中放入一些连接,需要的时候直接拿就行
(2)作用:数据库连接池负责管理,分配,释放连接,它允许重复使用同一个连接而不需要重新创建连接
(3)优点:资源重复利用率高,有着更快的系统反应速度,统一的连接管理

**

我已经把简历模板上传了,有没有谁知道怎么让他不收积分,免费下载呢?

**

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值