【八股文】Java实习生面试-01
注意:答案由博主整理,如果你觉得回答有误或者有更好的想法欢迎在留言区留言
2023-08-04
笔试题目
70分钟,总分120分,简答题都是5分,最后实战题目30分
说说HTTP常用状态码及其含义?
答:
状态码
含义
400
客户端请求语法错误,服务器无法理解
403
用户没有访问权限,服务器理解该请求但拒绝执行请求
404
服务器没有找到用户请求的资源,一般是用户请求的路径不正确或者开发者没有填写正确路径
500
服务器内部错误,无法完成请求
502
充当网关或代理的服务器,从远端服务器接收到了一个无效的请求
301
永久重定向
302
临时重定向
HTTP常用的请求方式、区别和用途?
答:
Get:用于向服务器获取资源或数据。通过在URL中添加参数发送请求,参数会附加在URL的末尾,可以被缓存,可被书签保存。
区别:GET请求的参数会暴露在URL中,有长度限制,不合适传输敏感信息。
用途:用于获取数据,如获取网页、图片、文档等。
Post:用于想服务器提交数据或请求进行修改。通过请求体传输数据,参数不会暴露在URL中,不 ...
【经典算法】二分查找法
二分查找法
二分查找法是经典算法之一,二分查找我们在高中有接触过,在高中学习的抛物线中,有对称轴这一概念,在做题时我们经常会以对称轴来分类讨论。
而对称轴就是二分法中的中指针,根据目标值大小判断在中指针(对称轴)的左边还是右边,然后移动左指针 OR 右指针到中指针的位置,缩小搜索范围,缩小范围后再次判断目标值在中指针的左边还是右边,直到目标值位于左指针或者右指针的位置,找到目标值的下标。
代码实现
代码实现一
123456789101112131415161718192021222324252627282930313233/** * 二分法基础 * @param a 查找数组 * @param target 查找目标值 * @return 返回目标下标 or -1 * 思路: 创建两个指针,分别指向数组两端,再使用一个中指针, * 用于判断目标值在中值的左侧还是右侧,然后再缩小范围,以此类推,可以缩小范围知道中值等于目标值 */static int binarySearch(int [] a,int target)& ...
小码同学毕业指南
b7ceb76c270f3503934243b777b7d095a7bc50abb731740204de90340a0cbf715174caccf785a7f94dbf53ddda879a6e4d21af37972972402cc2a97b85d9ebdd5adec9c00f7487afdeb52d63c1640f8adf04a17ecd5d0c745e9a0a9e1a79167c09752ae4ed74f6bd07b30e0e870c907dd66079317b57833e8195ef39a399b0223aa729b6d46d3755c8dfd5ed8166b5dccb721f8053e0b30c4a435c8b53625fbfc47249702777af956cc56275b1442d138721a30146c0477fe77b3f0c6677227d03a7841fa5d8cf10ded11417ed239eccb87177a025ffadafff1bf5cff97caca458281d2c4dd3930453250f2f1443554d1bfb92916af00c148 ...
【Docker系列】Nginx Proxy Manager
前言
我们可以直接使用docker-compose来安装Nginx Proxy Manager,这样更加方便快速,下面我使用NPM名字代替Nginx Proxy Manager。
部署Nginx Proxy Manager
安装
1. 切换到root用户
1su root
2. 创建NPM工作目录
1mkdir -p /home/docker/nginx-proxy-manager
3. 进入工作目录
1cd /home/docker/nginx-proxy-manager
4. 新建docker-compose.yml文件
1vim docker-compose.yml
将以下内容写入到 docker-compose.yml中
12345678910111213version: '3'services: app: image: 'jc21/nginx-proxy-manager:latest' restart: unless-stopped ports: - '80:80' # ...
【Docker系列】Firefox浏览器
准备
前提
我需要一个浏览器来帮我24小时跑任务,比如,智慧树的课程,有好几十个小时课程要刷,想和服务器又没什么服务要跑,不如刷一下网课,哈哈哈
前提条件
服务器至少500M以上内存,服务器内存至少1G以上,下面我给firefox浏览器1G内存,内存太少的话,可能会导致浏览器运行失败,或者卡顿。
部署Firefox
创建文件夹
1mkdir -p /home/docker/firefox
进入创建的文件夹
1cd /home/docker/firefox
编写docker-compose.yml
1vim docker-compose.yml
将以下内容写入到docker-compose.yml中
12345678910111213version: '3'services: firefox: image: swr.cn-north-1.myhuaweicloud.com/iivey/firefox:v1.1 container_name: firefox ports: - "5800:5800" ...
正则表达式
文章转载来源于菜鸟教程公众号
原文章链接:https://mp.weixin.qq.com/s/7bDukFKBv4M6j-j5V4MZ5g
相关链接:
教程地址:https://www.runoob.com/regexp/regexp-usage-summary.html
测验工具:https://www.runoob.com/try/try-regex.php
测试工具:https://c.runoob.com/front-end/854/
匹配基本字符
使用普通字符匹配:普通字符(如字母、数字、符号)在正则表达式中表示自身,例如匹配 “runoob”:/runoob/。
使用元字符 . 匹配任意字符:****. 表示匹配任意单个字符,例如匹配 “cat” 或 “bat”:/c.t/。
匹配字符集合
使用字符集合匹配:使用方括号 [] 表示字符集合,匹配集合中的任意字符,例如匹配 “cat”、“bat” 或 “hat”:/[cbh]at/**。
使用连字符 - 表示字符范围:在字符集合中使用连字符 - 表示匹配字符范围,例如匹配 “a” 到 “z” 的小写字母:/[ ...
网站备案+服务器迁移数据
前言
趁着618活动,入手了一台腾讯云3年的服务器,去年618在华为云购买的一年服务器到期了,考虑到网站的迁移和备案问题,这次就选择了3年的机器,省时省力。
我买的是3年轻量 2核 2G 4M 50GB 300GB流量,我需求不高,目前来说性能也够用,如果有需要更大的存储空间,可以考虑对象存储,腾讯云的对象存储也还可以,拿来当图床也是一个不错的选择。
真的强烈建议买3年的机器,非常划算了,不要浪费首单优惠啊,首单3年才396,现在腾讯云的服务器续费都非常贵,一年的续费就要507元了,买一年的话,虽然比较便宜,但我还是不推荐,如果你听我的买3年的机器,一年后你会来感谢我的。
如果你已经买过一次了,不是腾讯云首单用户了,腾讯云其实可以开启3个用户,这3个用户都可以享受首单优惠,你扫码登录腾讯云时,创建一个用户就好了,还是可以继续享受首单优惠。
如果你有需要,可以点我下面的邀请链接注册或者登录购买,这样我也能蹭点代金券(偷笑)
腾讯云618专场:https://curl.qcloud.com/4QKETzxt
续费一年507元,真tm贵
初始化服务器
本文主要是为了记录自己的迁移记 ...
【SpringBoot系列】04-NoSQL数据库
Redis
Redis介绍
一个开源(BSD许可)的、内存中的数据结构存储系统,可用作数据库、缓存和消息中间件,并提供多种语言的API,是一个高性能的key-value数据库。
与其他key-value缓存产品相比有以下三个特点:
支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
不仅仅支持简单的key-value类型的数据,同时还提供list、set、zset、hash等数据结构的存储
支持数据的备份,即master-slave模式的数据备份
优点
存取速度快:Redis速度非常快,每秒可执行大约110000次的设值操作,或者执行81000次的读取操作
支持丰富的数据类型:Redis支持开发人员常用的大多数数据类型,例如列表、集合、排序集和散列等
操作具有原子性:所有Redis操作都是原子操作,这确保如果两个客户端并发访问,Redis服务器能接收更新后的值
提供多种功能:Redis提供了多种功能特性,可用作非关系型数据库、缓存中间件、消息中间件等
Redis安装与配置
1. 安装软件
安装Redis服务端,这里蓝奏云的版 ...
【SpringBoot系列】03-测试与数据库操作
配置属性与数据
获取配置文件属性
在前面我们有学习过,在配置文件添加属性,使用@ConfigurationProperties获取配置文件属性的值,并且通过实体类来封装这些数据,实体类需要有set方法来进行自动注入。
使用实体类封装配置属性
使用实体类来封装配置文件的属性需要以下三个步骤:
定义属性
创建实体类封装属性
在实体类绑定属性并生成get、set方法
定义实体类为Bean对象(这样实体类才可以被IOC容器管理注入信息)
定义属性
比如我们在配置文件添加如下几个属性:
123student: name: 小码同学 major: 计算机科学与技术
封装属性
然后再使用一个实体类来封装这些信息
123456789import lombok.Data;import org.springframework.boot.context.properties.ConfigurationProperties;@Data // 自动生成get、set方法@ConfigurationProperties(prefix = "student") // 绑定配置文 ...
Linux常见问题
Linux环境
Nginx安装报错
configure编译错误
make安装错误
解决方法
错误表示说没有找到error.log文件,没有办法设置日志文件环境变量,所以报错了。
那我们创建一个就好了,报错的路径在哪里,我们就在哪里创建一个日志文件。
12mkdir -p /usr/local/nginx/logs/touch /usr/local/nginx/logs/error.log
PHP-FPM启动报错
排查错误
启动PHP-FPM报错
1Job for php-fpm.service failed because the control process exited with error code. See "systemctl status php-fpm.service" and "journalctl -xe" for details.
查看PHP-FPM状态
查看状态是否报错,或者看看能不能从状态看出点问题来。
12345678910111213141516[root@ECS- bin]# systemctl ...