三七互娱Java开发笔试题(2019春季宣讲会)

1.写出下面java程序的运行结果

class A {
	static{
		System.out.println("1");
	}
	public A(){
		System.out.println("2");
	}
}
class B extends A{
	static{
		System.out.println("a");
	}
	public B(){
		System.out.println("b");
	}
}
public class HelloWorld{
    public static void main(String []args) {
       A a = new B();
		a = new B();
    }
}

答案:1a2b2b(省略换行)

2.列举Java语言8种基本数据类型及他们在内存中所占字节数

答案:

基本数据类型 所占字节数
byte 1
char 2
short 2
int 4
long 8
float 4
double 8
boolean 1

3.简述下列Linux Shell命令的用途

ps、top、free、df、du、tail、grep

答案:
ps:查看系统各进程执行状况的命令
top:显示系统资源命令,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
free:显示内存状态的命令
df:查看各磁盘空间文件系统和使用情况
du:查看各文件或者目录大小使用命令
tail:依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档案内容。
grep:用于查找文件里符合条件的字符串。

4.描述HashMap和Hashtable以及HashMap和CurrentHashMap的区别

答案:HashMap效率高,但是在多线程环境下线程不安全

HashTable线程安全,但是效率低,因为HashTable内部是采用synchronized来保证线程安全的,每次同步执行的时候要锁住整个结构,但是在线程竞争激烈的情况下HashTable的效率下降得很快

ConcurrentHashMap采用锁分段的技术,它对数据集进行分段,每段竞争一把锁,不同数据段的数据不存在锁竞争,从而有效提高了并发访问效率;可以理解为把一个大的Map拆分为N个小的HashTable,在put或者get的时候,根据key.hashCode()来决定把key放在哪一个HashTable中,在源码中一个小的HashTable就是一个Segment

总的来说,ConcurrentHashMap就是一个线程安全的HashMap,而且还保证一定的并发访问效率

5.有如下表结构 表名game_order

coin 元宝数 int
create_at 充值时间 bigint
money 充值金额 float
uid 账号 int
1)请写出SQL查询2019-02-15日充值前10名的账号
select uid from game_order where create_at = 20190215 order by money desc limit 0,10

2)请用一条SQL写出各区间充值统计信息,查询结果如下

1-500元 500-1000元 1000-5000元 5000元以上
1人 2人 2人 8人
select sum(case when money>=0 and money<=500 then 1 else 0 end) as '1-500',sum(case when money>500 and money<=1000 then 1 else 0 end) as '500-1000',sum(case when money>1000 and money<=5000 then 1 else 0 end) as '1000-5000',sum(case when money>5000 then 1 else 0 end) as '5000元以上' from game_order

6.列举以下四种SQL JOIN的意义

INNER JOIN:返回“表名1”的全部行,对于“表名2”中,不满足on条件的记录用空值替换。
LEFT JOIN:返回“表名2”的全部行,对于“表名1”中,不满足on条件的记录用空值替换。
RIGHT JOIN:返回两张表中的所有记录,对于不满足on条件一端的记录用空值替换。
FULL JOIN:只返回两张表中都满足on条件的记录。

7.什么是跨域?如何解决跨域?

参考博客:https://www.cnblogs.com/sexintercourse/p/7011427.html

8.简要说明下列常见HTTP状态码代表的意义

200,302,304,403,404,500,502
参考博客:http://blog.sina.com.cn/s/blog_e77463280102x6j1.html

9.请描述一下cookies,sessionStorage和localStorage的区别

参考博客:https://www.cnblogs.com/pengc/p/8714475.html

10.对于一个足够大的整型数组arr,提供一个方法,计算出最大的N个,请用java代码完成

就是排序算法,代码参考https://mp.csdn.net/mdeditor/88600583#

猜你喜欢

转载自blog.csdn.net/lx8486/article/details/88729359