代码编织梦想

1、自我介绍

2、HTTP/HTTPS 区别 以及如何实现的?

区别
HTTP和HTTPS是两种不同的网络通信协议。HTTP(HyperText Transfer Protocol)是一种应用层协议,用于在Web浏览器和Web服务器之间传输超文本文档,是Web数据通信的基础协议。HTTPS(HyperText Transfer Protocol Secure)则是一种基于TLS/SSL的安全协议,它在HTTP的基础上添加了数据加密和身份验证的功能,提供更加安全的数据传输方式。

HTTP和HTTPS的主要区别在于安全性方面。HTTP传输的数据不加密,因此可能会被第三方窃取或篡改,而HTTPS通过TLS/SSL协议对数据进行加密,使得传输的数据在传输过程中不易被窃取或篡改。此外,HTTPS还可以对服务器的身份进行验证,确保客户端与正确的服务器进行通信,防止中间人攻击。

实现

  1. 申请并获取SSL/TLS证书:为了使用HTTPS协议,需要在Web服务器上安装SSL/TLS证书。可以从一些受信任的CA机构(如Symantec、Comodo等)购买证书,也可以使用免费的证书颁发机构(如Let’s Encrypt)颁发证书。

  2. 配置Web服务器:安装证书后,需要在Web服务器上配置HTTPS支持,通常需要将证书文件和私钥文件配置到Web服务器上。

  3. 修改应用程序代码:使用HTTPS需要在应用程序中修改HTTP请求和响应的处理方式,以支持SSL/TLS协议的加密和解密。一般来说,可以使用开源框架(如Spring Boot)来方便地实现HTTPS支持。

总之,HTTPS比HTTP更加安全,适合于需要保护用户隐私和敏感数据的Web应用程序。

3、Vue的生命周期是什么?

  1. beforeCreate(创建前)
  2. created(创建后)
  3. beforeMount(载入前)
  4. mounted(载入后)
  5. beforeUpdate(更新前)
  6. updated(更新后)
  7. beforeDestroy(销毁前)
  8. destroyed(销毁后)

4、Maven 怎么配置

配置环境变量、修改配置文件、在常用IDE下配置Maven。
(如果知道更多,可以讲一下更多细节)

5、将项目放在Linux 中执行有哪些操作?

将项目放在Linux中执行,一般需要进行以下几个操作:

  1. 安装必要的软件:在Linux服务器上安装必要的软件,例如Java运行环境、Web服务器(如Apache或Nginx)、数据库等。

  2. 将项目文件上传到服务器:使用FTP或SCP等工具将项目文件上传到Linux服务器上。可以将项目文件打包成压缩文件(如ZIP或Tarball),以便更方便地传输和部署。

  3. 解压项目文件:如果将项目文件打包成压缩文件上传,则需要在Linux服务器上解压项目文件。可以使用tar命令或unzip命令进行解压操作。

  4. 配置项目:在Linux服务器上配置项目文件,例如配置数据库连接、配置Web服务器等。

  5. 启动项目:启动项目需要运行相应的脚本或命令。例如,在Java项目中可以使用Maven或Gradle构建项目并运行,或者直接运行Java命令启动应用程序。在Web项目中,可以使用Web服务器的启动脚本启动Web服务器并部署项目。

  6. 监控和维护项目:在Linux服务器上需要监控项目运行状态,如查看日志、检查服务器性能等。如果项目出现故障,则需要对项目进行维护,例如重新启动应用程序、清理缓存等操作。

总之,将项目放在Linux中执行需要进行一些额外的操作,包括安装软件、上传和解压文件、配置项目和启动项目等。同时,需要对项目进行监控和维护,以确保项目稳定运行。

6、如果Maven有两个不同版本应该如何兼容?如果让你从百度搜索,应该从哪个方向搜索?

如果Maven有两个不同版本,需要进行兼容处理。以下是一些可能的方法:

  1. 确定Maven版本范围:在项目中指定Maven的版本范围,例如使用Maven 3.x.x系列,以确保在同一范围内的版本都可以兼容。可以使用Maven自带的Dependency Management功能来指定版本范围。

  2. 使用适当的插件:使用适当的插件来确保两个不同版本的Maven可以协同工作。例如,如果需要在不同版本的Maven中使用相同的插件,则需要使用与两个版本兼容的插件版本。

  3. 使用命令行参数:可以使用命令行参数来指定使用哪个版本的Maven。例如,在运行Maven命令时,使用-D参数来指定Maven的版本号。

  4. 使用不同的构建环境:如果需要同时使用两个不同版本的Maven,可以将它们安装在不同的构建环境中,并在需要的时候切换环境。例如,在Linux上可以使用环境变量来切换Maven版本。

  5. 更新依赖项:更新依赖项的版本,以确保与两个版本的Maven兼容。可以使用Maven自带的Dependency Management功能来管理依赖项的版本。

