手写ArrayList
1. ArrayList集合底层数据结构
ArrayList集合介绍
List 接口的可调整大小的数组实现。
数组:一旦初始化长度就不可以发生改变
数组结构介绍
增删慢:每次删除元素,都需要更改数组长度、拷贝以及移动元素位置。
查询快:由于数组在内存中是一块连续空间,因此可以根据地址+索引的方式快速获取对应位置上的元素。
2. ArrayList继承关系2.1 Serializable标记性接口
介绍 类的序列化由实现java.io.Serializable接口的类启用。 不实现此接口的类将不会使任何状态序列化或反 序列化。 可序列化类的所有子类型都是可序列化的。 序列化接口没有方法或字段,仅用于标识可串行化的语 义。
序列化:将对象的数据写入到文件(写对象)
反序列化:将文件中对象的数据读取出来(读对象) 2. Serializable源码介绍
Serializable源码介绍
12public interface Serializable { }
案例: 通过序列化流序列化和反序列化集合
1234567891011121 ...
EasyExcel处理Excel
一、Excel导入导出的应用场景1、数据导入:减轻录入工作量
2、数据导出:统计信息归档
3、数据传输:异构系统之间数据传输
二、EasyExcel简介1、EasyExcel特点
Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的full gc。
EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。
EasyExcel采用一行一行的解析模式,并将一行的解析结果以观察者的模式通知处理(AnalysisEventListener)。
三、创建项目,实现EasyExcel对Excel写操作1、创建一个普通的maven项目项目名:excel-easydemo
2、pom中引入xml相关依赖1234567<dependencies> <!-- htt ...
文件下载
JavaWeb方式文件下载需求:
1. 页面显示超链接
2. 点击超链接后弹出下载提示框
3. 完成图片文件下载
1234567891011121314151617181920212223242526272829303132@RequestMapping("/download")public void downLoad(HttpServletRequest request, HttpServletResponse response) throws IOException { String filename = request.getParameter("filename"); System.out.println(filename); // String realPath = this.getClass().getResource("/static/"+filename).getPath();不支持中文 String realPath = new ClassPathResou ...
更新apt源头
123456# 查看linux中版本信息cat /etc/issuecat /proc/version uname -a
镜像加速CentOS系统
1、先安装wget命令及备份原文件:
yum install -y wget && mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/
备注:海外节点用阿里云,国内节点阿里或163都可以.
CentOS 6
阿里源:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
163源:wget -O /etc/yum.repos.d/CentOS-Base.rep ...
Springboot自定义异常
一、什么是统一异常处理1、制造异常除以0
1int a = 10/0;
2、什么是统一异常处理我们想让异常结果也显示为统一的返回结果对象,并且统一处理系统的异常信息,那么需要统一异常处理
二、统一异常处理1、创建统一异常处理器在service-base中创建统一异常处理类GlobalExceptionHandler.java:
12345678910111213/** * 统一异常处理类 */ @ControllerAdvicepublic class GlobalExceptionHandler { @ExceptionHandler(Exception.class) @ResponseBody public R error(Exception e){ e.printStackTrace(); return R.error(); }}
2、测试返回统一错误结果
三、处理特定异常1、添加异常处理方法GlobalExceptionHandler.java中添加
123456@Excepti ...
手摸手一步一步搭建GitLab服务器
Gitlab代码托管服务器安装Gitlab简介
官网: https://about.gitlab.com/
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的 web服务
GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(基于MIT协议),与Github类似, 可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务器 上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,你总不可能把团队内部的智慧总放 在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。
Gitlab安装
安装相关依赖
yum -y install policycoreutils openssh-server openssh-clients postfix
启动ssh服务&设置为开机启动
systemctl enable sshd && sudo systemctl start sshd
设置postfix开机自启,并启动,postfix支持git ...
支付宝支付Api
1.蚂蚁金服文档地址文档入口:https://opendocs.alipay.com/open/270
沙箱文档入口:https://opendocs.alipay.com/open/200/105311
2.支付流程
2.1 首页开发服务中找到沙箱
2.2 页面中找到进入沙箱环境
2.3 生成RSA密钥进入沙箱应用之后可以看到信息配置部分需要设置RSA2(SHA256)密钥,因为文档很详细了,我就不写了
具体步骤: https://opendocs.alipay.com/open/291/105971
3.支付功能移植到项目官方Demo:https://opendocs.alipay.com/open/270/106291
官方Demo是使用jsp处理和响应请求的,有兴趣自己下载下来测试下,我这直接整合到Springboot里用Controller处理了
①加入支付功能相关依赖参考文档:https://docs.open.alipay.com/54/103419
12345<dependency> <groupId>com.alipay.sdk< ...
QQ第三方登录
qq互联申请开发者账号搞第三方登录,必须先进行接口的申请 得到授权;
QQ第三方接口的申请地址:QQ互联 https://connect.qq.com/index.html
申请之前,你必须有一个进行过国内备案过的网站,个人也可以;
登录QQ互联后,首先填写个人或者公司信息,然后申请网站应用,但是APP的话,需要申请移动应用.
填写后,一般一周内审核
这里有个回调地址注意下,是用户进行第三方登录的时候会带上这个参数一起请求服务器,然后腾讯服务器再调用这个地址,顺便把用户信息带也过来,这样开发者的服务器就能得到用户信息了;
get_user_info接口窥探申请通过过,腾讯开放平台给我们提供了get_user_info接口
我们得熟悉下这个接口,通过这个接口我们能获取到一些比如昵称,性别,头像等信息;
接口概要
请求参数:
请求Demo:
https://graph.qq.com/user/get_user_info?access_token=YOUR_ACCESS_TOKEN&oauth_consumer_key=YOUR_APP_ID&openid=YOUR ...
微信支付
微信支付1 开发准备1.1 开发文档微信支付接口调用的整体思路:
按API要求组装参数,以XML方式发送(POST)给微信支付接口(URL),微信支付接口也是以XML方式给予响应。程序根据返回的结果(其中包括支付URL)生成二维码或判断订单状态。
在线微信支付开发文档:
https://pay.weixin.qq.com/wiki/doc/api/index.html
这里用的是微信公众平台,微信登录是微信开发平台,并且不能同一个邮箱,这个微信支付必须是服务号且认证过的。所以鑫哥又没办法自己申请了,还是用的我们的大尚硅谷的,强势给尚硅谷打一波广告…..希望大家去B站关注一波吧…..
12341. appid:微信公众账号或开放平台APP的唯一标识2. mch_id:商户号 (配置文件中的partner)3. partnerkey:商户密钥4. sign:数字签名, 根据微信官方提供的密钥和一套算法生成的一个加密信息, 就是为了保证交易的安全性
1.2 微信支付模式这是官方的模式二,模式一是用户自己选择支付金额,二维码永久生效
这个模式二是系统生成价格,然后二维码只能使用一 ...
微信登录
一、准备工作https://open.weixin.qq.com
1、注册
2、邮箱激活
这是微信开放平台 不能和微信公众平台用一个邮箱号
3、完善开发者资料
4、开发者资质认证
准备营业执照,1-2个工作日审批、300元
5、创建网站应用
(这个我是没办法认证,所以也没截图了,下面放的是博客 blog.java1234.com中的图片哦,我是后面用的别的方法跳转到本地的….)
提交审核,7个工作日审批(其实和QQ认证差不多的,看这个之前还是先看看我手摸手带兄弟们写的QQ第三方的登录)
6、熟悉微信登录流程
参考文档:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=e547653f995d8f402704d5cb2945177dc8aa4e7e&lang=zh_CN
二、后端开发(开发授权Url)1、添加配置application.proper ...







