每日一题:java基础与sql

Posted !0 !

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一题:java基础与sql相关的知识,希望对你有一定的参考价值。

JAVA基础


题解:A:静态成员随类的加载而加载,这个时候对象都还没有,this代表当前对象,所以this不能用于static方法中
C:还可以调用静态变量
D:可以调用实例方法,使用【new 类名().实例方法名】调用


题解:类的加载包括:加载,验证,准备,解析,初始化。
A:生成java.lang.Class对象是在加载时进行的。生成Class对象作为方法区这个类的各种数据的访问入口。
B:既然是对象成员,那么肯定在实例化对象后才有。在类加载的时候会赋予初值的是类变量,而非对象成员。
C:这个会调用。可以用反射试验。
D:类方法解析发生在解析过程。



题解:1.静态语句块中x为局部变量,不影响静态变量x的值
2.x和y为静态变量,默认初始值为0,属于当前类,其值得改变会影响整个类运行。
3.java中自增操作非原子性的
main方法中:

  • 执行x–后 x=-1
  • 调用myMethod方法,x执行x++结果为-1(后++),但x=0,++x结果1,x=1 ,则y=0
  • x+y+ ++x,先执行x+y,结果为1,执行++x结果为2,得到最终结果为3


题解:A,start是开启线程,run是线程的执行体,run是线程执行的入口。
B,CyclicBarrier和CountDownLatch都可以让一组线程等待其他线程。前者是让一组线程相互等待到某一个状态再执行。后者是一个线程等待其他线程结束再执行。
C,Callable中的call比Runnable中的run厉害就厉害在有返回值和可以抛出异常。同时这个返回值和线程池一起用的时候可以返回一个异步对象Future。
D,start是把线程从new变成了runnable


题解:

  • 序列化:将数据结构转换称为二进制数据流或者文本流的过程。序列化后的数据方便在网络上传输和在硬盘上存储。
  • 反序列化:与序列化相反,是将二进制数据流或者文本流转换称为易于处理和阅读的数据结构的过程。

本质其实还是一种协议,一种数据格式,方便数据的存储和传输。


题解:ArrayList插入和现有项的删除开销很大,除非在末端
LinkedList插入和删除开销很小
ArrayList和LinkedList都是实现了List接口
HashMap可以用null值和空字符串作为K,不过只能有一个

sql语句

SQL64:找到每个人的任务

select p.id,p.name,t.content
from person p 
left join task t
on p.id = t.person_id;

SQL65:异常的邮件概率

select email.date, round(
    sum(case email.type when'completed' then 0 else 1 end)*1.0/count(email.type),3
) as p
from email
join user u1 
on (email.send_id=u1.id and u1.is_blacklist=0)
join user u2 
on (email.receive_id=u2.id and u2.is_blacklist=0)
group by email.date 
order by email.date;

SQL66:牛客每个人最近的登录日期(一)

select user_id,max(date)
from login
group by user_id 
order by user_id

以上是关于每日一题:java基础与sql的主要内容,如果未能解决你的问题,请参考以下文章

每日一题:java基础

每日一题:java基础

每日一题:java基础

每日一题:java基础

每日一题:java基础

每日一题:java基础