7.7 SHEIN希音笔试

投的Java工程师岗位,题型为10道单选+5道多选+1道算法题+1道sql题,时长1h

选择题

1.spring事物的传播特性,错误的是:

PROPAGATION_REQUIRED:支持当前事务,如果当前没有事务,就抛出异常。

(应该是:支持当前事务,如果当前没有事务,就新建一个事务)

PROPAGATION_REQUIRED:支持当前事务,如果当前没有事务,就新建一个事务。

PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务形式执行。

PROPAGATION_MANDATORY:支持当前事务,如果当前没有事务,就抛出异常。

PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起。

PROPAGATION_NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

PROPAGATION_NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。

2.下列关于线性链表的叙述中,正确的是:

进行插入和删除时,不需要移动链表中的元素。

3.关于以下程序代码的说明正确的是:

class HasStatic{
    private static int x = 100;
    public static void main(String args[ ]){
        HasStatic hs1 = new HasStatic();
        hs1.x++;
        HasStatic hs2 = new HasStatic();
        hs2.x++;
        hs1=new HasStatic();
        hs1.x++;
        HasStatic.x--;
        System.out.println( "x=" +x);
    }
}

 4.下列不属于hash碰撞解决方法的是:

线性探测、单旋转法、二次探测、拉链法

5.系统为某进程分配了4个页框,该进程已访问的页号序列为2,0,2,9,3,4,2,8,2,4,8,4,5。若访问的下一页的页号为7,依据LRU算法,应淘汰的页的页号是:

2

6.进程P1和P2,资源A和B,进程对资源的操作定义如下:读取资源A:rA;读取资源B:rB;写入资源A:wA;写入资源B:wB。同时规定,进程读取某一资源前,必须加上共享锁,写入某一资源前必须加上排他锁;资源在被进程加共享锁时,可以被其他进程继续加共享锁,但不能加排他锁;资源在被进程加排他锁时,其他进程无法加锁。进程完成全部操作后释放锁。进程P1和进程P2并发执行,如下哪种运行序列可能会出现死锁_____。

产生死锁的四个必要条件:

资源独占、不可剥夺、请求和保持、循环等待。

7.判断var1.intValue()之类的输出结果

8.下面关于HTTP/2的描述错误的是:

D描述的是HTTPS

9. mysql 数据库有选课表 learn(student_id int,course_id int),字段分别表示学号和课程编号, 现在想获取每个学生所选课程的个数信息,请问如下的 sql 语句正确的是( )

10.以下数据结构哪一个是非线性结构?

线性表、队列、二叉树、栈

11.解决hash冲突的方法描述错误的有?

12.关于下面一段代码,以下说法正确的是: ( ) 

public class Test {
private synchronized void a() {
}
private void b() {
synchronized (this) {
}
}
private synchronized static void c() {
}
private void d() {
synchronized (Test.class) {
}
}
}

AC 

修饰非静态方法 锁的是this 对象;    修饰静态方法 锁的是class对象

13.如下哪些sql语句查询能较好的利用索引

14.两个线程并发执行以下代码,假设a是全局变量,那么以下输出___哪个是可能的?

int a=1;
void foo(){
    ++a;
    printf("%d", a);
}

32 23 33 22 都有可能

15.JDK17包含以下哪些特性 ?

算法题

字符串解码

lc原题 辅助栈法

class Solution {
    public String decodeString(String s) {
        StringBuilder res = new StringBuilder();
        int multi = 0;
        LinkedList<Integer> stack_multi = new LinkedList<>();
        LinkedList<String> stack_res = new LinkedList<>();
        for(Character c : s.toCharArray()) {
            if(c == '[') {
                stack_multi.addLast(multi);
                stack_res.addLast(res.toString());
                multi = 0;
                res = new StringBuilder();
            }
            else if(c == ']') {
                StringBuilder tmp = new StringBuilder();
                int cur_multi = stack_multi.removeLast();
                for(int i = 0; i < cur_multi; i++) tmp.append(res);
                res = new StringBuilder(stack_res.removeLast() + tmp);
            }
            else if(c >= '0' && c <= '9') multi = multi * 10 + Integer.parseInt(c + "");
            else res.append(c);
        }
        return res.toString();
    }
}

Mysql

某乎问答11月份日人均回答量

现有某乎问答创作者回答情况表answer_tb如下(其中answer_date表示创作日期、author_id指创作者编号、issue_id表示问题id、char_len表示回答字数):

请你统计11月份日人均回答量(回答问题数量/答题人数),按回答日期排序,结果保留两位小数,以上例子的输出结果如下:

select answer_date,
       round(count(issue_id)/count(DISTINCT author_id),2) per_num
from answer_tb
where month(answer_date) = 11
group by answer_date
select answer_date, round(count(*)/count(distinct author_id), 2) 
from answer_tb 
group by answer_date 
order by answer_date;

  • 18
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值