四川java面试题目_java十道基础面试题……offer离你又进了一步……

191e000046c67ba05b3c.jpg

41.几个常见的异常?

ArithmeticException 算数异常,被0除

ArrayIndexOutOfBoundsException 数组下标越界异常

NullPointerException 空指针异常

ClassCastException 类型转换异常

42.如何创建一个线程,并启动该线程?

创建线程的方式有两种,分别如下:

方式一:创建一个类,继承Thread类。

重写run()方法。

new 该类对象,并调用start()方法来启动线程

方式二:创建一个类,实现Runnable接口。

重写run()方法

new该类对象,但是Runnable接口没有提供start()方法来启动线程。

利用Thread类的一种够构造方法,将Runnable接口的实现类转换成Thread类的对象,并调用start()方法来启动线程。

43.调用start()方法来启动线程和直接调用run()方法的区别?调用start()方法来执行run()方法里的内容才会实现线程的启动

直接调用run()方法来执行其内容只是普通的方法调用,无法启动线程。

44.多个线程访问同一个方法会怎样?怎么解决?

多个线程访问同一个方法(并发),会造成数据的不同步,加上同步锁可以解决(synchronized)

45.sleep()和wait()的区别

sleep() wait()

来自Thread类 来自Object类

在同步代码块中,如果一个线程是 在同不代码块中,如果一个线程是

调用sleep()方法进入了睡眠,该线 调用wait()方法进入了睡眠,该线程

程会占用该锁,直到睡眠结束,才 会直接让出该锁,允许其他线程在

允许其它线程进入代码块。 睡眠中进入代码块

调用sleep()方法的线程会根据 调用wait()方法的线程,必须使用

设定的时间自己苏醒 notify()方法来唤醒该线程

46.什么是死锁?怎么解决?死锁是指在两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种堵塞现象,若无外力作用,所有线程都无法进行下去。因此称系统处于死锁状态或者系统产生了死锁,这些永远在互相等待的进程称为死锁进程。

加大同步锁的力度来解决死锁问题。

47.利用JDBC技术访问连接操作数据库的步骤?加载驱动

class.forName();

获取连接对象

Connection conn = DriverManager.getConnection();

预编译sql语句/通过连接对象获取会话

PreparedStatement pstm = conn.prepareStatement(sql);

执行sql语句

①增删改时:

int result = pstm.executeUpdate();

②查询时:

ResultSet resultSet = pstm.executeQuery();

关闭资源

48.decode、nvl、nvl2的区别?nvl

nvl(a,b) 判断a是否为null,若为null则将b的值赋给a。

nvl2

nvl(a,b,c) 判断a与b是否为null,若为null则将b的值赋给a,否则将c的值赋给a。

decode

decode(a,b,c,d)判断a与b是否相等,若相等则将c的值赋给a,否则将d的值赋给a。

49.什么是聚合函数(分组函数)?其特点是什么?

像max()、min()、sum()、count()、avg()这样将多行数据统计返回一行数据的函数为聚合函数。

聚合函数(分组函数)的特点是,多行返回一行,并且聚合函数不能识别null值。

50.leftjoin 和 innerjoin的区别?

leftjoin:返回以左表为主的所有数据和右表连接字段相等的内容

innerjoin:返回两个表中连接字段相等的内容

待续.........

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值