一套Java面试题

1.java中final的使用方法

1 final用于修饰变量
2 final修饰类
final类不能被继承,因此不会有子类。final类中的方法不论是否有final修改,都是final的。
3 final修饰方法
final方法不能被override。若父类中的方法为final的,则子类不能override该方法,但可以调用该方法(父类的final方法)。

2.线程池的作用

1、限定线程的个数,不会导致由于线程过多导致系统运行缓慢或崩溃
2、线程池不需要每次都去创建或销毁,通过重复利用已创建的线程降低线程创建和销毁造成的消耗。节约了资源、
3当任务到达时,任务可以不需要等到线程创建就能立即执行,响应时间更快。

3.连接池的作用

1、创建有限的数据库连接,防止过多的连接,保护数据库。
2、每个数据库连接的创建与销毁都会消耗资源,通过使用连接池,可以重用数据库连接,较少资源的消耗
4.

什么是反射机制,有什么作用

主要是指程序可以访问、检测和修改其本身状态或行为的一种能力。

在Java环境中,反射机制允许程序在执行时获取某个类自身的定义信息,例如熟悉和方法等也可以实现动态创建

类的对象、变更属性的内容或执行特定的方法的功能。

Java反射机制主要用于实现以下功能。

(1)在运行时判断任意一个对象所属的类型。

(2)在运行时构造任意一个类的对象。

(3)在运行时判断任意一个类所具有的成员变量和方法。

(4)在运行时调用任意一个对象的方法,甚至可以调用private方法。

注意:上述功能都是在运行时环境中,而不是在编译时环境中。

反射机制获取类有三种方法
通过类名: class com.java.reflection.Person
无参构造器
通过getClass(): class com.java.reflection.Person
通过全类名获取: class com.java.reflection.Person

  1. //1 直接通过类名.Class的方式得到  
  2.     clazz = Person.class;  
  3.     System.out.println("通过类名: " + clazz);    
  4.     //2 通过对象的getClass()方法获取,这个使用的少(一般是传的是Object,不知道是什么类型的时候才用)  
  5.     Object obj = new Person();   
  6.     //3 通过全类名获取,用的比较多,但可能抛出ClassNotFoundException异常  
  7.     clazz = Class.forName("com.java.reflection.Person");

5

NIO和IO主要区别

特征NIOIO
 基于通道(Channel)和缓冲区基于字节流和字符流
阻塞非阻塞IO阻塞IO
选择器有选择器(监听多个通道的事件)无选择器

6

sql语句中where与having的区别

Where  是一个约束声明,使用 Where 约束来 自数据库的数据, Where 是在结果返回之前起作用的, Where 中不能使用聚合函数。
要查询每个部门工资大于3000的员工个数
  1. select deparment, count(*) as c from salary_info   
  2. where salary > 3000 group by deparment  
Having 是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在 Having 中可以使用聚合函数。
要查找平均工资大于3000的部门
  1. select deparment, avg(salary) as average from salary_info   
  2. group by deparment having average > 3000 

7

列出一些你常见的运行时异常

NullPointerException - 空指针引用异常
ClassCastException - 类型强制转换异常。
IllegalArgumentException - 传递非法参数异常。
ArithmeticException - 算术运算异常
ArrayStoreException - 向数组中存放与声明类型不兼容对象异常
IndexOutOfBoundsException - 下标越界异常
NegativeArraySizeException - 创建一个大小为负数的数组错误异常
NumberFormatException - 数字格式异常
SecurityException - 安全异常

文件未找到异常:FileNotFoundException

8

MySql实现分页查询的SQL

select * from table limit (start-1)*limit,limit; 其中start是页码,limit是每页显示的条数。

9

MySQL/Oracle数据库优化总结

https://blog.csdn.net/baidu_37107022/article/details/77460464


10

ArrayList和LinkedList的大致区别:

1.ArrayList是实现了基于动态数组的数据结构,LinkedList是基于链表结构。
2.对于随机访问的get和set方法,ArrayList要优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据。

11

HashMap HashTable和ConcurrentHashMap的区别





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值