总之,如果Maven有两个不同版本,需要进行兼容处理。可以使用指定版本范围、适当的插件、命令行参数、不同的构建环境或更新依赖项等方法来实现兼容。

7、图片如果放在本地,应该如何实现图片上传?

在基于SpringBoot的商城管理系统中,将所需的图片放在本地,可以通过以下步骤来实现图片上传:

在SpringBoot项目中添加依赖项。可以使用SpringBoot提供的spring-boot-starter-web依赖项,它已经包含了Spring MVC和其他与Web相关的依赖项。

在SpringBoot项目的配置文件中,配置上传文件的大小限制、上传文件的存储路径等信息。可以使用SpringBoot提供的MultipartProperties类来配置相关信息。

在SpringBoot项目的控制器中,添加上传文件的处理器。可以使用Spring MVC提供的@RequestParam注解来接收上传的文件,并使用Java I/O流来将上传的文件保存到本地存储路径中。

在前端页面中,添加文件上传的表单。可以使用HTML的form表单和input标签的type="file"属性来实现文件上传。

下面是一个示例代码片段:
在application.properties配置文件中添加以下配置:

# 配置上传文件的大小限制
spring.servlet.multipart.max-file-size=100MB
spring.servlet.multipart.max-request-size=100MB
# 配置上传文件的存储路径
spring.servlet.multipart.location=uploads/

在控制器中添加文件上传的处理器:

@PostMapping("/upload")
public String handleFileUpload(@RequestParam("file") MultipartFile file) throws IOException {
    // 获取上传文件的名称
    String fileName = StringUtils.cleanPath(file.getOriginalFilename());
    // 创建上传文件的存储路径
    Path uploadPath = Paths.get("uploads/");
    if (!Files.exists(uploadPath)) {
        Files.createDirectories(uploadPath);
    }
    // 将上传文件保存到本地存储路径
    try (InputStream inputStream = file.getInputStream()) {
        Files.copy(inputStream, uploadPath.resolve(fileName), StandardCopyOption.REPLACE_EXISTING);
    }
    // 返回上传文件的URL
    String fileUrl = "/uploads/" + fileName;
    return fileUrl;
}

在前端页面中添加文件上传的表单:

<form method="POST" action="/upload" enctype="multipart/form-data">
    <input type="file" name="file">
    <button type="submit">上传文件</button>
</form>

总之,在基于SpringBoot的商城管理系统中,将所需的图片放在本地,可以通过以上步骤来实现图片上传。在控制器中添加文件上传的处理器,配置上传文件的大小限制、上传文件的存储路径等信息,以及在前端页面中添加文件上传的表单,即可实现图片上传功能。

8、模糊查询使用的like(like效率很低),应该如何提高效率或者优化?

在数据库中进行模糊查询使用LIKE操作符,由于LIKE操作符需要遍历整个表来进行匹配,因此效率较低,尤其是在大表中。以下是一些优化策略,可以帮助提高LIKE操作符的效率:

  1. 前缀匹配:如果可以确定搜索字符串的前缀,可以使用前缀匹配的方式来提高查询效率。例如,如果要搜索以“abc”开头的字符串,可以使用“LIKE ‘abc%’”的方式来查询,这样数据库可以使用索引进行匹配。

  2. 使用全文检索:全文检索可以快速地对文本进行搜索,相对于LIKE操作符,效率更高。例如,可以使用MySQL提供的全文检索引擎,如MyISAM或InnoDB的全文检索功能来提高查询效率。

9、Redis在项目哪里使用到了

缓存

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45969381/article/details/129599258

华为Java开发一面二面 附笔试(OD)-爱代码爱编程

华为Java开发一面二面(OD)4.3 面试的是1-3年工作经验的岗位   一面:45min     主要是问项目和平时用到的一些工具之类的,因为我写的比较少,所以基本上都是问的springboot和spring的内容。 1.AOP 2.mapper的映射 3.封装、多态的理解 4.四次挥手 …想不起来了 编程:给一个数组,包含一组温度,

