-- 题库数据插入脚本
-- 共100道题，选择题70道（分值2-3分），简答题30道（分值4-5分）
-- 组合示例：14道选择题(3分)+6道简答题(5分)=42+30=72分；20道选择题(3分)+8道简答题(5分)=60+40=100分

USE exam;

-- 清空已有数据（可选）
-- TRUNCATE TABLE question;

-- 选择题（70道）- 35道3分，35道2分
INSERT INTO question (title, type, answer_a, answer_b, answer_c, answer_d, r_answer, score) VALUES
('Java中，以下哪个关键字用于定义类？', 1, 'class', 'interface', 'extends', 'implements', 'A', 3),
('Python中，列表推导式的语法是？', 1, '[x for x in iterable]', '(x for x in iterable)', '{x for x in iterable}', '<x for x in iterable>', 'A', 2),
('HTTP协议默认使用的端口号是？', 1, '80', '8080', '443', '3306', 'A', 3),
('MySQL中，用于删除表的命令是？', 1, 'DELETE TABLE', 'DROP TABLE', 'REMOVE TABLE', 'CLEAR TABLE', 'B', 2),
('CSS中，用于设置背景颜色的属性是？', 1, 'background-color', 'bgcolor', 'color', 'background', 'A', 3),
('JavaScript中，以下哪个不是原始数据类型？', 1, 'String', 'Number', 'Object', 'Boolean', 'C', 2),
('Spring Boot中，主类上的核心注解是？', 1, '@SpringApplication', '@SpringBootApplication', '@EnableAutoConfiguration', '@ComponentScan', 'B', 3),
('Git中，用于提交代码的命令是？', 1, 'git push', 'git commit', 'git add', 'git pull', 'B', 2),
('Linux中，查看当前目录的命令是？', 1, 'ls', 'cd', 'pwd', 'dir', 'C', 3),
('HTML中，用于定义超链接的标签是？', 1, '<link>', '<a>', '<href>', '<url>', 'B', 2),
('Java中，String类的equals方法用于？', 1, '比较引用', '比较内容', '赋值', '连接字符串', 'B', 3),
('数据库中，ACID特性不包括？', 1, 'Atomicity', 'Consistency', 'Isolation', 'Distribution', 'D', 2),
('Python中，len函数的作用是？', 1, '计算长度', '计算总和', '计算平均值', '计算最大值', 'A', 3),
('Redis是一种？', 1, '关系型数据库', '内存数据库', '文档数据库', '图数据库', 'B', 2),
('Docker中，用于构建镜像的命令是？', 1, 'docker run', 'docker build', 'docker pull', 'docker push', 'B', 3),
('Java中，以下哪个集合类是线程安全的？', 1, 'ArrayList', 'HashMap', 'Vector', 'HashSet', 'C', 2),
('Maven中，用于定义项目依赖的文件是？', 1, 'build.xml', 'pom.xml', 'config.xml', 'project.xml', 'B', 3),
('JavaScript中，===运算符的作用是？', 1, '赋值', '相等比较', '严格相等比较', '不等于', 'C', 2),
('Linux中，查看文件内容的命令是？', 1, 'open', 'cat', 'view', 'show', 'B', 3),
('HTTP状态码404表示？', 1, '服务器错误', '未授权', '未找到', '重定向', 'C', 2),
('Java中，final关键字不能用于修饰？', 1, '类', '方法', '变量', '接口', 'D', 3),
('Python中，def关键字用于？', 1, '定义变量', '定义函数', '定义类', '定义模块', 'B', 2),
('MySQL中，主键的特点是？', 1, '可以为空', '可以重复', '唯一且非空', '自动生成', 'C', 3),
('Vue.js中，用于数据绑定的指令是？', 1, 'v-if', 'v-for', 'v-model', 'v-bind', 'C', 2),
('Nginx主要用于？', 1, '数据库服务器', 'Web服务器/反向代理', '缓存服务器', '消息队列', 'B', 3),
('Java中，异常处理的关键字不包括？', 1, 'try', 'catch', 'throw', 'error', 'D', 2),
('CSS中，盒模型不包括？', 1, 'content', 'padding', 'border', 'layer', 'D', 3),
('Spring中，依赖注入的方式不包括？', 1, '构造器注入', 'Setter注入', '接口注入', '字段注入', 'C', 2),
('Git中，创建新分支的命令是？', 1, 'git branch', 'git checkout', 'git switch', '以上都可以', 'D', 3),
('Python中，导入模块的关键字是？', 1, 'include', 'import', 'using', 'require', 'B', 2),
('数据库中，用于排序的关键字是？', 1, 'GROUP BY', 'ORDER BY', 'SORT BY', 'ARRANGE BY', 'B', 3),
('JavaScript中，数组的push方法作用是？', 1, '删除末尾元素', '在末尾添加元素', '在开头添加元素', '删除开头元素', 'B', 2),
('Linux中，修改文件权限的命令是？', 1, 'chown', 'chmod', 'chgrp', 'perm', 'B', 3),
('HTML5中，用于本地存储的API是？', 1, 'cookie', 'localStorage', 'session', 'cache', 'B', 2),
('Java中，接口可以包含？', 1, '构造方法', '静态方法（Java8+）', '实例变量', '普通方法体（Java7）', 'B', 3),
('MongoDB是一种？', 1, '关系型数据库', '文档型NoSQL数据库', '键值对数据库', '列族数据库', 'B', 2),
('Kafka主要用于？', 1, '数据存储', '消息队列/流处理', '负载均衡', '缓存', 'B', 3),
('Python中，列表和元组的区别是？', 1, '列表有序，元组无序', '列表可变，元组不可变', '列表可以重复，元组不可以', '没有区别', 'B', 2),
('CSS中，Flex布局的主轴方向默认是？', 1, 'row', 'column', 'row-reverse', 'column-reverse', 'A', 3),
('Java中，synchronized关键字用于？', 1, '继承', '多态', '线程同步', '异常处理', 'C', 2),
('MySQL中，JOIN操作的作用是？', 1, '删除数据', '更新数据', '连接多表查询', '插入数据', 'C', 3),
('React中，用于状态管理的Hook是？', 1, 'useEffect', 'useState', 'useContext', 'useReducer', 'B', 2),
('Linux中，查找文件的命令是？', 1, 'grep', 'find', 'locate', 'search', 'B', 3),
('HTTP状态码500表示？', 1, '客户端错误', '服务器内部错误', '未授权', '禁止访问', 'B', 2),
('Java中，abstract类不能？', 1, '有构造方法', '有抽象方法', '直接实例化', '有成员变量', 'C', 3),
('Python中，__init__方法是？', 1, '构造函数', '析构函数', '普通方法', '静态方法', 'A', 2),
('Elasticsearch主要用于？', 1, '关系存储', '全文搜索', '图计算', '事务处理', 'B', 3),
('Git中，合并分支的命令是？', 1, 'git combine', 'git merge', 'git join', 'git integrate', 'B', 2),
('CSS中，z-index属性用于？', 1, '水平定位', '垂直定位', '层级控制', '透明度控制', 'C', 3),
('Spring Boot中，application.yml用于？', 1, '编写业务代码', '配置应用程序', '定义数据模型', '编写测试', 'B', 2),
('JavaScript中，typeof null返回？', 1, '"null"', '"undefined"', '"object"', '"number"', 'C', 3),
('Redis的数据类型不包括？', 1, 'String', 'List', 'Table', 'Set', 'C', 2),
('Docker中，用于查看运行容器的命令是？', 1, 'docker images', 'docker ps', 'docker list', 'docker show', 'B', 3),
('MySQL中，索引的作用是？', 1, '增加存储空间', '提高查询效率', '保证数据完整性', '加密数据', 'B', 2),
('Vue.js中，v-if和v-show的区别是？', 1, '没有区别', 'v-if是条件渲染，v-show是CSS切换', 'v-if更快', 'v-show只能用于div', 'B', 3),
('Linux中，压缩文件的命令是？', 1, 'zip', 'tar', 'gzip', '以上都可以', 'D', 2),
('Java中， transient关键字的作用是？', 1, '序列化时忽略该字段', '线程安全', '常量定义', '同步锁', 'A', 3),
('Python的装饰器是？', 1, '一种设计模式', '语法糖，用于修改函数', '一种数据结构', '一种算法', 'B', 2),
('Nginx配置文件的默认路径是？', 1, '/etc/nginx/nginx.conf', '/usr/local/nginx/conf/nginx.conf', 'A和B都可能', '/var/nginx/nginx.conf', 'C', 3),
('React中，props的作用是？', 1, '存储组件内部状态', '父组件向子组件传递数据', '事件处理', '路由跳转', 'B', 2),
('SQL中，GROUP BY用于？', 1, '排序', '分组聚合', '筛选', '连接表', 'B', 3),
('Java中，volatile关键字用于？', 1, '声明常量', '保证变量可见性', '序列化', '异常处理', 'B', 2),
('CSS中，@media用于？', 1, '导入样式', '定义动画', '响应式布局', '字体设置', 'C', 3),
('Git中，撤销上次提交的命令是？', 1, 'git reset', 'git revert', 'git undo', 'git rollback', 'A', 2),
('Spring Cloud中，服务注册的组件是？', 1, 'Zuul', 'Eureka', 'Ribbon', 'Hystrix', 'B', 3),
('Python中，lambda表达式是？', 1, '匿名函数', '装饰器', '生成器', '迭代器', 'A', 2),
('Linux中，查看内存使用情况的命令是？', 1, 'df', 'du', 'free', 'top', 'C', 3),
('HTTP是无状态协议，解决会话保持的技术是？', 1, 'Cookie/Session', 'WebSocket', 'TCP', 'UDP', 'A', 2),
('Java中，默认的类加载器是？', 1, 'Bootstrap ClassLoader', 'Extension ClassLoader', 'Application ClassLoader', 'User ClassLoader', 'C', 3),
('Node.js是基于什么语言开发的？', 1, 'Python', 'Java', 'C++', 'JavaScript', 'D', 2),
('Java中，==和equals的区别是？', 1, '没有区别', '==比较引用，equals比较内容', 'equals比较引用，==比较内容', '都比较内容', 'B', 3),
('Python中，字典的键可以是？', 1, '列表', '字典', '元组', '集合', 'C', 2),
('MySQL中，事务的隔离级别不包括？', 1, 'READ UNCOMMITTED', 'READ COMMITTED', 'WRITE COMMITTED', 'SERIALIZABLE', 'C', 3),
('JavaScript中，闭包的作用是？', 1, '提高性能', '实现封装和私有变量', '简化代码', '减少内存', 'B', 2),
('Linux中，grep命令的作用是？', 1, '查找文件', '过滤文本', '压缩文件', '排序文本', 'B', 3),
('Spring中，@Autowired的作用是？', 1, '声明Bean', '自动注入依赖', '配置属性', '定义切面', 'B', 2);

