前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >圆通快递社招Java笔试经历(一)

圆通快递社招Java笔试经历(一)

作者头像
MickyInvQ
发布2023-03-17 09:49:06
9030
发布2023-03-17 09:49:06
举报
文章被收录于专栏:InvQ的专栏

一、以下sql在mysql5.7中运行,且设置事务不自动提交 假设有表user,数据为

id

name

sex

age

1

zhangsan

male

12

2

lisi

male

16

3

wangwu

female

22

其中id为自增主键,age上创建有非聚簇索引。现有2个session按一下时间线分别执行sql。

时间线

session1

session2

输出

1

begin;select count(0) from user where age = 16 for update;

A.0 B.1 C.2 D.都不是

2

begin;insert into user(name,sex,age) values (‘zhaoliu’,‘female’,15);commit;

A.执行成功 B.抛出异常 C.阻塞 D.不知道

3

select count(0) from user

A.2 B.3 C.4 D.5

4

commit;

A.执行成功 B.抛出异常 C.阻塞 D.不知道

5

select count(0) from user

A.2 B.3 C.4 D.5

我们首先创建一个表

代码语言:javascript
复制
CREATE TABLE user(
    id int(10) auto_increment not null,
    name varchar(10),
    sex varchar(10),
    age int(10) not null,
    PRIMARY KEY (`id`)
);
代码语言:javascript
复制
insert into user(name,sex,age) values
	('zhangsan','male',12),
('lisi','male',16),
('wangwu','female',22);

版本:

此时两个会话

现在是mysql默认是自动提交的。

我们设置为手动

会话1:

会话2:

在会话1 commit 后,会话2出现了1行生效。

  1. 假设事务隔离级别是ReadCommited,那么输出列的答案分别是?

会话1和会话2 同时设置为ReadCommited。 drop 后重试

直接成功。

  1. 假设事务隔离界别是RepeatableRead,那么输出列的答案分别是? mysql默认就是

所以就是和之前最初默认的一样。

二、以下sql在mysql 5.7中执行,且设置事务不自动提交

假设有表user,数据为

id

name

sex

1

zhangsan

male

2

lisi

male

3

wangwu

female

现在有3个session按以下时间线分别执行sql:

时间线

session1

session2

session3

输出

1

begin;select count(*) from user where id =4;

A.0 B.1 C.2 D.都不是

2

begin;insert into user(id,name sex) values ( 4,‘zhaoliu’,‘female’);

A.执行成功 B.抛出异常 C.阻塞 D.都可能

3

select count(*) from user where id =4

A.0 B.1 C.2 D.都可能

4

commit;

A.执行成功 B.抛出异常 C.阻塞 D.不知道

5

select count(*) from user where id =4

A.0 B.1 C.2 D.都不是

6

select count(*) from user where id =4

A.0 B.1 C.2 D.都不是

7

commit;

A.执行成功 B.抛出异常 C.阻塞 D.不知道

代码语言:javascript
复制
CREATE TABLE user(
    id int(10) auto_increment not null,
    name varchar(10),
    sex varchar(10),
    PRIMARY KEY (`id`)
);
代码语言:javascript
复制
insert into user(name,sex) values
	('zhangsan','male'),
('lisi','male'),
('wangwu','female');

重新设置为默认的

  1. 假设事务隔离级别是ReadCommited,那么输出列的答案分别是? AAAABBA
  2. 假设事务隔离级别是ReadUnCommitted,那么输出列的答案分别是? AABABBA

三、下面那种是正确的Restful规范的API

A. /getArticles , 请求类型GET B. /articles ,请求类型GET C. /articles/get , 请求类型GET D. /get/articles, 请求类型GET

答案:B

四、如果有一个Event(事件)类型,有3个属性,时间,描述,责任人,主键,现在以时间、描述、责任人作为参数来定义一个创建event的接口,以下哪种定义符合restful规范: A. /events/create, 请求类型POST B. /events/creat, 请求类型PUT C. /events, 请求类型PUT D. /events/,请求类型POST

答案:D

五、以下代码多线程执行时有何问题,应该如何修改?

代码语言:javascript
复制
public class CarFactory{
	public staic CarFactory carFactory;
	private CarFactory(){};
	public static CarFactory getOne(){
		if(carFactory==null){
			carFactory = new CarFactory();
		}
		return carFactory;
	}
}

这个是考察DCL ,单例模式。

代码语言:javascript
复制
/**
 * @description: 单例(懒汉式 )
 **/
public class Singleton {
    //加入volatile防止指令重排序,内存可见
    private volatile static Singleton singleton;

    private Singleton() {
    }

    public static Singleton getSingleton() {
        if (singleton == null) {
            synchronized (Singleton.class) {
                if (singleton == null) {
                    singleton = new Singleton();
                }
            }
        }
        return singleton;
    }
}

六、编程题::打印1到100000之间的数字,规则如下: 1) 每个数字占一行 2) 如果该数字能被3整除,则不打印数字本身,打印“中”字: 3) 如果该数字能被5整除,则不打印数字本身,打印“国”字; 4) 如果该数字能被7整除,则不打印数字本身,打印“人”字; 5) 如果该数字能被 3,5,7中多个数字整除,则打印相应的多个汉字,这多个汉字也在同一行(如能同时被 3,5 整除,打印“中国”,同时被 3,7整除,打印“中人”,同时被5,7整除,打印“国人”,同时被3,5,7整除,打印“中国人”) 6) 如果该数字不能被 3,5,7中任何一个数字整除,才打印数字本身 程序输出如下:

代码语言:javascript
复制
1
2
中
4
国
中
人
8
中
国
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档