![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习足迹
Secondogli
这个人不懒,他只是什么也不想说
展开
-
Git指令 复制原分支代码到新分支
Git指令 复制原分支代码到新分支原创 2022-06-13 10:26:59 · 4433 阅读 · 0 评论 -
Linux安装Nginx(内含操作防火墙指令)
安装 zipsudo yum install zip unzip -y安装 nginx(如果服务器下载不下来,就先本地下载再上传)cd /usr/local/srcsudo wget https://nginx.org/download/nginx-1.18.0.tar.gzsudo tar -zxvf nginx-1.18.0.tar.gzcd nginx-1.18.0sudo ./configuresudo makesudo make installsudo ln -s /原创 2022-03-03 17:34:24 · 2418 阅读 · 0 评论 -
Linux安装RabbitMq
安装前准备erlang-23.2.3-1.el7.x86_64.rpmrabbitmq-server-3.8.11-1.el7.noarch.rpm1、安装erlang 语言环境rpm -ivh erlang-23.2.3-1.el7.x86_64.rpm2、yum 安装的方式安装socat 插件:yum install -y socat3、安装rabbitMq:rpm -ivh rabbitmq-server-3.8.11-1.el7.noar...原创 2022-02-28 15:04:10 · 1829 阅读 · 0 评论 -
Linux安装mysql(亲测可用)
服务器系统是CentOS7.6 打开服务器防火墙的3306端口先下载 mysql源安装包wgethttps://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm安装mysql源yum -y localinstall mysql57-community-release-el7-11.noarch.rpm检查源是否安装成功sudo yum repolist enabled | grep "mysql.-co..原创 2021-08-20 00:14:47 · 184 阅读 · 0 评论 -
关于HashMap
HashMap类主要用来处理具有键值对特征的数据,随着JDK版本的更新,JDK1.8对HashMap底层也进行了优化1、 HashMap是基于哈希表对Map接口的实现,HashMap具有较快的访问速度,但遍历顺序却是不确定的。2、HashMap 提供所有可选的映射操作,并允许使用null值和null键 new HashMap<>().put(null,null)3、HashMap是线程不安全的,当存在多个线程同时写入HashMap时,可能会导致数据的不一致。1、l...原创 2021-08-19 13:49:21 · 156 阅读 · 0 评论 -
JVM(堆和栈)内存分配
什么是JVM?JVM就是JAVA虚拟机,Java的特点“一次编译,到处运行”,这就是JVM做到的,JVM是一台虚拟的计算机,把具体的机器指令屏蔽起来,用自己独有的一套东西,开发者编写的程序经过编译器生成Java虚拟机上运行的目标代码(字节码),就可以无视平台,带来的弊端就是Java虚拟机在执行字节码时,也需要把字节码解释成具体平台上的机器指令执行。JVM原理JVM是Java的核心和基础,在编译器和OS平台之间的虚拟处理器,它是一种利用软件方法实现的抽象的计算机基于下层操作系统和硬件平台,可以.原创 2021-08-17 20:32:50 · 722 阅读 · 0 评论 -
关于Java线程和线程池
1、什么是线程池,线程和进程的区别是什么2、线程的基本概念,线程的声明周期3、单线程和多线程4、线程池的原理解析5、常见的几种线程池的特点以及各自的应用场景一、线程,程序执行流的最小执行单位,是进程中的实际运作单位,线程和进程的区别是什么?首先进程是一个动态的过程,一个活动的实体。简单说,一个应用程序的运行可以被看做是一个进程,而线程是运行中的实际执行者,可以说进程中包含了多个可以运行的线程。二、线程的生命周期第一步,new Thread方法新建一个线程,在线程..原创 2021-08-12 15:27:52 · 252 阅读 · 0 评论 -
记录NIUA打包部署项目
前后端分离项目,前端是VUE后端是SpringBoot前端VUE1. 前端修改api.js 添加后台ip,vue页面中请求也加上BASE_URL2. vue.config.js可以配置前端启动端口号3. 控制台npm run build可以打包代码到dist文件夹,放到tomcat的ROOT下,新建WEB-INF文件夹,新建一个web.xml,解决url刷新报404问题<?xml version="1.0" encoding="UTF-8"?><web-a.原创 2021-08-07 20:29:35 · 291 阅读 · 5 评论 -
HashSet与HashMap的区别
HashSet :HashSet实现了Set接口,它不允许集合中出现重复的元素。当我们提到HashSet时,第一件事就是在将对象存储在HashSet之前,要确保重写hashCode()方法和equals方法,这样才能比较对象的值是否相等,确保集合中没有存储相同的对象,如果不重写上述两个方法,那么将使用下面方法默认实现:public boolen add(Object obj)方法用在Set添加元素时,如果元素重复时返回false,如果添加成功则返回trueHashMap :HashMap实现原创 2021-08-05 15:31:42 · 181 阅读 · 0 评论 -
关于IOC控制反转
IOC是一种解耦的设计思想,降低代码之间的耦合度IOC控制反转,是spring的核心,他将对象的创建和调用交由了spring进行管理。你只需要提供你需要哪个对象,它就能帮你创建好,不需要去关心实现的细节等。就好比通过中介找房子一样,只需要提需求,中介就会把符合要求的房子推荐给你供你选择。所以类的创建、销毁都是由spring来控制的,也就是说控制对象生存周期的不在是引用它的对象,而是spring。动态的向某个对象提供它所需的其他对象,这一点是用DI(依赖注入)来实现的。...原创 2021-07-30 22:16:19 · 96 阅读 · 0 评论 -
Java多线程:悲观锁和乐观锁
一、悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿到这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其他线程阻塞,用完后再把资源转让给其他线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。二、乐观锁总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更原创 2021-07-29 16:10:12 · 234 阅读 · 0 评论 -
Java 关键字 static和final的区别
关键字就是被Java语言赋予了特殊含义的单词static作用:1. 修饰属性static关键字修饰的属性改为静态属性,与类相关,与类的实例无关,一个类的不同实例共享一个静态属性,访问方式为类.属性2. 修饰方法被static修饰的方法称为静态方法,不能被重写静态方法与类相关,与类的实例无关 可以直接调用静态方法,无需创建具体实例,类.方法 静态方法可以访问静态数据,并可以更改静态数据,静态方法不能访问非静态数据成员,更无法修改非静态数据成员的值,静态方法不能调用非静态方法3.原创 2021-07-20 14:33:35 · 276 阅读 · 1 评论 -
Java 之单例模式的七种写法
一、懒汉,线程不安全 public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } retur原创 2021-07-17 12:48:02 · 260 阅读 · 0 评论 -
Java 之JVM 垃圾收集算法
常用的垃圾收集算法1. 标记-清除算法 标记 - 清除算法采用从根集合(GC Roots)进行扫描,对存活对象进行标记,标记完毕后,再扫描整个空间中未被标记的对象。进行回收,可以参照下图,标记-清除算法不需要进行对象的移动,只需要对不存活的对象进行处理,在存活对象比较多的情况下极为高效,但是由于标记-清除算法直接回收不存活的对象,因此会造成内存碎片。...原创 2021-07-15 12:08:32 · 267 阅读 · 0 评论 -
Java之ArrayList扩容机制
一、先看下ArrayList 的构造函数ArrayList有三种方式来初始化/** * 默认初始容量大小 */ private static final int DEFAULT_CAPACITY = 10; private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; /** *默认构造函数,使用初始容量10构造一个空列表(无参数构造) */原创 2021-07-13 07:47:16 · 709 阅读 · 1 评论 -
Java之反射
什么是反射?(1)Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。 本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。(2)Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了, 而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到, 所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性, 不需要提前在编译期知道运行的对象是谁。简单说就是能够分析类信息的能力的原创 2021-07-12 08:01:58 · 262 阅读 · 1 评论 -
关于Java 128陷阱
int 是 java中常见的数据类型,integer是它的包装类integer变量必须实例化后才能使用,实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象自动装箱拆箱: 装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器转换为基本数据类型;而int则是直接存储数据值,int的初值为0,integer的初值为null下面就是128陷阱public static void main(String[] args) { Integer a =.原创 2021-07-10 22:54:08 · 317 阅读 · 0 评论 -
微信小程序登录Java后台接口
uniapp开发小程序之微信登录申请测试号 获取appid 和 appsecrethttps://developers.weixin.qq.com/miniprogram/dev/devtools/sandbox.html可以配置到application.yml中weixin: appid: wx12313432434444 #应用授权ID appsecret: d12341342sfdsfrrwe1 #API密钥对应建一个vo类,方便使用package com原创 2021-07-06 15:40:49 · 660 阅读 · 0 评论 -
vue 过滤器filters 保留两位小数
filters:{ //过滤器 保留两位 keepTwoNum:function(value){ value = Number(value); return value.toFixed(2) } },参考https://www.cnblogs.com/WoAiZmm/p/8000409.html原创 2021-07-04 15:53:56 · 626 阅读 · 0 评论 -
uniapp开发小程序之微信登录
调微信授权登录方法onLoad(){ //微信授权登录 this.getgotoLogin();} //授权登陆 getgotoLogin:function(){ //防止闭包造成影响 let _this = this; uni.getUserProfile({ lang: 'zh_CN', desc: "获取用户信息", success: (res) => { c原创 2021-07-02 14:49:54 · 402 阅读 · 0 评论 -
vue 动态 :class 样式
<view style="font-size: 24rpx;" v-for="(item,index) in timeRange" :key="item.id" :class="item.id==selectedTime?'timeBtnTwo':'timeBtnOne'" @click="setTime(item.id)" > <text >{{item.timeQuantum}}</text></view> setTime(id.原创 2021-07-01 21:54:50 · 240 阅读 · 0 评论 -
sql语句之insert回填主键
<insert id="save" parameterType="tech.niua.admin.region.domain.Region" useGeneratedKeys="true" keyProperty="id"> insert into dic_region (pid,address_name) values( #{region.pid}, #{region.addressName} ...原创 2021-06-29 17:36:47 · 699 阅读 · 0 评论 -
mybatisPlus 分页使用
//controller@RequestMapping("/productList/{currentPage}/{pageSize}{typeId}") public ResultJson productList(@PathVariable Integer typeId,@PathVariable Integer currentPage,@PathVariable Integer pageSize){ IPage<Product> productIPage = pro.原创 2021-06-17 18:17:31 · 325 阅读 · 0 评论 -
反射之invoke的使用
public void test3() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, ClassNotFoundException { // Class<Hello> helloClass = Hello.class;//获得类 Class<?> aClass = Class.forName("com.qcby.huoa.first.utils.Hel.原创 2021-05-30 15:58:17 · 458 阅读 · 0 评论 -
elementUI表格 根据状态禁止勾选
<el-table-column type="selection" width="55" :selectable="selectDisableRoom"> </el-table-column>原创 2021-05-28 17:53:56 · 468 阅读 · 1 评论 -
sql查询之concat拼接
模糊查询拼接like加条件SELECT t_leave_application.* FROM t_leave_application LEFT JOIN sys_user ON sys_user.id = t_leave_application.stu_id WHERE sys_user.`name` LIKE concat('%',#{leaveApplication.stuName},'%')原创 2021-05-28 10:35:23 · 589 阅读 · 0 评论 -
计算两个时间之间间隔的天数
//病假sick ==>0 QueryWrapper<LeaveApplication> leaveApplicationQueryWrapper = new QueryWrapper<>(); leaveApplicationQueryWrapper.eq("stu_id",id); leaveApplicationQueryWrapper.eq("status",2); lea.原创 2021-05-26 20:02:13 · 820 阅读 · 0 评论 -
vue前端时间格式处理以及后端注解
前端主要使用value-format="yyyy-MM-dd HH:mm:ss" <el-form-item label="不良反应时间" prop="adrDate"> <el-date-picker v-model.trim="searchDate" unlink-panels type="datetimerange" range-separator="至".原创 2021-05-24 20:39:32 · 835 阅读 · 0 评论 -
Mysql 左连接 LEFT JOIN
总忘记mysql的左连接,记下了好复习<select id="getList" resultMap="BaseResultMap"> SELECT pscpm.*, stuu.name AS student_name, teau.name AS teacher_name, th.name AS hospital_name, td.name AS department_name FROM t_pe_senior_clinical_practice_me pscpmLEF原创 2021-05-24 15:44:39 · 323 阅读 · 1 评论 -
git操作 - 新建分支并切换上传代码
切换分支克隆gitclone-b'dev'git@...原创 2021-05-21 10:12:48 · 434 阅读 · 0 评论 -
mybatis foreach标签使用之IN
需求SQL:SELECT * FROM USER WHERE id IN (1,2,3)(ids和对应入参变量名对应)<select id="findByIds" parameterType="user" resultType="user">SELECT * FROM USER<where><foreach collection="ids" open="id IN (" separator="," item="i"close=")">#{i}&l.原创 2021-05-11 18:57:46 · 376 阅读 · 0 评论 -
vue去除后端返回的带T格式时间
carTimeFilter: function(row, column, cellValue) { if (cellValue != null) { return moment(cellValue).format("YYYY-MM-DD HH:mm:ss"); } }, :formatter="carTimeFilter"原创 2021-05-06 16:09:53 · 2205 阅读 · 0 评论 -
sql语句之group by
<select id="getUserRole" resultType="java.lang.Integer"> SELECT stu_level FROM t_de_department_report WHERE stu_id =#{id} group BY stu_level; </select>原创 2021-05-06 11:56:56 · 204 阅读 · 0 评论 -
vue for循环渲染 element 下拉框
<el-form-item label="教学秘书" prop="secretaryId" :label-width="dialogFormLabelWidth" > ..原创 2021-04-26 16:14:46 · 858 阅读 · 0 评论 -
redis启动报错# Creating Server TCP listening socket *:6379: bind: No such file or directory
1.redis-cli.exe2.shutdown3.exit4. redis-server.exe参考https://www.cnblogs.com/AlbertSmith/p/12568375.html原创 2021-04-26 09:23:04 · 267 阅读 · 0 评论 -
mybatis-plus lamda表达式查询
QueryWrapper<DeWardRound> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("stu_id",id); List<DeWardRound> deWardRoundlist = deWardRoundService.list(queryWrapper);原创 2021-04-23 18:30:13 · 541 阅读 · 0 评论 -
mybatisPlus的QueryWrapper<>()使用
//注入servives @Autowired private ISeClinicalPracticeExamService seClinicalPracticeExamService;//SeClinicalPracticeExam为实体类 QueryWrapper<SeClinicalPracticeExam> QueryWrapper = new QueryWrapper<>(); QueryWrapper.eq("stu_id",id);.原创 2021-04-22 15:30:16 · 945 阅读 · 0 评论 -
foreach中collection的用法
<select id="findByIds" parameterType="java.util.List" resultType="Blog">2 select * from t_blog where id in3 <foreach collection="ids" index="index" item="id" open="(" separator="," close=")">4 #{id} 5 .原创 2021-04-18 23:55:16 · 1987 阅读 · 0 评论 -
vue 在url后面用?方式拼接与获取变量
拼接this.$router.push({ path:"/thisUrl", query:{userId:row.sysUser.Uid}})获取this.$router.query.userId原创 2021-04-18 23:50:12 · 887 阅读 · 0 评论 -
Vue 返回上一页功能
routeBack(){ this.$router.go(-1);}原创 2021-04-18 23:36:00 · 256 阅读 · 0 评论