自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 支付宝支付详细流程

一.在前台payPet.html页面用户点击立即领养提交订单1.利用工具类生成一个不重复的订单编号(根据token获取用户信息,将用户ID传入工具类)orderSn2.先保存订单地址表t_order_address(注意调用保存方法之前设置订单编号orderSn),并返回一个主键3.在保存领养订单表t_order_adopt表(注意调用保存方法之前设置地址id,订单摘要,订单金额,店铺id,订单编号orderSn),并根据工具类DateUtils.addMinutes()设置一个最迟支付时间,并返回

2021-01-23 16:02:49 2240

原创 HashMap底层研究

HashMap的线程不安全,实现了Map,Cloneable, Serializable接口,以及继承了AbstractMap,可以使用null作为key,无序(存入顺序和输出顺序不一样)jdk1.8之前底层是利用数组和单向链表实现的,1.8之后增加了红黑树,当一个单向链表的长度大于8时就会使用红黑树,使其效率更高,初始容量为16,填充因子是0.75,容量翻倍是以两倍的方式capacity*2,平时无特殊要求的时候尽量选择HashMap,当遇到多线程的时候可以使用Collections.synchroni

2020-12-07 22:03:31 161

原创 关于Mysql的那些事

执行流程:FROM -> 决定从哪一个表查询WHERE -> 决定从表中哪一些开始查询(条件过滤,学会善用条件过滤),从数据库表文件加载到内存中的原生数据过滤GROUP BY -> 决定按照什么分组进行组内查询,一般跟聚集函数联合使用SELECT -> 决定显示哪一些字段,在内存中形成一张临时表HAVING -> 在组内条件过滤,一般使用SELECT语句中的聚集函数作为过滤条件。HAVING 是对SELECT 语句执行之后的临时表中的数据过滤ORDER BY -&g

2020-08-21 19:45:09 191

原创 关于Map的那些事

Map:以键值对的形式存储值 键不能重复(如果键重复了 值会被覆盖) 值可以重复Map也是一种容器的接口,里面存储的是一对一对的数据,每添加一次,添加的是两个(一对)数据Collection体系,存储在都是单个单个的数据,数据之间没有关系的Map和Collection是两个没有关系并列的体系(主要从代码结构来看)Map的声明: public interface Map{}常用的实现类:HashMap:HashMap是Map接 口实现1.可以使用nu11作为键或者值2.无序(输出顺

2020-08-17 20:30:31 201

原创 关于List和Set集合的一些问题

List集合一.ArrayList是List接口的实现类,底层基于数组实现(有索引),线程不安全,可以存放任意数据类型,任意个数,有序可重复(添加顺序和输出顺序不一样)其三种遍历方式:for循环(省略)foreach循环(省略)Iterator迭代器( Iterator iterator = 集合名.iterator();while(iterator.hasNext()){//判断是否有下一个元素System.out.print(iterator.next()+"\t");})二.Lin

2020-08-17 17:01:02 168

原创 关于多线程一些问题

多线程的创建:一.继承Thread类 步骤:1.编写一个类继承java自带的Thread类 2.覆写Thread类中run方法2创建类的对象,调用父类中的start( )方法 start( ) 使该线程开始执行; Java虚拟机调用该线程的 run方法。3多线程中Thread类的run()和startd()的用法区别答:调用run()方法相当于对象调用普通方法,调用start()方法相当于开启了一个新线程但优先级小于主线程4.Thread类中常用的方法 :void setName(String

2020-08-17 15:00:59 93

原创 String与StringBuffer与StringBuilder区别

String底层是一个final类型的字符数组,所以String的值是不可变的,每次对String的操作都会生成新的String对象,造成内存浪费而StringBuffer和StringBuilder就不一样了,他们两都继承了AbstractStringBuilder抽象类,他们的底层都是可变的字符数组,所以在进行频繁的字符串操作时,建议使用StringBuffer和StringBuilder来进行操作。且StringBuilder线程不安全但效率较高,StringBuffer线程安全但效率较低(可以使用

2020-08-17 12:58:06 92

空空如也

空空如也

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

TA关注的人

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