自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

转载 Java NIO - 零拷贝

NIO 零拷贝 使用传统的 IO 方法传递一个大文件 使用 NIO 零拷贝方式传递 (transferTo) 一个大文件 看看两种传递方式耗时时间分别是多少 传统 IO 方法 服务端代码 public class OldServer { public static void main(String[] args) { try { ServerSocket serverSocket = new ServerSocket(1212); Sy

2020-06-27 18:23:34 12422

转载 聊聊Java NIO

经过查看,代码执行如下 如果数组为基础类型,则直接调用 //基础类型都是一样的 //Arrays.copyOf方法 public static byte[] copyOf(byte[] original, int newLength) { byte[] copy = new byte[newLength]; System.arraycopy(original, 0, copy, 0, Math.min(original.length, newLength)); return copy; } //System

2020-06-27 18:16:59 10964

原创 Vue- axios baseURL

Vue- axios baseURL的使用方法 每次 Api 都要填写域名,可以设置一个 baseUrl,这样少写点代码,而且后面更换域名时,生产环境和开发环境统一时很有用 qs.stringify 将参数格式化成 QueryString,可以不设置 在 main.js 中修改: Vue.prototype.axios = axios.create({ baseURL:'/api/', transformRequest: [//对数据转换成类似get传参的模式 data => qs.stringify

2020-07-10 00:02:03 12539 1

原创 Vue - 跨域问题解决办法

后端分离不可避免会遇到跨域问题,可把我烦的想砍人,现在总结几个解决办法让后人不走歪路 环境: Vue-cli 4x 本地开发跨域问题 - 配置 devServer 打开根目录的 vue.config.js (没有则创建,vue 以前的版本有的是写在 config/index.js,有的写在 webpack.config.js,4x 版本统一在 vue.config.js),写入: module.exports = { devServer:{ host: ‘localhost’, // Vue开发项目启动域名

2020-07-09 23:57:50 12323 1

原创 JAVA- 类型和泛型

泛型 public class MaximumTest { public static void main(String[] args) { System.out.printf("%d,%d和%d 中最大的数为 %d\n\n", 3, 4, 5, maximum(3, 4, 5)); System.out.printf("%.1f,%.1f和%.1f 中最大数为%.1f\n\n", 4.3,7.7,6.3,maximum(4.3, 7.7, 6.3)); } private static <T ext

2020-07-08 00:22:31 9249

转载 JAVA-EL 表达式内置(隐式)对象

EL 表达式内置(隐式)对象 pageContext JSP 页面中的 pageContext 对象,可以获取其他 8 大对象 pageScope 代表 page 域中保存的数据,map 对象 requestScope 代表 request 域中保存的数据,map 对象 sessionScope 代表 session 域中保存的数据,map 对象 applicationScope 代表 application 域中保存的数据,map 对象 param 表示保存所有页面请求参数的 map 对象 paramVa

2020-07-08 00:21:01 9420

原创 OAuth2.0 的四种授权方式

OAuth 简单理解就是一种授权机制,它是在客户端和资源所有者之间的授权层,用来分离两种不同的角色。在资源所有者同意并向客户端颁发令牌后,客户端携带令牌可以访问资源所有者的资源。 OAuth2.0 是 OAuth 协议的一个版本,有 2.0 版本那就有 1.0 版本,有意思的是 OAuth2.0 却不向下兼容 OAuth1.0 ,相当于废弃了 1.0 版本。 举个小栗子解释一下什么是 OAuth 授权? 在家肝文章饿了定了一个外卖,外卖小哥 30 秒火速到达了我家楼下,奈何有门禁进不来,可以输入密码进入,但

2020-07-08 00:17:31 11130 1

原创 JAVA-过滤器和拦截器2

1、实现原理不同 过滤器和拦截器 底层实现方式大不相同,过滤器 是基于函数回调的,拦截器 则是基于 Java 的反射机制(动态代理)实现的。 这里重点说下过滤器! 在我们自定义的过滤器中都会实现一个 doFilter() 方法,这个方法有一个 FilterChain 参数,而实际上它是一个回调接口。ApplicationFilterChain 是它的实现类, 这个实现类内部也有一个 doFilter() 方法就是回调方法。 public interface FilterChain { void doFilt

2020-07-05 21:13:34 11310

原创 JAVA-过滤器和拦截器1

1、过滤器 (Filter) 过滤器的配置比较简单,直接实现 Filter 接口即可,也可以通过 @WebFilter 注解实现对特定 URL 拦截,看到 Filter 接口中定义了三个方法。 init() :该方法在容器启动初始化过滤器时被调用,它在 Filter 的整个生命周期只会被调用一次。注意:这个方法必须执行成功,否则过滤器会不起作用。 doFilter() :容器中的每一次请求都会调用该方法, FilterChain 用来调用下一个过滤器 Filter。 destroy(): 当容器销毁 过滤器

2020-07-05 21:09:29 13858 5

原创 java 单例模式

单例模式 jdk 中的 Runtime 就是典型的饿汉式写法 源码如下: public class Runtime { private static Runtime currentRuntime = new Runtime(); /** * Returns the runtime object associated with the current Java application. * Most of the methods of class <code>

2020-07-04 01:09:43 10354

转载 JAVA多线程-线程

创建线程 要了解多线程,肯定要先知道如何创建线程,创建线程的方式有三种,继承 Thread 类、实现 Runnable 接口、实现 Callable 接口。 //创建线程方式一:继承Thread类,重写run()方法,调用start开启线程 public class TestThread1 extends Thread { @Override public void run() { //run方法线程体 for (int i = 0; i < 20; i++) { System.out.println

2020-07-04 01:07:52 9628

原创 MYSQL - 约束

约束 对表的数据进行限定,保证数据的正确性,有效性,完整性。 类别:添加在数据名的后面 主键约束 primary key,非空且唯一,数据的唯一标识 删除:ALTER table t_name DROP PRIMARY KEY; 注意,主键删除与非空删除不一样。非空删除用 MODIFY。 自增长 AUTO INCREMENT: 自动增长的值只和上一条记录有关系 非空约束 not null,值不能为空 唯一约束 unique,值不能重复 删除:ALTER table t_name DROP INDEX id;

2020-07-01 00:55:49 14974 1

原创 MYSQL- DQL

DQL 排序查询 … order by keyword ASC/DESC 如果升 / 降序不写,默认升序 聚合函数 将一列作为一个整体,做纵向计算 会排除 null 值 解决:使用 IFNULL () 函数或选择非空列 count 计算个数 SELECT COUNT(english) FROM stu 或 SELECT COUNT(IFNULL(english, 0)) FROM stu 空设为 0 max, min, sum, avg 使用方法同 COUNT 分组查询 group by 分组字段 根据分组

2020-07-01 00:53:32 13489

原创 MYSQL - DML

DML - 增删改表中数据 添加数据 insert into t_name(col1, col2, …, colN) values(type1, type2, … typeN); 删除数据 delete from t_name where [condition]; truncate table t_name 删除表的所有数据,创建一个一模一样的空表 修改数据 update table t_table set name = ‘’, id = 0 where [condition]; 如果删除,修改不加 whe

2020-06-30 01:24:09 9764

原创 MYSQL-DDL

SQL (Structured Query Language) 是一种规则,定义了如何操作所有关系型数据库(如 Oracle, Mysql DB2) SQL 通用语法 单行多行书写,分号结尾 不区分大小写,但关键字建议大写 注释 单行:-- 这是一段注释 或 # 这是一段注释 多行 /* 这是一段注释 */ SQL 分类 DDL (Data Definition Language): 操作数据库和表 DML (Data Manipulation Language): 增删改表中数据 DQL (Data Qu

2020-06-30 01:22:21 14368 1

原创 Redis之管道Pipelined使用姿势

redis管道技术,可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应,这种技术可以很方便的支持我们的批量请求,下面简单介绍下如何使用RedisTemplate来使用管道 I. 基本使用 配置 我们使用SpringBoot 2.2.1.RELEASE来搭建项目环境,直接在pom.xml中添加redis依赖 org.springframework.boot spring-boot-starter-data-redis 如果我们的redis是默认配置,则可以不额外添加任

2020-06-20 17:32:39 20237 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除