面试(5)

线程中的sleep()和wait方法的区别是什么?

1、来自的类不同(重要)
  • sleep()方法是线程类(Thread)的方法;

  • wait()方法是Object类里的方法;

2、捕获异常不同
  • sleep()方法必须捕获异常

  • wait()方法不需要捕获异常

3、使用范围不同
  • sleep()方法可以在任何地方使用

  • wait()方法只能在同步控制方法或者同步控制块里面使用

4、是否释放锁不同(重要)
  • 调用sleep()方法的时候,不会释放对象锁,等待阻塞的时间到了线程自动恢复运行状态

  • 调用wait()方法的时候,会释放了对象锁(使得其他线程可以使用同步控制块或者方法 ),通过调用notify()唤醒线程才能恢复到运行状态

注:1、每个对象都有一个锁来控制同步访问。Synchronized关键字可以和对象的锁交互,来实现线程的同步。

       2、sleep不出让系统资源;wait是进入线程等待池等待,让出系统资源,其他线程可以占用CPU。一般wait不会 加时间限制,因为如果wait线程的运行资源不够,再出来也没用,要等待其他线程调用notify/notifyAll唤 醒等待池中的所有线程,才会进入就绪队列等待OS分配系统资源。sleep(milliseconds)可以用时间指定使它自动唤醒过来,如果时间不到只能调用interrupt()强行打断。

       3、Object类常用的方法有哪些?

ToString()、equals、wait()、notify()、hashcode()

java中如何创建线程池?线程池的作用是什么?

1、如何创建线程池:(说出一两个即可)
  • newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。

  • newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。

  • newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。

    ExecutorService cachedThreadPool = Executors.newCachedThreadPool();

    ExecutorService fixedThreadPool = Executors.newFixedThreadPool(20);

    ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);

    ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();

2、线程池作用(好处):

管理线程和线程复用,减少因频繁创建和销毁线程所消耗的内存,从而实现提高程序执行效率。

数据库配置文件常用的配置参数有哪些?DBCP是什么?为什么要用BCP?

1、数据库配置文件常用的配置参数:

Username、 password、 url、 driver 、initSize、 MaxSize等

2、DBCP:
  • DBCP:数据库连接池,是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。

  • DBCP是Java开源连接池中最常用的一种,它一般应用在数据库使用非常频繁的系统中,可以处理数据库连接的大量请求,是做大型站点的首选数据库配置。

3、使用DBCP好处:

DBCP用来管理连接和复用连接,减少因频繁创建和销毁连接对象所消耗的内存,最终达到提高程序的执行效率。

数据库中对重复的数据进行去重,如何实现?

使用distinct关键字实现去重操作

mysql中如何实现分页查询

使用limit关键字:limit?,?

第一个参数:跳过多少条(即偏移量),第二个参数:每页显示的数据

例如:一页10条数据,要查询第三页的数据?

limit20,10

如何优化数据库的查询效率?

--适当添加索引(索引的作用就是提高查询效率的)

--尽量使用主键查询(最好减少外键关联查询)

--优化sql语句

--使用redis缓存数据库(优点:读写效率10万次/秒 )

Mysql使用二维表存储数据 关系型数据库

Redis使用key – value存储数据 非关系型数据库

转载于:https://www.cnblogs.com/bzbz/p/11580000.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值