-- 简答题（30道）- 20道5分，10道4分
INSERT INTO question (title, type, answer, r_answer, score) VALUES
('简述Java中ArrayList和LinkedList的区别及适用场景。', 2, '', 'ArrayList基于动态数组实现，查询快O(1)、增删慢O(n)，适合随机访问多的场景；LinkedList基于双向链表实现，增删快O(1)、查询慢O(n)，适合频繁插入删除的场景。', 5),
('什么是数据库事务的ACID特性？请分别解释。', 2, '', 'ACID包括：原子性(Atomicity)事务要么全完成要么全不完成；一致性(Consistency)事务前后数据完整性一致；隔离性(Isolation)事务之间互不干扰；持久性(Durability)事务完成后数据永久保存。', 5),
('解释Spring框架中的IOC和AOP概念。', 2, '', 'IOC(控制反转)是将对象创建和依赖关系管理交给Spring容器，降低耦合；AOP(面向切面编程)将横切关注点如日志、事务从业务逻辑中分离，通过代理实现功能增强。', 5),
('简述Redis的五种基本数据类型及其使用场景。', 2, '', 'String：缓存、计数器；List：消息队列、时间线；Set：去重、集合运算；ZSet：排行榜；Hash：存储对象属性。', 5),
('什么是RESTful API？它有哪些特点？', 2, '', 'RESTful是一种软件架构风格，使用URL定位资源，HTTP动词(GET/POST/PUT/DELETE)操作资源。特点：无状态、统一接口、可缓存、分层系统。', 4),
('解释Java中的多线程同步机制有哪些？', 2, '', 'synchronized关键字、ReentrantLock显式锁、volatile保证可见性、Atomic原子类、Concurrent并发集合、Semaphore信号量等。', 5),
('MySQL中索引失效的常见情况有哪些？', 2, '', '使用!=或<>、对列进行函数操作、LIKE以%开头、类型隐式转换、OR条件无索引、复合索引未用左前缀、IS NOT NULL等。', 5),
('简述TCP三次握手的过程。', 2, '', '第一次：客户端发送SYN；第二次：服务端回复SYN+ACK；第三次：客户端回复ACK。目的是确认双方收发能力正常，同步初始序列号。', 4),
('什么是JVM内存模型？主要包括哪些区域？', 2, '', 'JVM内存模型定义多线程共享变量的访问规则。运行时数据区包括：堆、方法区、虚拟机栈、本地方法栈、程序计数器。', 5),
('简述Vue.js的生命周期钩子函数。', 2, '', '创建前/后：beforeCreate/created；挂载前/后：beforeMount/mounted；更新前/后：beforeUpdate/updated；销毁前/后：beforeUnmount/unmounted。', 5),
('什么是Docker？它解决了什么问题？', 2, '', 'Docker是容器化平台，将应用及其依赖打包为镜像，实现一次构建到处运行。解决了环境不一致、部署复杂、资源利用率低等问题。', 4),
('解释Git的工作流程和常用分支策略。', 2, '', '工作区→暂存区→本地仓库→远程仓库。常见策略：Git Flow（master/develop/feature/release/hotfix分支）或GitHub Flow（主干开发）。', 5),
('什么是微服务架构？它的优缺点是什么？', 2, '', '将单体应用拆分为小型、独立部署的服务。优点：技术异构、独立扩展、故障隔离；缺点：分布式复杂性、运维成本高、数据一致性难保证。', 5),
('简述HTTPS的加密流程。', 2, '', '客户端请求证书→服务端发送证书（含公钥）→客户端验证证书→生成随机对称密钥→用公钥加密发送→双方用对称密钥加密通信。', 5),
('Java 8引入了哪些重要新特性？', 2, '', 'Lambda表达式、Stream API、Optional类、新日期时间API、默认方法、方法引用、函数式接口、接口中的静态方法等。', 4),
('什么是数据库的范式？请列举前三种。', 2, '', '1NF：属性原子性；2NF：消除部分依赖；3NF：消除传递依赖。目的是减少数据冗余，保证数据一致性。', 5),
('解释消息队列MQ的主要作用和使用场景。', 2, '', '作用：异步处理、应用解耦、流量削峰、日志处理。场景：订单处理、秒杀系统、日志收集、通知推送等。', 5),
('简述Java垃圾回收的基本原理。', 2, '', 'JVM自动回收不再使用的对象内存。常用算法：标记-清除、复制、标记-整理。现代JVM采用分代收集：新生代用复制，老年代用标记-整理。', 5),
('什么是CSS盒模型？标准盒模型和IE盒模型有何区别？', 2, '', '盒模型包含content、padding、border、margin。标准盒模型width/height只含content；IE盒模型包含content+padding+border。通过box-sizing切换。', 4),
('解释OAuth 2.0的授权流程。', 2, '', '四种模式：授权码模式（最安全）、简化模式、密码凭证、客户端凭证。主流授权码流程：请求授权→获取code→换取token→访问资源。', 5),
('什么是设计模式？请列举三种常用创建型模式。', 2, '', '设计模式是解决特定问题的最佳实践。创建型模式：单例模式、工厂模式、建造者模式、原型模式。', 5),
('简述Nginx的负载均衡策略有哪些？', 2, '', '轮询(默认)、权重(weight)、IP哈希(ip_hash)、最少连接(least_conn)、一致性哈希等。', 4),
('什么是WebSocket？与HTTP有什么区别？', 2, '', 'WebSocket是全双工通信协议，建立连接后可双向实时通信。HTTP是请求-响应模式、无状态、单向。WebSocket适合实时应用如聊天、股票行情。', 5),
('解释Spring Boot的自动配置原理。', 2, '', '@EnableAutoConfiguration通过classpath扫描依赖，根据META-INF/spring.factories中定义的自动配置类，结合条件注解如@ConditionalOnClass进行条件装配。', 5),
('MySQL中InnoDB和MyISAM存储引擎的区别？', 2, '', 'InnoDB：支持事务、行级锁、外键、MVCC，适合高并发；MyISAM：表级锁、全文索引、速度快，适合读多写少。', 5),
('什么是前端路由？React Router的工作原理是什么？', 2, '', '前端路由在不刷新页面的情况下切换视图。React Router通过history API监听URL变化，匹配Route组件渲染对应组件，实现SPA导航。', 4),
('简述分布式系统中的CAP理论。', 2, '', 'CAP指一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。分布式系统无法同时满足三者，最多满足两个，通常是AP或CP。', 5),
('什么是线程池？Java中如何创建线程池？', 2, '', '线程池复用线程减少创建销毁开销。通过Executors工厂方法或ThreadPoolExecutor构造函数创建，参数包括核心线程数、最大线程数、队列、拒绝策略等。', 5),
('解释跨域问题产生的原因及解决方案。', 2, '', '浏览器同源策略限制不同源请求。方案：CORS（服务端设置响应头）、JSONP（只支持GET）、代理服务器、Nginx反向代理、WebSocket等。', 4),
('简述Kafka的基本架构和核心概念。', 2, '', 'Kafka是分布式流处理平台。核心概念：Producer生产者、Consumer消费者、Broker服务器、Topic主题、Partition分区、Offset偏移量、Replication副本。', 5);
