- 博客(117)
- 收藏
- 关注
原创 阿里云Linux服务器部署项目
阿里云Linux服务器部署项目(静态网站,vue项目打包后同理)Linux部署项目环境的搭建1.安装Nginx1.yum -y install nginx (-y:安装完成后不用确认,去掉-y安装完成后需要手动确认完成安装)2. nginx -V(检查Nginx是否安装成功,安装成功后会显示版本号)2.启动Nginx服务1.systemctl start nginx.service #启动Nginx服务2.systemctl enable nginx.service #使Nginx服务开机自
2020-08-10 23:28:13 537
原创 JDK 8 有哪些新特性?
使用它可以写出更简洁、更灵活的代码。新 AP|提供了专门的时区类(如 zonedDateTime,offsetDateTime,zoneId 等),简化了时区处理,并且这些类的方法更加直观和易用。而新的日期类都是不可变的,一旦创建就不能修改这样可以避免意外的修改,提升代码的安全性和可维护性。之所以提供静态方法,是为了将相关的方法内聚在接口中,而不必创建新的对象。Java8引入了新的日期和时间 API(位于 java.time 包中),它们更加简洁和易于使用,解决了旧版日期时间 API 的许多问题。
2024-08-13 11:56:51 681
原创 什么是Java内部类?它有什么作用?
内部类是定义在另一个类内部的类。封装和逻辑分组:提供更清晰的代码组织结构。提升封装性:将逻辑相关的类组织在一起。通过内部类,可以把逻辑上相关的类组织在一起,提升封装性和代码的可读性。后期维护时都在一个类里面,不需要在各地方找来找去。内部类提供了一种将相关类组织在一起的方式,有助于代码的封装和可读性。不同类型的内部类适用于不同的使用场景,如成员内部类适用于需要访问外部类私有成员的情况,而匿名内部类适用于简化单次使用的类实现。
2024-08-13 11:44:01 343
原创 Java 方法重载和方法重写之间的区别是什么?
方法重载和方法重写是Java中实现多态性的两种不同机制。重载关注于同一个类中相同名称的不同方法实现,而重写关注于子类对父类方法的特定实现。
2024-08-13 11:32:41 366
原创 面向对象编程与面向过程编程的区别是什么?
面向对象编程与面向过程编程的主要区别在于组织代码的方式和思维模式。面向对象编程更符合现代软件开发的需求,提供了一种更自然、更灵活的方法来构建软件系统。
2024-08-12 10:11:46 452
原创 Java 中 Exception 和 Error 有什么区别?
这可能会让一个简单的bug变得难以诊断,而且有些同学比较喜欢用catch之后用e.printStackTrace(),在我们产品中通常不推荐用这种方法,一般情况下这样是没有问题的但是这个方法输出的是个标准错误流。比如你有个方法,参数是个name,函数内部调了别的好几个方法,其实你的name传的是null值,但是你没有在进入这个方法或者这个方法一开始就处理这个情况,而是在你调了别的好几个方法然后爆出这个空指针。线上除了bug莫名其妙的没有任何的信息,你都不知道哪里出错以及出错的原因。
2024-08-08 12:58:12 572
原创 Java 中的序列化和反序列化是什么?
所以这个ID的数字其实不重要,无论是1L还是idea自动生成的,只要序列化的时候对象的serialVersionUID和反序列化的时候对象的serialVersionUID一致的话就行。所以如果你没有定义一个serialVersionUID然后序列化一个对象之后,在反序列化之前把对象的类的结构改了,比如增加了一个成员变量,则此时的反序列化会失败。因为网络的另一端的内存地址Ox1234可以没有某某对象,所以传输的对象需要包含这些信息,然后接收端将这些扁平的信息再反序列化得到对象。
2024-08-07 09:49:58 552
原创 Java 中的参数传递是按值还是按引用
Java 只有按值传递,不论是基本类型还是引用类型JVM 内存有划分为栈和堆,局部变量和方法参数是在栈上分配的,引用类型占4个字节,基本类型看具体类型,例如 long 和 double 占8个字节。而对象所占的空间是在堆中开辟的,引用类型变量存储对象在堆中地址来访问对象,所以传递的时候可以理解为把变量存储的地址给传递过去,因此引用类型也是值传递。
2024-08-02 12:37:37 230
原创 你认为Java的优势是什么
首先,Java 是跨平台的。不同平台执行的机器码不同,但Java通过中间层JVM实现一次编写,多平台运行,即「Write once, Run anywhere」。基本上,以上几点是回答Java相关问题的关键点。之后,可以根据面试官的延伸问题进行更深入的讨论。当然这种开放性问题没有固定答案,我的回答仅供参考。
2024-07-31 09:50:46 243
原创 java分布式的ACP是什么
否则无法保证一致性,Consul 遵循CAP原理中的CP原则,保证了强一致性和分区容错性,且使用的是Raft算法,比zookeeper使用的Paxos算法更加简单。虽然保证了强一致性,但是可用性就相应下降了,例如服务注册的时间会稍长一些,因为 Consul 的 raft 协议要求必须过半数的节点都写入成功才认为注册成功;当数据出现不一致时,虽然A, B上的注册信息不完全相同,但每个Eureka节点依然能够正常对外提供服务,这会出现查询服务信息时如果请求A查不到,但请求B就能查到。
2024-06-05 12:38:42 981 1
原创 Maven中的DependencyManagement和Dependencies
Maven中的DependencyManagement和Dependencies
2024-06-04 10:49:26 1302
原创 vue下拉框不可被修改
加@change事件,在事件里强制刷新this.$forceUpdate() //在下拉框上绑定change事件 更新视图 这样就不会有视图更新的问题。在下拉框被赋值时,在data里没有这个变量的声明,无法进行双向绑定,只有。vue下拉框在有默认值的情况下,不可被修改,但是操作的值没有问题,
2023-03-30 17:21:28 1047 1
原创 list.add(对象);会报错null
的作用是你不仅说渴了还去造了一个杯子。add()的操作 相当于接水,你没有杯子水接不住,所以空指针异常。
2023-03-30 17:14:22 870
原创 ShiroHttpServletRequest 转HttpServletRequest 类型
ShiroHttpServletRequest 转HttpServletRequest 类型不可强制转换。
2023-03-30 16:49:52 501
原创 java后端进行跨域的几种方式(包括controller的单个跨域、项目所有接口整体跨域)
java后端进行跨域的几种方式(包括controller的单个跨域、项目所有接口整体跨域)
2023-03-14 09:45:57 1424
原创 Linux安装elasticsearch
因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。kibana可以给我们提供一个elasticsearch的可视化界面。kibana中提供了一个DevTools界面,进行es相关操作。在浏览器输入地址访问:ip:5601,即可看到结果。运行docker命令,部署kibana。的tar包也可以这样做。
2022-10-26 11:24:54 326
原创 使用docker下载安装kafka
Kafka对于zookeeper是强依赖,保存kafka相关的节点数据,所以安装Kafka之前必须先安装zookeeper。
2022-10-21 18:41:34 1430
原创 路由使用params传递布尔值逻辑紊乱,解决方法
使用路由携带参数,利用params传输,页面一传给页面二,页面二可以接收到”false“,但是页面二一直逻辑错误。params传递过来的为字符串,就算用Boolean()方法进行转换,只要字符串不为空,就会一直为true。将传递过来的数据进行判断,跟理想数据进行比较,从而得到一个布尔值,进行使用。...
2022-08-03 14:55:42 612
原创 解决el-input输入框.number数字输入问题,去掉type=“number“后面箭头问题也可以用这种方法代替
规定输入框只能输入数字,在v-model后加.number会出现只有最开始就输入字符
2022-07-01 16:14:03 2430
原创 JVM垃圾回收机制
文章目录JVM垃圾回收机制一、⼀个对象从加载到JVM,再到被GC清除,都经历了什么过程?二、怎么确定⼀个对象到底是不是垃圾?三、JVM有哪些垃圾回收算法?四、什么是STW?五、JVM有哪些垃圾回收器?六、垃圾回收分为哪些阶段JVM垃圾回收机制提示:以下是本篇文章正文内容,下面案例可供参考一、⼀个对象从加载到JVM,再到被GC清除,都经历了什么过程?⽤户创建⼀个对象,JVM⾸先需要到⽅法区去找对象的类型信息。然后再创建对象。JVM要实例化⼀个对象,⾸先要在堆当中先创建⼀个对象。-> 半初
2022-05-17 20:25:59 756
原创 jdk1.8 的新特性
文章目录jdk1.8 的新特性一、 Lambda 表达式二、 方法引用三、函数式接口四、 接口允许定义默认方法和静态方法五、Stream API六、日期/时间类改进七、Optional 类八、 Java8 Base64 实现jdk1.8 的新特性一、 Lambda 表达式Lambda 允许把函数作为一个方法的参数。new Thread (()-> System.out.println ("abc" ) ) .start() ;二、 方法引用方法引用允许直接引用已有 Java 类或对
2022-05-12 13:05:17 7073
原创 同步锁、死锁、乐观锁、悲观锁
文章目录同步锁、死锁、乐观锁、悲观锁一、同步锁二、死锁三、乐观锁四、悲观锁同步锁、死锁、乐观锁、悲观锁一、同步锁当多个线程同时访问同一个数据时,很容易出现问题。为了避免这种情况出现,我们要保证线程同步互斥,就是指并发执行的多个线程,在同一时间内只允许一个线程访问共享数据。Java 中可以使用 synchronized 关键字来取得一个对象的同步锁二、死锁多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放三、乐观锁总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会
2022-05-11 12:39:33 1508
原创 Redis持久化RDB和AOF
Redis持久化Redis 提供了两种持久化的方式,分别是 RDB(Redis DataBase)和 AOF(AppendOnly File)。一、RDB就是在不同的时间点,将 redis 存储的数据生成快照并存储到磁盘等介质上。二、AOF则是换了一个角度来实现持久化,那就是将 redis 执行过的所有写指令记录下来,在下次 redis 重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了。总结RDB 和 AOF 两种方式也可以同时使用,在这种情况下,如果 redis
2022-05-11 12:33:09 439
原创 缓存雪崩、缓存穿透、缓存击穿及一些解决方案
文章目录缓存雪崩、缓存穿透、缓存击穿一、缓存雪崩二、缓存穿透三、缓存击穿缓存雪崩、缓存穿透、缓存击穿一、缓存雪崩缓存学兵是指缓存在同一时间大面积失效,导致之后所有的请求都会落到数据库上,从而导致数据库连接异常。解决方案:缓存数据的过期时间加上随机值,防止同一时间发生大量数据过期给每一个缓存数据增加相应的缓存标记,记录缓存是否失效,如果缓存失效,则更新数据缓存使用缓存预热,搭建 redis 集群互斥锁,但是该方案吞吐量明显下降了二、缓存穿透缓存穿透是指混村和数据库中都没有的数据,导
2022-05-11 12:28:01 240
原创 SpringBoot+MyBatis+MySQL电脑商城项目实战(主要包括用户、商品、商品类别、收藏、订单、购物车、收货地址等模块功能)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、项目目录结构二、StoreApplication.javapom.xml、application.propertiesStoreApplication.javapom.xmlapplication.properties三、utilJsonResult.java四、entity+vo**User.java****BaseEntity.java****Address.java****Product.java****District.
2022-04-30 17:36:19 3978
原创 Git使用教程
文章目录Git使用教程一、Git下载二、安装1、傻瓜式安装,直接下一步就好2、选择git用什么编辑器,默认就可以(全是Next)3、出现Finish安装成功4、 安装成功后,菜单会出现以下三个图标,并且在任意文件夹下右击鼠标,也会出现git的图标三、基本Linux命令四、配置git的基本信息设置用户名与邮箱(用户标识,必要)五、git基本命令六、Git工作流程1、本地仓库搭建2、查看文件状态3、忽略文件4、设置本机绑定SSH公钥,实现免密码登录!(免密码登录,这一步挺重要的,码云是远程仓库,我们是平时工作在
2022-03-03 16:39:42 1222
原创 滑动切换的注册登录界面源码(用的jq改了一下)
滑动切换的注册登录界面源码(用的jq改了一下)一、index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initi
2022-01-17 10:19:00 2302 3
原创 贪心法 第3关:将真分数用埃及分数之和表示
任务描述本关任务:设计一个算法,把一个真分数 F 表示为埃及分数之和的形式。编程要求请在右侧编辑器Begin-End处补充代码,完成本关任务,注意需要学生自己获取真分数再进行编程。测试说明平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:测试输入:3 5(3为分子,5为分母,真分数为3/5)预期输出:3/5=1/2+1/10#include "stdio.h"void main(){ /********** Begin **
2022-01-01 23:40:43 7444
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人