「面试javasql」面试java开发工程师一般问什么问题

博主:adminadmin 2022-12-04 21:03:08 63

今天给各位分享面试javasql的知识,其中也会对面试java开发工程师一般问什么问题进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java面试题的sql查询题

这个根据不同企业,不同设计师的命名规范来的,通常设计师都希望看其名知其意

面试Java开发时问到高并发怎么处理的,还有sql优化有哪些办法,有哪位大神知道啊,新手!!

Java开发高并发的处理方法:

最基础的地方做起,优化我们写的代码,减少必要的资源浪费

避免频繁的使用new对象,对于整个应用只需要存在一个实例的类,我们可以使用单例模式。对于String连接操作,使用      StringBuffer或StringBuilder,对于工具类可以通过静态方法来访问。

避免使用错误的方式,尽量不用instanceof做条件判断。使用java中效率高的类,比如ArrayList比Vector性能好。

图片服务器分离

对于web服务器来说,图片是最消耗资源的,于是我们有必要把图片与页面进行分离,我们把图片放到独立的图片服务器。这样的架构可以降低提供页面访问请求的服务器系统压力,并且可以保证系统不会因为图片的问题而崩溃。在图片服务器上,我们可以对不同的配置进行优化。

缓存

具体接触过的缓存机制是hibernate的缓存机制。为了避免每次都向数据库中取得数据,我们把用户常常访问到的数据放到内存中,甚至缓存十分大的时候我们可以把内存中的缓存放到硬盘中。还有高级的分布式缓存数据库使用,都可以增加系统的抗压力。

分批传送

在做某项目的时候,一次传递的参数太多,而且数据库规定一次最多传递的参数最多是三万条,当时有五万条记录,那怎么传送呢?最终是分批传送,电梯里一次乘不下那么多的人,会报超重的bug,那就分批把人送上去。

还有一次在考试系统中,如果那么多的考试人员同时提交到数据库中,数据库的压力增大,有时会被down掉,当时采用的方法是使用ajax异步传输,没有等待考生点击提交按钮的时候,就把考生的答案自动提交,这样也避免了突然断电考生前面做过的题出现丢失的现象。

DB优化

在数据库设计的时候就要考虑到后期的维护,数据库三范式是我们设计数据库索要遵循的原则。

索引的建立:建立索引要适当,如果一个表经常用来被查询,对于增加和修改很少被用到,我们就可以为这个表建立索引,因为对于增加和修改和删除操作时,我们对索引的维护要大大超过索引给我们带来的效率。

表字段的类型选择要恰当。包括字段的长度、类型等,要根据实际存储的数据进行选择,长度不要过长,否则会影响效率。

外键要慎用,因为主键代表这一张表,而外键代表一群表,对表之间进行了关联,在删除修改等需要我们关联。

在数据库操作上。 尽量使用prepareStatement,少用Statement,因为PrepareStatement是进行预编译的。

connection设置为readOnly,Connection是对书库连接,属于重量级,我们使用即可。

连接池的使用,我们可以修改数据库默认的连接数。

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和SQL面试题

(2)查询B列中长度大于2的记录,结果为

A B

1 abc

可能么? 1对应a 而不是abc

-- 生成测试数据: @T

DECLARE @T TABLE (A INT,B VARCHAR(3))

INSERT INTO @T

SELECT 1,'a' UNION ALL

SELECT 2,'b' UNION ALL

SELECT 3,'abc' UNION ALL

SELECT 4,'c' UNION ALL

SELECT 5,'a' UNION ALL

SELECT 6,'b' UNION ALL

SELECT 7,'ba'

--SQL查询如下:

select min(A) as A,B from @T group by B having count(*) 1

select * from @T where len(B) 2

select * from @T where B like '%A%' and B like '%B%'

/*

A B

----------- ----

1 a

2 b

(2 行受影响)

A B

----------- ----

3 abc

(1 行受影响)

A B

----------- ----

3 abc

7 ba

(2 行受影响)

*/

java面试SQL题,跪求大神解答

SELECT TOP 10 u.name,u.age,allin =isnull((SELECT sum(t.number*p.buyprice)  FROM TEST_PRODECT p,TEST_TREED t

WHERE p.type = t.ptype AND t.uid=u.userid AND t.BUY_OR_SALE ='BUY'),0),

allout=isnull((SELECT sum(t.number*p.saleprice)  FROM TEST_PRODECT p,TEST_TREED t

WHERE p.type = t.ptype AND t.uid=u.userid AND t.BUY_OR_SALE ='SALE'),0)

,

realin = (isnull((SELECT sum(t.number*p.buyprice)  FROM TEST_PRODECT p,TEST_TREED t

WHERE p.type = t.ptype AND t.uid=u.userid AND t.BUY_OR_SALE ='BUY'),0) - isnull((SELECT sum(t.number*p.saleprice)  FROM TEST_PRODECT p,TEST_TREED t

WHERE p.type = t.ptype AND t.uid=u.userid AND t.BUY_OR_SALE ='SALE'),0))

FROM TEST_USER u

ORDER BY (isnull((SELECT sum(t.number*p.buyprice)  FROM TEST_PRODECT p,TEST_TREED t

WHERE p.type = t.ptype AND t.uid=u.userid AND t.BUY_OR_SALE ='BUY'),0) - isnull((SELECT sum(t.number*p.saleprice)  FROM TEST_PRODECT p,TEST_TREED t

WHERE p.type = t.ptype AND t.uid=u.userid AND t.BUY_OR_SALE ='SALE'),0)) DESC

第2题答案

经过测试无误

关于面试javasql和面试java开发工程师一般问什么问题的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-04,除非注明,否则均为首码项目网原创文章,转载请注明出处。