java面试题

1.Thread类的方法有哪些?
(1)start():启动线程并执行相应的run()方法。
(2)run():子线程要执行的代码放入run()方法中。
(3)currentThread():静态的,调取当前的线程。
(4)getName():获取此线程的名字
(5)setName():设置此线程的名字
(6)yield():调用此方法的线程释放当前CPU的执行权
(7)join():在A线程中调用B线程的join()方法,表示:当执行到此方法,A线程停止执行,直至B线程执行完毕,A线程再接着join()之后的代码执行
(8).isAlive():判断当前线程是否还存活
(9).sleep(long l):显式的让当前线程睡眠l毫秒 (只能捕获异常,因为父类run方法没有抛异常)
(10).线程通信(方法在Object类中):wait() notify() notifyAll()设置线程的优先级(非绝对,只是相对几率大些)(11)getPriority():返回线程优先值
(12) setPriority(int newPriority):改变线程的优先级

2.什么是关系型数据库?什么是非关系型数据库?它们分别有哪些?
1).关系型数据库
关系型数据库是依据关系模型来创建的数据库。
所谓关系模型就是“一对一、一对多、多对多”等关系模型,关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。
关系型数据可以很好地存储一些关系模型的数据,比如一个老师对应多个学生的数据(“多对多”),一本书对应多个作者(“一对多”),一本书对应一个出版日期(“一对一”)
关系模型是我们生活中能经常遇见的模型,存储这类数据一般用关系型数据库
关系模型包括数据结构(数据存储的问题,二维表)、操作指令集合(SQL语句)、完整性约束(表内数据约束、表与表之间的约束)。
常见的关系型数据库:
Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL

2).非关系数据库
非关系型数据库主要是基于“非关系模型”的数据库(由于关系型太大,所以一般用“非关系型”来表示其他类型的数据库)
非关系型模型比如有:
列模型:存储的数据是一列列的。关系型数据库以一行作为一个记录,列模型数据库以一列为一个记录。(这种模型,数据即索引,IO很快,主要是一些分布式数据库)
键值对模型:存储的数据是一个个“键值对”
文档类模型:以一个个文档来存储数据,有点类似“键值对”
常见非关系模型数据库:
列模型:Hbase
键值对模型:redis,MemcacheDB
文档类模型:mongoDB

3.存在i+1<i的数吗?
java中int是32,范围是-2147483648--2147483647,所以是存在i+1<i的。
4.0.6332的数据类型是什么?
java 8中数据类型:byte、float、double、int、long、short、boolean、char
所以是double

5.什么是面向字符的输入流?
字符流是针对字符数据的特点进行过优化的,因而提供一些面向字符的有用特性,字符流的源或目标通常是文本文件。 Reader和Writer是java.io包中所有字符流的父类。由于它们都是抽象类,所以应使用它们的子类来创建实体对象,利用对象来处理相关的读写 操作。Reader和Writer的子类又可以分为两大类:一类用来从数据源读入数据或往目的地写出数据(称为节点流),另一类对数据执行某种处理(称为 处理流)。
面向字符的输入流类都是Reader的子类:
(1)CharArrayReader:从字符数组读取的输入流
(2)BufferedReader:缓冲输入字符流
(3)PipedReader:输入管道
(4)InputStreamReader:将字节转换到字符的输入流
(5)FiterReader:过滤输入流
(6)StringReader:从字符串读取的输入流
(7)LineNumberReader:为输入数据附加行好。
(8)PushbackReader:返回一个字符并把此字符放回输入流。
(9)FileReader:从文件读取的输入流

6.java接口的修饰符有哪些?
接口的方法默认是public abstract
接口中不可以定义变量即定义的变量都要加上final修饰,使之成为常量(没有final修饰的是变量,加上final修饰就会变成常量)。所以接口的属性默认是public static final 常量,且必须赋初值。
所以java接口的修饰符有:public 、 abstract、final

7.什么叫流对象?
Java根据数据流向的不同分为输入流和输出流;
Java根据处理数据类型的不同分为字符流和字节流, 所有输入流类都是抽象类InputStream(字节输入流),或者抽象类Reader(字符输入流)的子类 , 而所有输出流都是抽象类OutputStream(字节输出流)或者Writer(字符输出流)的子类;
InputStream(字节输入流)和Reader(字符输入流)通俗的理解都是读(read);
OutputStream(字节输出流)和Writer(字符输出流)通俗的理解都是写(writer);

8.根据数据和要求给出SQL语句
表名:购物信息(buy_info)
购物人(name) 商品名称(product) 数量(num)
张华 电脑 2
张磊 电视 4
王云 手机 1
张华 手表 2
张磊 书包 5
刘均 水壶 9

(1).给出所有购入商品为两种或两种以上的购物人记录。
select * from buy_info where name in (select name from buy_info group by name having count(*)>=2);

(2)给出购买超过6件商品的购物人记录。
select * from buy_info where name in (select name from buy_info group by name having sum(num)>6);

(3)给出{张}姓购物人的购买商品总数。
select coalesce(name,“总数”),sum(num) from buy_info where name like ‘张%’ group by name WITH ROLLUP;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值