- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 Spring boot resttemplate 其实也可以当成http client来用
这段时间都在用Spring boot,真的是非常的方便,去除了繁琐的copy文件搭建项目的问题。在这期间遇到了一个要请求别人服务器接口的问题,一开始是用到了http client来请求的,但是个人觉得挺麻烦。于是乎就尝试了下请求服务提供者的用到的restTemplate了。想不到也是可以请求成功的,当中的原理本人还是暂时不知道的啦。哈哈废话不多说 贴上样例代码:GET请求例子:我们假设请求一个获取
2017-12-24 21:58:36
2532
原创 hotspot垃圾收集器简介
简介如果收集算法是虚拟机收集对象的灵魂,那么垃圾收集器就是对象的实现工具。hotspot虚拟机包含的虚拟机如下图所示:
2017-04-21 08:23:42
659
原创 HotSpot垃圾收集算法简介
经过对象存活算法的判定,可以得到一些等待被收集的垃圾对象。而这些对象要用什么方法收集呢?这里也是一个学问,有很多算法可以收集这些对象。下面简单介绍几种收集算法。分代收集思想当前大多数垃圾收集都采用“分代收集”的思想,就是把老年代和新生代分开用不同的算法进行收集。因为新生代每次垃圾收集的时候都会有大量死去的对象,而老年代一般情况都很少死去的对象。所以分代收集是很适合的一种方法。标记-清除算法标记清除算
2017-04-09 21:17:31
748
原创 Java引用
引用通过上一章讲述了对象是否判断“死亡”算法讲述了对象的一生。但是这里要特别提醒,无论通过“引用计算算法”还是通过“可行性分析算法”,判断对象是否存活都与引用有关系。在JDK1.2之前,定义类是否被引用了是很简单的,就是判断是否有“reference”的存在,如果存在就表示该类被引用着。 但是对于有一些类,虽然他们没有被引用,但是当内存足够时我们还是想把他们保存在虚拟机里,不被GC掉。于是在JDK
2017-03-29 08:14:30
452
原创 对象存活判定算法-判断对象是否活着
对象被JVM收集的前提是该对象已经被JVM标记为了“死去”的对象。判断对象是否活着的算法引用计数法引用计数法的基本概念是:给对象添加一个引用计数器,每当有一个地方引用了该对象,计数器就加1;当引用失效,计数器就减1;任何时刻的计数器为0的对象就是不可能在被使用的对象。虽然是一个实现简单有效的算法,但是JVM已经很少使用这种算法了。可行性分析算法现在主流的JVM都是采用“可行性分析”的算法来标记“死去
2017-03-28 08:24:06
922
原创 虚拟机创建对象的过程探索
对象的创建Java是面向对象的语言,一般情况下创建对象都是通过new来创建的(少数情况是通过克隆和反射来发生的)。那么虚拟机中,对new创建出来的对象时,是要走什么过程的呢?首先是寻找类类型的过程: 1.到一个地方寻找这个类的符号引用。 2.检查符号引用的对应的类是否已经被加载了、解析、初始化。 3.如果没有加载,就需要经过加载器来加载该类的过程。对象内存细节分布说明接下来是以类为基础创建对象
2017-03-24 07:50:00
543
原创 设计模式随笔-适配器模式
大家还记得装饰者模式吗?我们将对象包装起来,赋予他们新的职责。现在则有不同的目的:让对象包装起来,而不在像自己了。那么为什么要这么做呢?因为其目的就是把类的接口转换成想要的接口。 就好像大家熟知的usb充电器一样,苹果不适用的,那么就需要一个转换的过程把这个usb的充电器转成苹果手机的充电口。适配器模式还记得设计模式随笔-策略模式中的鸭子吧?//鸭子的接口public interface Duc
2016-11-16 16:59:11
374
原创 设计模式随笔-命令模式
命令模式封装调用方法,命令模式能够把方法调用封装到一个起来。这样,命令方法就不用在乎方法内部是做什么的了,只需要关心封装的过程,是开还是关闭某些东西。 它能做记录日志,或者撤销等。家电自动化遥控器(命令模式详解)现在我们有一个需求,就是帮家电厂商设计一个遥控器,这个遥控器有4个链接设备的开关,和一个撤销按钮。如下图所示: 现在我们看看厂商的家电类有什么特征: 第一个命令对象首先我们要创建一
2016-11-13 10:32:57
366
原创 设计模式随笔-单件模式
单件模式单件模式是可以用来创建独一无二的,只能有一个的对象。 单件模式的类图可以说是最简单的,事实上它的类图只有一个类,但是也不要把它想的那么简单,因为它也是需要很多限制才能够安全的运行起来。首先我们来看一个经典的单件模式的代码:public class Singleton { private static Singleton singleton; private Singleton
2016-10-21 16:36:36
407
原创 设计模式随笔-工厂模式
工厂模式在平常的编程中,我们经常使用到new 这个关键字来创建一个对象,但是你知道吗?还有很多方法可以创建一个对象。因为new对象出来,可能会造成代码的耦合度提升,工厂模式就是用来解决这一问题的模型。 可能有些同学会问到,new有什么不对劲的呢?其实new本身是没有什么错的,毕竟这是我们开始学习java的时候就用new来创建对象了。但是错就错在我们可能会经常“改变”。 什么是“改变”呢?也可以理
2016-10-20 00:12:31
755
原创 设计模式随笔-观察者模式
观察者模式观察者模式是JDK中使用最多的模式之一,非常有用。它是一对多关系,以及松耦合。有了观察者,你将会消息灵通。天气监测应用概况
2016-09-04 18:57:30
739
原创 设计模式随笔-策略模式
策略模式笔记最近看完了一本叫《Head First 设计模式》的书,学习到了一些关于基础的模式,也在这记录一下自己的学习心得,写此笔记是希望在现实项目中想用某种模式,但是又模糊不清时,能够方便查看笔记。Duck问题首先看以下设计: 现在产品经理要改需求了,需要让鸭子会飞。于是咋们很容易想到在Duck对象里加一个会飞的方法。于是乎有了以下的设计: 但是可怕的事情发生了。因为继
2016-08-19 22:57:11
682
原创 java处理浮点类型的加减乘除法出现小数点精度错乱的解决方法
如果你在java里面运行一下一段代码,你会发现会出现错乱的小数点: double d1 = 100.0234; double d2 = 12.0652; System.out.println(d1-d2);输出的结果可能是这样的:87.95819999999999 这个结果绝对不是我们所需要的结果咯,因为这个是科学计数的结果,如果你想要得到正确的结果,
2015-10-09 15:15:25
6149
原创 微信自定义菜单的创建(JAVA版)
微信自定义菜单的创建与使用微信自定义菜单的创建与使用需求菜单类介绍场景代码总结需求当微信公众号设置为开发者模式,想要自己创建和开发菜单的话,就需要自己调用微信创建菜单的接口来创建菜单了。创建菜单之后,如果需要迫切的看到效果,有时候需要取消关注-从新关注才能够看到的哦(缓存问题)。由于新版微信添加的挺多按钮类型,目前只实现click(点击推事件)和view(跳转URL),其他类型的大致相同。
2015-10-09 11:39:26
1007
原创 微信转发指定的图文消息到朋友圈(JAVA版)
获取凭证获取aceess_token获取jsapi_ticket缓存获取的jsapi_ticketconfig接口注入权限引入js文件微信权限注入接口JS-SDK分享接口调用总结需求当用户购买成功一样产品,为了使用户能够二次消费,可以在订单详细页面加一个红包按钮,当用户点击之后,可以分享特定的内容(一个title、一段描述、一条超
2015-09-06 10:01:02
9126
3
原创 微信JSAPI支付(JAVA版)
最近公司需要在现有的项目都加入微信支付。做了一个星期的微支付,就当分享一下自己所学到的一些知识吧。JSAPI支付适用于手机版项目,当然也不是绝对的。流程大致: 1. 注册微信公众号(注册的时候注意选择公众号类型) 2. 公众号认证和微信支付认证(一般人工校验需要一天的时间) 3. 在微信公众号里授权微信支付url、OAuth2.0网页授权和JS接口安全授权(挺繁琐的= =) 4. 开
2015-08-21 17:03:07
7721
17
原创 java.jdbc 连接数据库
工作了半年了,最近做一个小小的花店网上销售系统,系统很小,所以想只用JSP和servlet来完成。可是问题来了,工作那么就好像都是再用框架来写,于是又要找回以前读书时写得JDBC代码看看怎么连接数据库。贴一个测试连接数据库的代码出来吧,相信大家都看得懂!import java.sql.Connection;import java.sql.DriverManager;import java.
2015-03-10 17:00:17
553
原创 HTML-iframe框架的应用
在HTML里面,iframe是一个经常用到的框架。 width:该框架的宽度。height:该框架的高度。scrolling:表示滚动条(auto,yes,no),默认是auto。frameborder:表示框架的边框大小。iframe就好像是浏览器里面有可以增加一个浏览器,使用起来非常的方便,而且有利于简化开发。如果想要点击一个连接,把显示内容显示在该页的if
2015-01-07 09:38:10
726
原创 SSH 与jQuery的Ajax整合时,返回数据的时失败的解决方法
在做项目的是否发现的一个小BUG,我也是在百度里面找到的答案!希望对大家有所帮助!这是一个注册页面检查用户名是否已经被注册的功能!首先看Ajax代码:$.ajax({ url:"../../ajaxLoginAction", data:{loginname:value}, type:"POST", dataType:"json", async:false, ca
2014-12-07 15:00:22
820
原创 OGNL表达式
OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目。 Struts 2框架使用OGNL作为默认的表达式语言。在jsp页面中
2014-10-25 16:13:33
566
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人