<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ilovewqf的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ilovewqf</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ilovewqf]]></copyright><item><title><![CDATA[JAVA8反射获取方法参数名]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/103198763</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/103198763</guid><author>ilovewqf</author><pubDate>Fri, 22 Nov 2019 12:29:06 +0800</pubDate><description><![CDATA[jDK1.8的修改，在JDK8中，反射可以得到方法参数名了。是因为Method类加了新的方法
public Parameter[] getParameters()

但是实际项目中得到的确是arg0这样的参数名。请看下面代码:
public static void main(String[] args) throws NoSuchMethodException {
    final Method...]]></description><category></category></item><item><title><![CDATA[JDBC以SSL方式连接MYSQL]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/102519919</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/102519919</guid><author>ilovewqf</author><pubDate>Sat, 12 Oct 2019 14:30:09 +0800</pubDate><description><![CDATA[网络上推荐的做法是配置useSSL=false
但是如果服务器配置了强行SSL连接呢，就会报这个错
Connections using insecure transport are prohibited while --require_secure_transport=ON.
所以只能配置
useSSL=true

但是紧接着又会报这个错
java.security.cert.Certificat...]]></description><category></category></item><item><title><![CDATA[调用wx.relaunch报错:fail can not invoke relaunch in background]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/100673041</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/100673041</guid><author>ilovewqf</author><pubDate>Mon, 09 Sep 2019 20:02:43 +0800</pubDate><description><![CDATA[微信小程序报错的原因是小程序进入后台后，不能调用relaunch函数。
在支付成功的回调函数，是在一个异步的线程里执行的，所以relaunch一定失败。
使用setTimeout也一定会失败，这个时候，就需要想办法让它在主线程里执行。
微信的setData有个回调，就是在主线程里执行的，所以支付后跳转的唯一解决方案是
"success": function(res) {
    that.setD...]]></description><category></category></item><item><title><![CDATA[spring registrar机制]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/93200857</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/93200857</guid><author>ilovewqf</author><pubDate>Fri, 21 Jun 2019 16:03:30 +0800</pubDate><description><![CDATA[其实Spring的registrar机制是为了配置类上的自定义注解的。
如果配置类上有自定义注解，那么spring就会读取这个自定义注解，看这个自定义注解是否有import属性。在spring的这个方法里
org.springframework.context.annotation.ConfigurationClassParser#processImports会处理自定义注解的import属性。I...]]></description><category></category></item><item><title><![CDATA[kotlin数字与java数字的不同]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/88351734</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/88351734</guid><author>ilovewqf</author><pubDate>Fri, 08 Mar 2019 15:08:42 +0800</pubDate><description><![CDATA[kotlin的数字与java的数字完全不同
1 表示long类型不能使用小写l，只能使用大写L，比如这个就要报错
val l = 1l

2 没有八进制，下面也是要报错的
val i = 011

3 不支持十六进制科学计数法表示double,这样写也不行
val d = 0x3p3

4 大数字不需要加大写L，会自动转换为long类型
val bigNumber = 10000000000000...]]></description><category></category></item><item><title><![CDATA[使用kotlin开发spring boot]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/88093890</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/88093890</guid><author>ilovewqf</author><pubDate>Sun, 03 Mar 2019 21:01:25 +0800</pubDate><description><![CDATA[开发起来还是特别难的，因为我对kotlin不是很了解。
从网上copy的代码如下：
@SpringBootApplication
open class Main{

    companion object {

        @JvmStatic
        fun main(args:Array&amp;amp;lt;String&amp;amp;gt;) {
            SpringApplication...]]></description><category></category></item><item><title><![CDATA[RSA算法JAVA通用代码]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/81914296</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/81914296</guid><author>ilovewqf</author><pubDate>Tue, 21 Aug 2018 20:48:51 +0800</pubDate><description><![CDATA[一 获取密钥



KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance(&amp;quot;RSA&amp;quot;);
KeyPair keyPair = keyPairGenerator.generateKeyPair();
PrivateKey privateKey = keyPair.getPrivate();

二 保存公钥 
因为公钥是二进制...]]></description><category></category></item><item><title><![CDATA[java与python++运算符的不同]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/80049194</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/80049194</guid><author>ilovewqf</author><pubDate>Mon, 23 Apr 2018 13:17:59 +0800</pubDate><description><![CDATA[我是先学java，再学python的。 
今天就遇到了一个坑。 
就是++和–运算符。 
在java中++a,是使a增加1，然后返回增加之后的值。 
但是在python中，++是两个正号，所以变量的值不会变。 
另外，在python中，a++是会报语法错误的。 
–也一样哦。在python中，–a是负负得正，所以直接返回a。而a–会报语法错误。...]]></description><category></category></item><item><title><![CDATA[python之禅]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/79589883</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/79589883</guid><author>ilovewqf</author><pubDate>Sat, 17 Mar 2018 10:47:38 +0800</pubDate><description><![CDATA[在python命令行模式下，输入import this,会输出一堆意想不到的东西。如下:



&amp;gt;&amp;gt;&amp;gt; import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than comple...]]></description><category></category></item><item><title><![CDATA[Class文件格式]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/78878513</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/78878513</guid><author>ilovewqf</author><pubDate>Sat, 23 Dec 2017 10:25:39 +0800</pubDate><description><![CDATA[一 总体结构 
class文件用C语言的结构体这样表示



ClassFile {
    u4 magic;
    u2 minor_version;
    u2 major_version;
    u2 constant_pool_count;
    cp_info constant_pool[constant_pool_count-1];
    u2 access_flags;
...]]></description><category></category></item><item><title><![CDATA[Kotlin的解构定义]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/78826414</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/78826414</guid><author>ilovewqf</author><pubDate>Sun, 17 Dec 2017 17:43:05 +0800</pubDate><description><![CDATA[众所周知，kotlin是一种划时代的编程语言，犀利的语法减少了我们很多的工作量。解构定义就是如此。 
变量的解构定语法义如下：

val (name, age) = jane 

解构语法可以快速地将对象的各个属性赋值给一串变量。就比如上例，将jane这个人的名字与年龄属性赋值给name和age这两个变量。 
如果要解构，必须是类有componentN函数。jane这个对象的name和age属性的...]]></description><category></category></item><item><title><![CDATA[Kotlin const关键字]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/78826373</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/78826373</guid><author>ilovewqf</author><pubDate>Sun, 17 Dec 2017 17:38:15 +0800</pubDate><description><![CDATA[只读属性使用const关键字之后将没有get方法，举个例子 
在kotlin文件中，写两个包级属性，一个是const，一个不是const



const val i = 1
val j = &amp;amp;quot;A&amp;amp;quot;

使用java代码访问，访问方式是不同的



public class TestConst {
    public static void main(String[] args) {
      ...]]></description><category></category></item><item><title><![CDATA[JAVA EE环境使用JMX]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/78826334</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/78826334</guid><author>ilovewqf</author><pubDate>Sun, 17 Dec 2017 17:32:36 +0800</pubDate><description><![CDATA[J2EE怎么使用JMX？目前支持java EE的服务器有很多，比如web logic、glassfish、wildfly。我用的比较多的服务器是wildfly。那么拿WILDFLY服务器来做个DEMO。 
首先看看WILDFLY服务器配置文件。



&amp;lt;subsystem xmlns=&quot;urn:jboss:domain:jmx:1.3&quot;&amp;gt;
    &amp;lt;expose-resolved...]]></description><category></category></item><item><title><![CDATA[Kotlin的==与===]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/78643868</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/78643868</guid><author>ilovewqf</author><pubDate>Mon, 27 Nov 2017 12:54:18 +0800</pubDate><description><![CDATA[kotlin是一种全新的编程语言，不仅仅可以编写Java/JVM平台的代码，也可以编写js代码，甚至可以编写本地代码。 
本文不过多赘述kotlin的语言特性，只讲一个重点，就是讲述==与===号的区别。 
简单一点，==就是equals方法，而===就是比较是否为同一对象。也就是说，==相当于Java的equals方法，而===相当于Java的==。 
这是kotlin的运算符重载，在kotli...]]></description><category></category></item><item><title><![CDATA[sqlite自增长]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/77800356</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/77800356</guid><author>ilovewqf</author><pubDate>Sat, 02 Sep 2017 12:09:27 +0800</pubDate><description><![CDATA[sqlite的自增长和mysql有所不同。 
语法上mysql是auto_increment,而sqlite是AUTOINCREMENT。 
其次sqlite的自增长只能用在INTEGER字段上，不能用在INT上。INT和INTEGER的区别我还没搞清楚，哈哈。 
比如下面的句子就是正确的。create table POEM_CATEGORY(
    ID INTEGER PRIMARY KEY]]></description><category></category></item><item><title><![CDATA[GWT RPC 开发]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/76672501</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/76672501</guid><author>ilovewqf</author><pubDate>Fri, 04 Aug 2017 11:30:08 +0800</pubDate><description><![CDATA[GWT RPC 开发 
Ajax是谷歌GWT的特色，不使用GWT的ajax功能，就没必要使用GWT。GWT的ajax开发步骤比较复杂。 
一 三个java类 
GWT有两个源代码包，一个客户端包，一个服务端包。客户端包放两个接口，一个服务接口，一个异步服务接口。 
服务端包写实现类 
1.1异步服务接口，类名必须是服务接口+Async. 
1.2异步服务接口的方法返回值必须是void，前几个方法参数]]></description><category></category></item><item><title><![CDATA[spring cloud ribbon配置]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/76152734</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/76152734</guid><author>ilovewqf</author><pubDate>Wed, 26 Jul 2017 16:46:43 +0800</pubDate><description><![CDATA[spring cloud ribbon客户端有诸多配置，但是配置怎么写呢？ 
看文档不如看源码。 
我们一般会配置服务器列表，比如 
hello: 
  ribbon: 
    listOfServers: http://localhost:8080 
但是除了listOfServers还可以配置什么？答案就在这个类里：com.netflix.client.config.CommonClientC]]></description><category></category></item><item><title><![CDATA[Redis append命令]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/73770414</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/73770414</guid><author>ilovewqf</author><pubDate>Tue, 27 Jun 2017 09:27:28 +0800</pubDate><description><![CDATA[Redis的append命令是往一个key追加value。如果没有key，则创建一个并且设置value。 
下面是个例子：PS C:\work\redis64-2.8.2101> .\redis-cli.exe -h 192.168.1.110
192.168.1.110:6379> auth 123456
OK
192.168.1.110:6379> append str Hello
(integ]]></description><category></category></item><item><title><![CDATA[Node.js对象继承方式]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/73758556</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/73758556</guid><author>ilovewqf</author><pubDate>Tue, 27 Jun 2017 00:20:20 +0800</pubDate><description><![CDATA[node.js实际上没有类，但是node是可以实现继承的。一般我们说的继承，包括属性继承与方法继承。
拿经典的面向对象语言java来说，比如父类是A，子类是B。B能够继承A的所有非private属性。但是js不一样。
我们比较下两者的少数几个不同点  不同点
  Java
  NodeJs  访问修饰符
  支持
  不支持
  动态增加属性
  不支持
  支持
  动态增加方法
  不支持]]></description><category></category></item><item><title><![CDATA[NODE.JS socket客户端]]></title><link>https://blog.youkuaiyun.com/ilovewqf/article/details/73657500</link><guid>https://blog.youkuaiyun.com/ilovewqf/article/details/73657500</guid><author>ilovewqf</author><pubDate>Sat, 24 Jun 2017 02:19:26 +0800</pubDate><description><![CDATA[Socket客户端非常简单。建立客户端需要用到Scoket对象。 
使用该对象的connect方法发送信息，使用data事件接收信息。 
比如我要发送一个http请求，就可以可以这样写代码：var net = require('net');
var client = new net.Socket();
client.connect(80,'192.168.0.116',function(){]]></description><category></category></item></channel></rss>