javaWeb
JQuery:
什么是JQuery:
JQuery实际上就是对现有的JavaScript的一种扩展,它非常轻量级,压缩后大概32KB,它兼容于各种浏览器,这样就可以非常方便地添加适用于多种浏览器的特效。12 它是一个轻量级的"写的少,做的多"的JavaScript库3
helloworld示例:
123456789101112131415161718192021222324252627<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title>< ...
Java 8 Optional
【Java8新特性】史上最全Optional实战教程,太厉害了!_java optional使用场景-CSDN博客
一、简介
Optional 是一个对象容器,具有以下两个特点:
提示用户要注意该对象有可能为null
简化if else代码
二、使用介绍
**1. 创建:**
Optional.empty(): 创建一个空的 Optional 实例
Optional.of(T t):创建一个 Optional 实例,当 t为null时抛出异常
Optional.ofNullable(T t):创建一个 Optional 实例,但当 t为null时不会抛出异常,而是返回一个空的实例
2. 获取:
get():获取optional实例中的对象,当optional 容器为空时报错
3. 判断:
isPresent():判断optional是否为空,如果空则返回false,否则返回true
ifPresent(Consumer c):如果optional不为空,则将optional中的对象传给Comsumer函数
orElse(T other):如果optional不为空,则 ...
Java volatile原理剖析与实例讲解
目录一、简介二、并发编程的3个基本概念1.原子性2.可见性3.有序性三、锁的互斥和可见性四、Java的内存模型JMM以及共享变量的可见性五、volatile变量的特性1.保证可见性,不保证原子性2.禁止指令重排六、volatile不适用的场景七、volatile原理八、单例模式的双重锁为什么要加volatile
一、简介
volatile是Java提供的一种轻量级的同步机制。Java 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量,相比于synchronized(synchronized通常称为重量级锁),volatile更轻量级,因为它不会引起线程上下文的切换和调度。但是volatile 变量的同步性较差(有时它更简单并且开销更低),而且其使用也更容易出错。
二、并发编程的3个基本概念
1.原子性
定义: 即一个操作或者多个操作要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。原子性是拒绝多线程操作的,不论是多核还是单核,具有原子性的量,同一时刻只能有一个线程来对它进行操作。简而言之,在整个操作过程中不会被线程调度器中断的操作,都可认为是原 ...
Java Supplier示例
Java``Supplier是一个功能接口,代表结果的提供者。
Supplier的功能方法是get()。
一个Supplier可以通过lambda表达式、方法引用或默认构造函数来实例化。
Supplier在Java 8中被引入,属于java.util.function包。
Supplier功能接口的源代码如下。
1234@FunctionalInterfacepublic interface Supplier<T> { T get();}
我们可以看到在上面的代码中,Supplier有get()方法,可以返回通用类型的值。
get()方法不接受任何参数,只返回通用类型的值。
我们可以按以下方式实例化Supplier
1Supplier<String> s = () -> "Hello World!";
Java还提供了返回特定类型值的Suppplier。
BooleanSupplier返回Boolean数据类型,IntSupplier返回Integer数据类型,LongSupplier返回Long数据类型,Do ...
Java Consumer示例
Java Consumer示例
功能方法:accept
使用Lambda表达式创建Consumer
例1 基础类型操作
例2 对象类型操作
使用方法引用创建Consumer
使用andThen方法
例1 简单拼接Consumer
例2 多个拼接Consumer
参考文献
Java Consumer接口来自Java 8中引入的 java.util.function包。
Consumer是一个功能接口,用来作为lambda表达式或方法引用的任务目标(传递一个参数执行指定的方法)。
Consumer的功能接口是一个接受单一参数并且不返回任何结果的操作。
Consumer的功能方法是accept(T t)。
Consumer具有以下方法。
1. accept : 这是Consumer功能接口的功能方法。accept 方法对给定的参数进行这一操作。
2. andThen : 此方法返回一个组合的Consumer,该Consumer先执行原始的Consumer操作,然后按照从左到右的顺序执行给定的andThen操作。
功能方法:accept
功能方法accept在功能接口Consu ...
IDEA的使用:
1.IDEA视图不小心设置让设置无法显示出来?
其实双按shift可以打开搜索模式,这里的搜索模式输入View是可以进入View设置的2.ERROR:JAVA: 错误: 不支持发行版本 5 解决方法_欧晨eli的博客-CSDN博客IDEA的junit单元测试Scanner输入无效-CSDN博客
3.maven创建spring发生版本不兼容问题:
解决:java: 警告: 源发行版 17 需要目标发行版 17-CSDN博客Springbot启动报错-类文件具有错误的版本 61.0, 应为 52.0_/d:/java/apache-maven-3.8.6/repository/org/springf-CSDN博客
4.pom.xml问题:
idea模块的pom.xml被划横线,不识别的解决办法_idea pom 划线_八戒,你又涨价了哎的博客-CSDN博客
IDEA——强大的Shell工具 _ 起凡Code闲聊
IDEA——强大的Shell工具
SSH
在使用Shell工具时最常用的是SSH输入命令操控远程服务器。在idea中使用SSH也是很简单的事情。
settings -> tools -> ssh congratulations
图1 配置SSH
alt+f12打开命令行,在右上角的下拉框中选择上面配置好的SSH会话。之后直接在命令行中就可以向服务器发送命令了。
图2 命令行连接SSH
SFTP
在控制远程服务器时除了发送命令行,自然少不了互传文件,文件预览编辑的功能。幸运的是强大的idea也有这个功能
settings -> deployment。点击左上角的➕添加sftp服务器,可以从之前已经配置的ssh session中选择。
图3 配置sftp
默认情况下idea没有显示远程sftp服务器的菜单,需要手动打开。
图4 显示sftp服务器
在右侧的菜单栏中打开sftp服务器列表,选择已经配置好的sftp服务器,确认后下面就可以显示服务器内的文件了,可以编辑,可以下载,可以拖动本地文件到远程文件夹。
图5 显示sftp服务器
Database
作为一名软件 ...
HTTP各种参数发送
利用Idea的HttpClient向SpringBoot发起各种请求参数。后端使用@RequestParam,@ModelAttribute,@PathVariable,@RequestBody,@RequestPart去接收。
HTTP各种参数发送
1. spring mvc 中的参数接受之 GET 请求
Get 请求是没有 body 的,参数都是放在 url 上面。
根据在 url 参数格式不同,一共有下面这几种
Path Variable
Query
Matrix Variable(不常用)
1.1 path variable
1.1.1 使用 @PathVariable
123GET http://localhost:7720/user/find/123/起凡 \ / 这里的"123"和"起凡"是参数
这种传参格式就如同名字一样"路径变量",参数在路径上。
针对这种传参方式后端可以这么 ...
git
Git - Book
复习网站:Learn Git Branching
学习了2章,3章,5章节,7.7,10章节
1.移除git追踪的文件时用命令git rm,这样不仅删除了文件,还解除了git对文件的追踪。如果文件是修改后被存在暂存区的,或者是已经存在暂存区的文件又被修改了的文件,在删除的时候要加上f选项。用rm命令或者手动删除的,虽然可以删除文件但是无法解除git对文件的追踪,会在后续的提交一直显示该文件已经被删除了,而git rm命令会在下次提交的时候不在显示该文件被删除了。
git追踪的名字改名字,要使用git mv命令。如果直接使用mv命令,是无法成功的,会显示改名后的文件是git没有追踪的文件。因为git跟踪的文件改名会更改元数据的,而元数据是无法反馈在界面或者说是无法反馈出来的。
所有需求在改名的时候,需要把要改名的文件的内容复制到新文件(你要更改的名字),然后删除原文件,跟踪原文件。
如果直接手动更改了原文件的名字,那么git将无法识别更改后的文件。
12git commit --amend//amend是修订的意思,这里的含义是修改上次的提交,修改前的提交并不 ...
Docker私有仓库
docker registry
我们可以使用docker push将自己的image推送到docker hub中进行共享,但是在实际工作中,很多公司的代码不能上传到公开的仓库中,因此我们可以创建自己的镜像仓库。
docker 官网提供了一个docker registry的私有仓库项目,可以方便的通过docker部署。
docker run -d -p 5000:5000 --restart always --name registry registry:2
docker image tag ruoyi-java:4.7.4 localhost:5000/ruoyi-java:4.7.4
docker push localhost:5000/ruoyi-java:4.7.4
docker pull localhost:5000/ruoyi-java:4.7.4
如果遇到以下错误:
这是因为docker push默认使用HTTPS协议,而服务端的registry仓库使用的是HTTP。
解决这个问题,需要修改/etc/docker/daemon.json,加入
1"insecur ...