腾讯 后端开发2021实习生 一面(65min)-爱代码爱编程

自我介绍 加 简单问了下项目 接口类 和 抽象类 基础概念 接口里面能写具体的实现方法吗? 你平时写多线程怎么写的 主线程如何监听子线程 lamda表达式里面可以写什么 一个class类的加载过程 我直接跑题去讲在jvm里面的执行过程了…… 常用的框架了解吗?spring 里面 aop 底层怎么实现的, 动态代理是什么,怎么实现(八股文这里

蚂蚁金服JAVA开发一面 60min ,中午没睡觉,脑子一片空白,爆炸!!!-爱代码爱编程

   因为热爱所以坚持,因为热爱所以等待。熬过漫长无戏可演的日子,终于换来了人生的春天,共勉!!! 蚂蚁金服一面 60min  ①技能知识 1.你看过那些JDK源码,就说个HashMap的put方法 2.Hashmap在1.7到1.8发生了什么变化? 3.你说说快排、归并这些什么场景下适用?如果几乎有序的情况呢?快排和归并有什么区别? 4.你

【每日面试】YY直播 Java开发 一面-爱代码爱编程

作者:许y愿 链接:https://www.nowcoder.com/discuss/735887?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网 1、自我介绍 2、常用集合类,然后挑一个熟悉的介绍(直接Hashmap) 3、JVM垃圾回收算法,垃圾回收过程 4、M

【每日面试】2021华为Java开发一面-爱代码爱编程

作者:川沙妲己 链接:https://www.nowcoder.com/discuss/788326?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网 1. 上来先问了笔试的时候一个题,问:当时怎么想的说一下思路?我说当时是暴力解法。问:有无别的想法?答:没有 2.

哈啰出行Java开发面经-爱代码爱编程

一面12.2 50min 二面12.10 30min 面试官基本上只负责抛出问题,大部分时间都是我在讲,感觉很考验个人的语言组织能力、临场表达能力、是否能有逻辑有条理地把一件事讲清楚。 hr面12.21 Part0.自我介绍 Part1.个人规划 1.为什么投递的杭州岗位 2.面试官:我看你在字节做的是客户端开发,那你投的这个岗位是Java服务端,你

【每日面试】2021麦吉太文Java开发一面-爱代码爱编程

作者:川沙妲己 链接:https://www.nowcoder.com/discuss/788605?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网 10.17 做的笔试,笔试两道编程,都比较简单,力扣简单水平。 10.25 电话通知面试 10.26 一面 面试官很和蔼

阿里Java开发一面面经-爱代码爱编程

时长80min 1、介绍实习项目,做了哪些?难点在哪? 2、介绍简历的项目,遇到了哪些问题?平时都是怎么解决问题的? 3、抽象类和接口的区别 4、值传递和引用传递?深拷贝 浅拷贝? 5、讲讲常见的集合类 6、讲讲hashmap,concurrenthashmap底层实现,put流程 7、hashmap数组长度为什么是2的幂次方 8、hash

美团配送 二面(40min) Java后端 暑期实习面经-爱代码爱编程

1. 自我介绍(提到了了解Java并发、Java虚拟机)2. 既然你提到Java并发,那能不能谈谈你对并发的理解?(先说了单线程的一些缺点,所以需要多线程并发。但是多线程的话可能会出现线程安全的问题,就需要通过一些同步方法保证线程安全)3. 一般多线程会使用线程池,那你怎么设计或者怎么去使用线程池能够用得更好?(1. 先比较了两种创建线程池的方法,表示Ex

【每日面试】茄子科技 java后端开发一面_茄子科技面试题 java-爱代码爱编程

一面 8.29 40min 问的比较基础,全是计算机基础 1:操作系统io模型 2:io多路复用,介绍select,poll,epoll原理,他们的优缺点及不同 3:进程互斥,死锁概念,产生条件,解决办法 4:进程通讯方式,用过哪些 5:数据结构,数组和链表特点和区别,结合cpu来说(io请求),最后还说了下数据量在百万级别下在尾部插入和删除数

苏小妍java开发工程师面经_苏小妍一面-爱代码爱编程

目录 一面 - 技术面(围绕项目的八股)二面 - 意向面(考察稳定性)三面 - 综合面(技术+意向) 一面 - 技术面(围绕项目的八股) 1、 自我介绍 2、 看你项目中用到redis,你是如