自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 quartz(二) 源码分析

// SimpleThreadPool——quartz里的工头儿// WorkerThread——quartz里的工人// QuartzSchedulerThread——Quartz里面的老板public class SimpleExample { public void run() throws Exception { Logger...

2019-01-20 22:19:55 487

原创 quartz (一)应用入门

由于项目需要,因此自己需要研究下quartz调度框架,基于mysql持久化到数据库,quartz使用的是c3po数据库连接池,因此需要导入相关包<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> &...

2019-01-20 21:18:53 254

原创 多线程进阶--线程的中断

java为我们提供了一种调用interrupt()方法来请求终止线程的方法,下面我们就一起来学习一下线程的中断。每一个线程都有一个boolean类型标志,用来表明当前线程是否请求中断,当一个线程调用interrupt() 方法时,线程的中断标志将被设置为true。 我们可以通过调用Thread.currentThread().isInterrupted()或者Thread.interrupted(

2017-11-08 15:18:45 341

原创 LockSupport

LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。每个使用LockSupport的线程都会与一个许可关联,如果该许可可用,并且可在进程中使用,则调用park()将会立即返回,否则可能阻塞。如果许可尚不可用,则可以调用 unpark 使其可用。但是注意许可不可重入,也就是说只能调用一次park()方法,否则会一直阻塞。 LockSupport.park()、LockSupport.u

2017-11-06 15:41:15 283

原创 ReentrantLock实现的源码分析

拜读过这篇文章http://ifeve.com/introduce-abstractqueuedsynchronizer/之后感觉对多线程又有了进一步的认识,但是这篇文章偏于理论,于是我便使用了调试的功能进行了进一步的分析认识,在看这篇文章之前建议先认真阅读上面链接的那篇文章。 先给出里面涉及到的类和接口的关系图: 先贴出来调试的 时候的代码:public class Run { pub

2017-11-04 18:50:02 254

原创 多线程进阶--Future与Callable

Future与Callable可以实现一种异步计算结果,Callable类似于一个增强的Runnable接口,和Runnable接口不同的是,它提供了一个call方法来执行线程代码,而call方法可以有返回值,也可以声明式的抛出异常。 Future的get方法会阻塞在那,等待执行完成,获取结果。 在整个FeatureTask中没有直接使用锁机制,而是通过LockSupport来阻塞线程,唤醒线程

2017-10-31 19:17:26 317

原创 微信三大平台

支付模式 https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=2_1 1、刷卡支付 刷卡支付是用户展示微信钱包内的“刷卡条码/二维码”给商户系统扫描后直接完成支付的模式。主要应用线下面对面收银的场景。 2、扫码支付 扫码支付是商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。该模式适用于PC网站支付

2017-10-31 17:20:22 1002

原创 多线程进阶二 Unsafe 源码

java中的Unsafe类 java不能直接访问操作系统底层,而是通过本地方法来访问。Unsafe类提供了硬件级别的原子操作,主要提供了以下功能:1、通过Unsafe类可以分配内存,可以释放内存;类中提供的3个本地方法allocateMemory、reallocateMemory、freeMemory分别用于分配内存,扩充内存和释放内存,与C语言中的3个方法对应。public native lon

2017-10-27 17:29:02 241

原创 java定时发送http请求

public class HttpRequest { /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 *

2017-10-27 16:03:32 6231 1

原创 多线程进阶InheritableThreadLocal

上篇说的是ThreadLocal,如果对ThreadLocal足够了解的话,InheritableThreadLocal也很好理解。InheritableThreadLocal类继承于ThreadLocal类,所以它具有ThreadLocal类的特性,但又是一种特殊的ThreadLocal,其特殊性在于InheritableThreadLocal变量值会自动传递给所有子线程,而普通ThreadLoc

2017-10-21 12:07:05 250

原创 多线程进阶ThreadLocal

线程的私有变量是利用ThreadLocal来实现的,那么怎么来的实现的呢,简单来说,就是Thread包含一变量map,这个map里面的键值对存放的是ThreadLocal —- Value键值对,也就是线程若需要存放多个私有变量,需要new出多个ThreadLocal,如public class Run { public static void main(String[] ar

2017-10-20 16:06:31 216

原创 多线程进阶(一)

当线程被创建并且启动后,它经历了5种状态:新建、就绪、运行、阻塞和死亡状态。当线程在运行的时候,不能一直占有CPU时间片,CPU会在多个线程之间进行调度,线程的状态也会多次切换于阻塞和运行状态。 当线程对象被创建出来是进入了新建状态,当调用了start方法后,线程进入就绪状态。这里可能读者的理解是线程start后进入运行状态,其实线程内部还是依赖JVM的调度,当调用了start方法后,JVM会认为

2017-10-13 16:49:45 250

原创 一些常用的设计模式(装饰者模式)

装饰模式(IO中) 又名包装模式 装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案 • 装饰模式以对客户透明的方式动态的给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。 • 装饰模式可以在不创造更多子类的情况下,将对象的功能加以扩展。装饰模式把客户端的调用委派到被装饰类。 装饰模式的关键在于这种扩展完全是透明的。 • 装饰模式是在不

2017-10-12 16:39:01 205

原创 一些常用的设计模式(策略模式)

(TreeSet(Compartor com)) 策略模式(Strategy Pattern)中体现了两个非常基本的面向对象设计的原则 – 封装变化的概念 – 编程中使用接口,而不是对接口的实现 • 面向接口的编程策略模式的定义 – 定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。 – 策略模式使这些算法在客户端调用它们的时候能够互不影响地变化• 策略模式的意义 – 策略

2017-10-12 15:53:48 280

原创 一些经常被忽略的细节性问题(一)

1.java 静态方法能否被覆盖? 贴代码,看实例public class Super { static String greeting(){ return "Good night"; } String name(){ return "Richard"; } }public clas

2017-10-12 15:09:24 489

原创 网银支付(接入的是连连支付)

连连支付的官方sdk文件有点多,但是看起来比较容易理解。逻辑上大体上跟支付宝支付差不多,配置也差不多,直接贴代码。不同的是要接入连连支付需要事先与连连支付人员取得联系,签订合同后他们会给你一个商户号,然后登陆https://b.lianlianpay.com/trader/login.htm,并配置一些基本配置。package com.llpay.client.config;/*** 连连支付

2017-10-09 16:56:55 3104 2

原创 pc端微信扫码支付

首先需要在微信公众平台(注意不是微信开放平台)注册一个账号,并开通微信认证,微信认证一次需要300块(太tm的贵了),并且需要提交各种资料。 审核过后, 进入 开发-》基本配置 开发者ID,开发者密码都需要记住后面需要用,开发者密码需要自己设置,很多人找不到32位密钥,这里可以用第三方软件生成! 百度:在线密码生成器——选择百度应用——随机密码生成器。微信扫码支付模式有两种,第一种需要配置很

2017-10-09 16:39:13 2421

原创 pc端支付宝扫码支付

前段时间开发了一个商城,集成了支付宝,微信,网银支付(接入的是连连支付第三方支付接口)。现在总结一下。 首先到https://www.alipay.com/ 注册一个支付宝商户号,进入开放平台,创建一个应用,签约电脑网站支付 接着配置应用信息: 这里的授权回调地址填的是支付宝付款成功后异步回调的地址,应用网关我填的是同步回调地址。下面的应用公钥需要自己设置 代码里面的配置:packa

2017-10-09 15:47:33 5793

转载 四种常见的 POST 提交数据方式对应的content-type取值

application/x-www-form-urlencoded 这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。请求类似于下面这样(无关的请求头在本文中都省略掉了): POST http://www.example.com HTTP/1.

2017-09-07 17:32:45 1725

转载 从request中获取所有请求参数

从 request 中获取请求参数有两种情况 1.从 get 方法中获取请求参数 get 方法的请求参数存放在 getQueryString() 方法中,不需要从 getInputStream() 中获取 2.从 post 方法中获取请求参数 post 方法的参数存放在 流当中需要从 getInputStream() 中获取。一次性获取request的参数,大部分是用来与json格式数据相互

2017-09-07 16:48:27 5179

原创 知识点

java知识点

2017-08-24 16:31:29 260

原创 xstream

一、XStream的用途 XStream是一个Java对象和XML相互转换的工具,很好很强大。提供了所有的基础类型、数组、集合等类型直接转换的支持。 因此XML常用于数据交换、对象序列化(这种序列化和Java对象的序列化技术有着本质的区别)。 Stream对象相当Java对象和XML之间的转换器,转换过程是双向的。创建XSteam对象的方式很简单,只需要new X

2017-08-16 16:10:21 292

原创 一些比较好的文章链接

hibernate 缓存机制:http://www.360doc.com/content/14/0801/16/1073512_398635409.shtml数据库事务隔离级别及锁机制: http://comedsh.iteye.com/blog/698733 http://blog.csdn.net/jiangwei0910410003/article/details/24960785hibe

2017-06-23 20:28:51 260

原创 三.javassist实现代理

在hibernate中采用这种方式实现代理,可以从hibernate中把需要的jar包拿过来:javassist-3.12.0.GA.jarpackage com.lzzl.javassistproxy;public class Demo { public void forJavassistTest(){ System.out.println("--------

2017-06-22 14:08:35 285

原创 二.cglib实现动态代理

实现cglib动态代理需要导入jar包,我这里是从spring项目中直接拿过来的com.springsource.net.sf.cglib-2.1.3.jar看代码package com.lzzl.cglibproxy;public class Person { public void doSomething(){ System.out.println("dosometh

2017-06-22 13:46:10 421

原创 动态代理实现的三种方式

动态代理实现有三种方式,jdk动态代理(基于接口),cglib动态代理(基于继承),javassist(hibernate中使用这种方式)实现动态代理一 jdk实现动态代理package com.lzzl.jdkproxy;public interface Pet { public void say();}package com.lzzl.jdkproxy;public class Do

2017-06-22 13:18:05 10138

原创 hibernate 快速入门

首先导入hibernate 需要到的jar包 然后在src下面配置hibernate.cfg.xml,这里面是连接数据库需要的信息<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN

2017-06-21 15:18:20 219

原创 hibernate 关联关系映射

一对一外键单向关联 一对一外键双向关联 一对一主键单向关联 一对一主键双向关联一对多外键单向关联 一对多外键双向关联 多对一外键单向关联多对多单向关联 多对多双向关联

2017-06-21 14:53:21 183

转载 Spring事务总结---传播级别以及REQUIRED_NEW及NESTED的使用场景(赞)

Spring事务总结—传播级别以及REQUIRED_NEW及NESTED的使用场景(赞) 三、Spring事务的传播性与隔离级别Spring它对JDBC的隔离级别作出了补充和扩展,其提供了7种事务传播行为。(通俗解释原址)1、PROPAGATION_REQUIRED:默认事务类型,如果没有,就新建一个事务;如果有,就加入当前事务。适合绝大多数情况。2、PROPAGATION_REQUIRES_N

2017-06-15 10:22:01 1529

原创 spring singleton与prototype的引用关系

spring中Bean元素的作用域: 元素scope属性: ① scope=”singleton” 单例 ,在Spring IoC容器中仅存在一个Bean实 例 (默认的scope) ② scope=”prototype” 多例 ,每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时 ,相当于执行new XxxBean()(多例) ③scope=”request”

2017-06-03 17:15:05 748

转载 class.getResource()的用法

[转载]class.getResource()的用法:http://www.cnblogs.com/adolfmc/archive/2012/11/28/2792620.html用JAVA获取文件,听似简单,但对于很多像我这样的新人来说,还是掌握颇浅,用起来感觉颇深,大常最经常用的,就是用JAVA的File类,如要取得c:/test.txt文件,就会这样用File file = newFile(“c

2017-05-25 09:59:46 325

日期时间插件

移动端日期时间选择控件,底部弹出窗口,方便选择,你值得拥有

2018-02-05

移动端日期时间选择插件

移动端日期时间选择插件,底部弹窗,可以自由配置参数

2018-02-05

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

TA关注的人

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