- 浏览: 56618 次
- 性别:
- 来自: 上海
最新评论
文章列表
http://blog.csdn.net/shineflowers/article/details/40047479
① 这两个方法来自不同的类分别是,sleep来自Thread类,和wait来自Object类。
sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep。
Object类方法:http://blog.csdn.net/k678mh/article/details/8594769
String常使用的方法:https://zhidao.baidu.com/question/2324 ...
Java的类加载器的机制
- 博客分类:
- jvm
java类的加载是由虚拟机来完成的,虚拟机把描述类的Class文件加载到内存,并对数据进行校验,解析和初始化,最终形成能被java虚拟机直接使用的java类型,这就是虚拟机的类加载机制.JVM中用来完成上述功能的具体实现就是类加载器.类加载器读取.class字节码文件将其转换成java.lang.Class类的一个实例.每个实例用来表示一个java类.通过该实例的newInstance()方法可以创建出一个该类的对象.
https://www.cnblogs.com/fingerboy/p/5456371.html
利用classloader特性的一些场景应用
equals和==的区别
equals用来比较的是两个对象的内容是否相等
"=="只是比较引用(对象的地址)。
如果一个类没有自己定义equals方法,那么它将继承Object类的equals方法,Object类的equals方法的实现代码如下:
boolean equals(Object o){
return this==o;
}
这说明,如果一个类没有自己定义equals方法,它默认的equals方法(从Object 类继承的)就是使用==操作符,也是在比较两个变量指向的对象是否是同一对象,这时候使用equals和使用==会得到同样 ...
内存管理机制:
空间默认比例:
https://www.cnblogs.com/junwangzhe/p/6282550.html
JVM调优总结 -Xms -Xmx -Xmn -Xss:
https://blog.csdn.net/huaweitman/article/details/50765880
Java内存管理原理及内存区域详解:
http://www.importnew.com/16433.html
https://www.cnblogs.com/songxh-scse/p/5887977.html
内存区域的分类,不同类型的内存分配,
垃圾回收机制
java回收算法:(1).标记 ...
非阻塞IO和异步IO的区别
- 博客分类:
- Core Java
https://www.cnblogs.com/euphie/p/6376508.html
http://blog.chinaunix.net/uid-26000296-id-3754118.html
非阻塞
调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。
阻塞调用是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回。
非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。
异步
异步的概念和同步相对。
当一个异步过程调用发出后,调用者不会立刻得到结果。
实际处理这个调用的部件是在调用发出后,
通过状态、通知来通知调用者,或通过回调 ...
HashMap:
数组与链表,每个数据对应一个链表
插入时进行与运算
http://blog.csdn.net/tingting256/article/details/52475422
数组默认长度16,当超过16*0.75=12时,组数长度变为16*2->叫resize,毁
HashMap的基础构造器HashMap(int initialCapacity, float loadFactor)带有两个参数,它们是初始容量initialCapacity和加载因子loadFactor。
https://www.cnblogs.com/ITtangtang/p/3948406.html
相同含义 ...
1.选择排序:不稳定,时间复杂度 O(n^2)
2.插入排序:稳定,时间复杂度 O(n^2)
3.冒泡排序:稳定,时间复杂度 O(n^2)
4.堆排序:不稳定,时间复杂度 O(nlog n)
5.归并排序:稳定,时间复杂度 O(nlog n)
6.快速排序:不稳定,时间复杂度 ...
多线程并发获取订单号
- 博客分类:
- 电商订单业务相关
使用倒计数器(信号量)重现高并发场景:
package com.baozun.trade;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import org.slf4j.Logger;
import org.slf4j.LoggerFac ...
asiapay支付调用
- 博客分类:
- 电商-支付相关
国际信用卡支付,官方有英文也有中文文档,
登录后可以看中文文档
https://test.paydollar.com/b2cDemo/gb/merchant/mis_index.html
https://test.paydollar.com/b2cDemo/gb/merchant/download/PayDollar_Merchant_User_Guide_gb_v3-5.pdf
引入sdk包:
<properties>
<!-- asiapay -->
<version.asiapay>1.0</version.asiapay>
...
总结20170816
- 博客分类:
- Core Java
总体分为两类,注重基础技术,注重高并发多线程应用
java基础相关:
1.数据类型:
数据类型
基本数据类型
数值型 整数类型bype
byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。
short:16位,最大数据存 ...
银联unionpay取消订单与超时时间
- 博客分类:
- 电商-支付相关
unionpay官方api:
https://open.unionpay.com/ajweb/help/api
订单超时:
订单接收超时时间-orderTimeout:
超时后,再重启页面会显示订单超时无法支付,但是之前打开的支付画面若有保留还是可以支付的。
支付超时时间-payTimeout:
超时后,还是可以支付的
关于支付宝:
第一次下单只能payurl开始计时取消时间,在此时间存放 固定时长会有漏洞
固定时长-(现在时间-创单时间)= (120 - 0或1或2分钟)m
H5商城在微信APP里支付
- 博客分类:
- 电商-支付相关
前言: jsapi支付方式,必须是关注公众号,后才能掉用微信支付,而作为非公众号的h5画面需要采用js sdk的方式唤起微信支付。
这里推荐微信公众平台测试链接:
http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
1.获取code
前台get方式即可,或在后台
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx87a416348df09713&redirect_uri=http%3A%2F%2F10.88.75.139%3A8082%2F ...
微信公众号支付,获取openId
- 博客分类:
- 电商-支付相关
1. 获取code
1.1关注公众号后采用https://open.weixin.qq.com/connect/qrconnect
https://open.weixin.qq.com/connect/qrconnect?appid=wxd01b****c55a&redirect_uri=my-***.com%2fcheckout%2fcart&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect
1.2 h5网页版采用
https://open.weixin.qq.com/connec ...
整单优惠的价格按照比例均摊到每一订单行价格
/**
* 按照百分比分摊 order级别的discount
* 当商品行价格<需要扣减的价格,取商品行价格作为抵扣
* 如果到最后个产品商品行依然<需要扣减的价格,抛出异常
* @param orderLines
* @param orderPayment
* @param wholePromotions
* @return
* @throws OrderValidateException
*/
private BigDecimal divideWholeDiscount( ...
1.定时任务时间配置:
http://cron.qqe2.com/
2.校验正则表达式相等:
boolean boo = Pattern.compile("/pay/([0-9]+/){2,3}notify.htm").matcher("/pay/602/320/0/notify.htm").matches();
System.out.println(boo);
3.对象转map:
private static HashMap<String, String> toHashMap(Object object) {
Has ...