每日一刷与题解:Java基础知识+sql
Posted !0 !
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一刷与题解:Java基础知识+sql相关的知识,希望对你有一定的参考价值。
Java基础知识题
答案:C
题解:重载是同名不同参,其余的都没有要求
答案:B
题解:&&是短路与,所以x>50是false,就直接返回false了,后面的语句都不会进行了。
答案:B
题解:1、如果是本类使用,可以直接就用静态变量名。
2、如果是其他类使用,可以使用类名来调用,也可以创建一个实例对象来调用。
3、如果静态变量所在的类是静态类,那么不管在本类里或者在其他外部类,都可以直接使用静态变量名。
答案:B
题解:采用命令行“ java Test one two three ”调用,其中Test为调用的方法,而one two three则为Test方法里面main函数的参数;System.out.println(args[0]);表示输出第一个元素,故为one;
答案:D
题解:PC寄存器就是程序计数器
答案:D
题解:
答案:A
题解:
答案:C
题解:17的二进制为10001,5的二进制位101,^
是异或操作,所以答案位20
答案:D
题解:不管怎样线程对a的操作就是+1后-2
1.线程1执行完再线程2执行,1-2+1-2=-2
2.线程1和2同时+1,再-2不同时,1-2-2=-3
3.线程1和2不同时+1,同时-2,1+1-2=0
4.线程1和2既同时+1又同时-2,1-2=-1
没有结果为1的情况
答案:BCF
题解:B、浮点数默认double,所以float类型要在数值后面加f
C、无语,居然是没加分号
D、这个是对的,会自动装箱变成object的子类
F、没看到前面是Double包装器类型,包装器类型要在后面加上d,才能自动装箱
SQL语句
//我们可以先查找入职时的工资,然后再查找现在的工资,最后用现在的工资减去入职时的工资就是工资涨幅
//入职时的工资
select e.emp_no,s.salary
from employees e
left join salaries s
on e.emp_no = s.emp_no
and e.hire_date = s.from_date
//现在的工资
select e.emp_no,s.salary
from employees e
left join salaries s
on e.emp_no = s.emp_no
where s.to_date = '9999-01-01'
//合并
select b.emp_no,(b.salary - a.salary) growth
from (
select e.emp_no,s.salary
from employees e
left join salaries s
on e.emp_no = s.emp_no
and e.hire_date = s.from_date
) a -- 入职工资表
join (
select e.emp_no,s.salary
from employees e
left join salaries s
on e.emp_no = s.emp_no
where s.to_date = '9999-01-01'
) b -- 现在工资表
on a.emp_no = b.emp_no
order by growth;
//三表连接
select d.dept_no, d.dept_name, count(s.salary) sum
from departments d
join dept_emp e
on d.dept_no = e.dept_no
join salaries s
on s.emp_no = e.emp_no
group by d.dept_no
having count(s.salary)
order by d.dept_no;
SQL23:所有员工的薪水按照salary进行按照1-N的排名
//我们先进行非等值自连接,然后对员工号分组排序
select a.emp_no, a.salary, count(distinct b.salary)
from salaries a,salaries b
where a.to_date = '9999-01-01'
and b.to_date = '9999-01-01'
and a.salary <= b.salary
group by a.emp_no
order by a.salary desc, a.emp_no;
//先子查询,找到所有不是经理的员工,然后再三表连接
select d.dept_no, e.emp_no, s.salary
from (
select emp_no
from employees
where emp_no not in (
select emp_no
from dept_manager
)
) e
join dept_emp d
on e.emp_no = d.emp_no
join salaries s
on e.emp_no = s.emp_no;
SQL25:获取员工其当前的薪水比其manager当前薪水还高的相关信息
select e.emp_no,m.emp_no manager_no,s1.salary emp_salary,s2.salary manager_salary
from dept_emp e,dept_manager m,salaries s1,salaries s2
where e.dept_no = m.dept_no //查找员工和经理是否在同一个部门
and e.emp_no = s1.emp_no //员工的工资
and m.emp_no = s2.emp_no //经理的工资
and s1.salary > s2.salary //员工的工资大于经理的工资
and s2.to_date = '9999-01-01'
and s1.to_date = '9999-01-01';
以上是关于每日一刷与题解:Java基础知识+sql的主要内容,如果未能解决你的问题,请参考以下文章