java 、oracle 面试题求答案??
select count(*) from (select 部门,count(*) as cnt from TA where ((职务 = ‘开发工程师’ and 部门 like ‘%开发部%’ ) or (职务 = ‘维护工程师’ and 部门 like ‘%维护部%’ ) ) and 薪水10000 group by 部门) aa where aa.cnt10
作为java程序员笔试或者面试oracle一般考些什么
1.抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象 并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
2. 继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的 类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继 承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
3.封装:
封装是 把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象 通过一个受保护的接口访问其他对象。
4. 多态性:
多态性是指允许不同类的对象对同一消息 作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
5、 String是最基本的数据类型吗?
基本数据类型包括byte、int、char、long、float、double、 boolean和short。
java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节 省空间,我们应该用StringBuffer类
6、int 和 Integer 有什么区别
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每 个原始类型提供了封装类。
原始类型 封装类
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问 题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。
7、String 和StringBuffer的区别
JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数 值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型 地,你可以使用 StringBuffers来动态构造字符数据。
8、运行时异常与一般异常有何异同?
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚 拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未 被捕获的运行时异常。
9、说出Servlet的生命周期,并说出Servlet和CGI的 区别。
Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法 (doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而 CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
10、说出 ArrayList,Vector, LinkedList的存储性能和特性
ArrayList 和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元 素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差, 而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
java,oracle面试题,如下,sql怎么写
如题我先进行分析:
第一句话中 按月找出平均 填写时间大于3天的人员信息 :
那么可用理解为 根据月份查找 员工平均延迟填写日期大于3天的 人员信息。
第二句话一个人员的日志填写日期有多条则取最早的一条,如果有一天未填写,则取系统当前时间,不含小时。
以上这句话需要注意两点 第一点,取最早的一条此处需要用到 ROW_NUMBER() OVER() 以及未填写 则取系统当前时间 不含小时 那么取值格式应为yyyy-mm-dd此处需要处理格式。
根据以上分析提供如下SQL: 注:(以下SQL已ORACLE为例)
–创建临时表 存储数据
with emp_log as(
select 1 as empno ,’张一’ as empname, ‘工作内容1′ as workcontent, date’2017-03-20′ as begdate, date’2017-03-23’ as entrydate, 1 as num from dual
union all
select 1 as empno ,’张一’ as empname, ‘工作内容2′ as workcontent, date’2017-03-20′ as begdate, date’2017-03-23’ as entrydate, 2 as num from dual
union all
select 1 as empno ,’张一’ as empname, ‘工作内容3′ as workcontent, date’2017-03-20′ as begdate, date’2017-03-24’ as entrydate, 5 as num from dual
union all
select 1 as empno ,’张一’ as empname, ‘工作内容1′ as workcontent, date’2017-03-24′ as begdate, date’2017-03-30’ as entrydate, 8 as num from dual
union all
select 2 as empno ,’张二’ as empname, ‘工作内容2 1′ as workcontent, date’2017-03-20′ as begdate, date’2017-03-30’ as entrydate, 8 as num from dual
union all
select 2 as empno ,’张二’ as empname, ‘工作内容2 2′ as workcontent, date’2017-03-25′ as begdate, date’2017-03-28’ as entrydate, 8 as num from dual
union all
select 3 as empno ,’张三’ as empname, ‘工作内容3 1′ as workcontent, date’2017-03-20’ as begdate, null as entrydate, null as num from dual
union all
select 3 as empno ,’张三’ as empname, ‘工作内容3 2′ as workcontent, date’2017-03-20’ as begdate, null as entrydate, null as num from dual
union all
select 4 as empno ,’张四’ as empname, ‘工作内容4 2′ as workcontent, date’2017-03-25′ as begdate, date’2017-03-28’ as entrydate, 8 as num from dual
)
select * from (
select empno,empname,sum(num) num,sum(yanci)/count(empno) pingjunyanci –获取人员当月总延迟数 除去 当月人员 每日的打开数 计算出当月每天的平均延迟天数
from (select ROW_NUMBER() OVER(PARTITION BY e.empno,e.begdate ORDER BY e.empno,e.begdate) AS RN,–排序获取当天有多条记录 并在后面条件中获取第一条
e.empno,e.empname,
e.workcontent,e.begdate,
e.entrydate,
e.num,
(nvl( e.entrydate,to_date(to_char(sysdate, ‘yyyy-mm-dd’), ‘yyyy-mm-dd’) )-begdate) as yanci –判断如果没有填写结束日期 那么以系统当前日期进行运算 延迟日期
from emp_log e) e1
where e1.rn=1 –获取第一条
and to_char(begdate,’yyyy-mm’) = ‘2017-03’ –可用的月份条件
group by empno,empname,num order by empno –根据人员工号 、人员姓名分组汇总
) e2 where e2.pingjunyanci3;
— 分析不易忘认真阅读后采纳,有其他问题请追问我。
java高手请进 +oracle 几道题
1、create view view_name as select 书名、作者、书价和分类号 where 书价between 15 and 25 order by 分类号
2、select 姓名,sum(decode(科目,’语文’,成绩,0)) 语文,sum(decode(科目,’数学’,成绩,0)) 数学,sum(decode(科目,’英语’,成绩,0)) 英语
from students group by 姓名
3、create or replace function F_RETURN_STR(str varchar2,
len number,
c char) return varchar2 is
rstr varchar2(100);
begin
if length(str) len then
rstr := lpad(str, len, c);
else
rstr := str;
end if;
return rstr;
exception
when others then
dbms_output.put_line(sqlerrm);
end
求大神解决ORACLE java题目
Oracle好像没有这方面的功能。如果考虑效率的话,你可以使用C语言来写这部分定时导出程序。或者使用java(或其它语言)把数据导出为.csv格式的,纯文本格式,效率应该不会慢。
oracle .java 面试题,如下图,怎么写?
1.1) select max(e.sal), min(e.sal) from emp e group by e.deptno;
1.2) select max(e.sal), min(e.sal) from emp e
where e.job = ‘CLERK’ group by e.deptno;
1.3) select e.ename, e,deptno, e.sal from emp
order by e.deptno desc , e.sal asc
2.1) select s.stuid, s.name, sum(s.core) total_score
from stuscore s group by s.stuid ,s.name order by total_score desc
2.2) select s1.subject, s2.* from stuscore s1
join (select s.stuid, s.name, max(s.score) max_score
from stuscore s group by s.stuid, s.name) s2
on s1.score = s2.max_score and s1.stuid = s2.stuid
2.3) select avg(s.score) avgscore ,s.stuid,s.name
from stuscore s group by s.stuid,s.name
2.4) select *from (SELECT s.name,s.stuid,s.subject,s.score,
row_number() OVER(PARTITION BY s.subject ORDER BY s.score desc) e FROM stuscore s)
t where e = 2