Java Serializable:明明就一个空的接口

对于Java的序列化,我一直停留在最浅显的认知上——把那个要序列化的类实现 Serializbale 接口就可以了。我不愿意做更深入的研究,因为会用就行了嘛。但随着时间的推移,见到 Serializbale 的次数越来越多,我便对它产生了浓厚的兴趣。是时候花点时间研究研究了。01、先来点理论Java序列化是JDK1.1时引入的一组开创性的特性,用于将Java对象转换为字节数组,便于存储或传输。此后,仍然可以将字节数组转换回Java对象原有的状态。序列化的思想是“冻结”对象状态,然后写到磁盘或者在网络中传输;反序列化的思想是“解冻”对象状态,重新获得可用的Java对象。再来看看序列化Serializbale接口的定义:public interface Serializable {}明明就一个空的接口嘛,竟然能够保证实现了它的“类的对象”被序列化和反序列化?02、再来点实战在回答上述问题之前,我们先来创建一个类(只有两个字段,...

Java:接口和抽象类,傻傻分不清楚?

 01、来看网络上对接口的一番解释:接口(英文:Interface),在Java编程语言中是一个抽象类型,是抽象方法的集合。一个类通过继承接口的方式,从而来继承接口的抽象方法。兄弟们,你们怎么看,这段解释把我绕得晕乎乎的,好像喝过一斤二锅头。到底是解释抽象类呢还是接口呢?傻傻分不清楚。搞不清楚要用抽象类还是接口,就先来看看两者之间的区别。来,抽象类和接口,你俩过来比比身高。抽象类中的方法可以有方法体,能实现方法具体要实现的功能,但是接口中的方法不行,没有方法体。抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是publicstaticfinal类型的,并且是隐式的,缺省的。接口中不能含有静态代码块以及静态方法(用static修饰的方法),而抽象类是可以有静态代码块和静态方法的。一个类只能继承一个抽象类,而一个类却可以实现多个接口。02、好像知道了两者之间的区别,但印象还是有些模糊。没关系,我们进一步深入。抽象类抽象类体现了数据抽象的思想(不然呢),是实现多态的一种机制。抽象类定义了一组抽象的方法,至于这组抽象方法的具体表现形式由子类来继承实现。抽象类就是用来继承的,...

Java接口的实例应用:致敬我的偶像——何塞·穆里尼奥

文/沉默王二 曹操在《短歌行》中为杜康酒打过一个价值一亿个亿的广告——“何以解忧,唯有杜康”,我替曹操感到惋惜的是他本人并不会收到这笔不菲的代言费。想一想,要是三国时期的明星人物们有这个代言意识的话,保证各家的军费收入会多出来一个重量级的来源。不过,酒真的能解忧吗?我不大敢相信。李白就曾质疑过:“举杯消愁愁更愁,抽刀断水水更流。”我和李白持相同的观点,酒啊,真的不容易解忧,但绝对可以增加作者莫名的写作冲动。我在写本文之前就小酌了一杯,一不小心激发了我强烈的创作欲望。不过我要奉劝各位,寒冬之际,如果遇到烦心事,千万别肆意地追求一醉方休,万事要懂得适可而止。01抽象类一种比较苍白的说法是:在Java中,通过关键字abstract定义的类叫做抽象类。Java是一门面向对象的语言,因此所有的对象都是通过类来描述的;但反过来,并不是所有的类都是用来描述对象的,抽象类就是其中的一种。以下示例展示了一个简单的抽象类:// 个人认为,一名教练必须攻守兼备abstract class Coac...

以聚合数据免费接口为例,通过 Class 类继承方法,让小程序实现项目化接口调用

微信小程序数据来源,是通过接口实现的。但接口如何调,数据如何取?每个人都有不同的方法,下面以聚合数据免费接口为例。配置接口config.js聚合数据请求接口需要以key作为参数。constconfig={api_base_url:"http://apis.juhe.cn/goodbook",key:"93bdf89de207034fa6c7544f88b99c76"};export{config}封装wx.request方法ES6中有类方法可以直接使用,使用HTTP作为类名,新建request作为类的方法,在这个方法中调用wx.request。classHTTP{//requestrequest(params){letthat=this;if(!params.method){params.method='GET';}wx.request({url:config.api_base_url+params.url+"?key="+config.key,data:params.data,method:params.method,header:{'content-type':'applicati...

使用免费 mongodb数据库 + 免费node.js服务器搭建小程序接口

由于微信的小程序只支持不带端口的域名接口,不支持IP地址和接口,所以我们需要映射到80端口并绑定备案过的域名才能被微信小程序访问到。简单点就是接口需要https协议才行,找了许久的免费数据库与node.js的环境,都不尽人意,下面是整理的可以考虑的免费的产品:通过新浪云部署Node.js微信小程序商城(不用买域名、不用备案、不用配置https如果已经有备案的网站但是没有配置SSL时,可以考虑阿里云免费证书DVSSL,这个免费的证书隐藏的比较隐蔽:证书类型选择Symantec品牌注意,选择之后你并不会看到免费的证书!选择证书类型你还需要选择一下增强型OVSSL,这时免费型DVSSL选项才会出现。使用国外的,国外有三家非常不错的供应商MongoLab和RedisLabs和MongoDBAtlas,可以提供免费的mongodb数据库,可以考虑,需要翻墙免费的node.js服务器heroku,同样需要翻墙,注册需要使用gmail邮箱,偏慢但(推荐)国外的三家免费的mongodb数据库对比: MongoLab  提供500MB免费的云端存储,Mongo目前版本为3...

php 接口与前端数据交互实现

最近在做前后端数据交互的尝试,也跳了很多坑,使用的是php+bootstrap-table+js,把一些收获记录在这里,方便查询。这个小项目,仅有3个文件,分别为:crud.htmldata.phpcrud.sql数据交互实现1:查询mysql数据库建表php查询接口前端数据展现mysql数据库建表  数据库名称:crud  第一个表名:t_users  主键:user_id,自增长排列 php:<?php//测试php是否可以拿到数据库中的数据/*echo"44444";*///做个路由action为url中的参数$action=$_GET['action'];switch($action){case'init_data_list':init_data_list();break;case'add_row':add_row();break;case'del_row':del_row();break;case'edit_row':edit_row();break;}//查询方法functioninit_data_list(){//测试运行crud.html时是否可以获取到...

跨域调用接口的方法之一:$.ajaxSetup()

跨域查询接口数据,之前在公司时有发生过,产生的原因是,本地请求的域名或IP地址不一致,解除方法,也是修改域名和IP地址。比如:接口中的数据来自IP地址:192.168.1.23/get.php如果本地调用这个接口中的数据,必须要修改你的请求地址也同样为192.168.1.23/get.php通常的做法是将接请求地址组合为一个对象和一个方法,通过调用这个方法来调用接口:/*查询接口*/varconfig={"protocol":"http","server":"oliveche.com","virtualDirectory":"quiz/api.php"};vargetBaseUrl=function(){returnconfig.protocol+"://"+config.server+"/"+config.virtualDirectory+"/";} 最近在做一个笔记时,因为也是调用别人的接口,而产生了跨域,即使在本地更改了请求的域名或IP地址也不能直接使用$.ajax({})中的get或post,会直接报跨域请求失败,解决的办法是使用:$.ajaxSetup()首先了解...

php post接口,登录功能

登录功能同注册功能一样,都是使用post方法,在执行sql语句时,同样要使用"select*from表名where键名=参数"的查询方式,不同的是:注册使用查询语句是为了判断注册用的字段值是否重复?注册失败:注册成功;登录使用查询语句是为了查询表中是否有那个字段的值?登录成功:登录失败; 另一个相同的地方是都用到了 mysql_num_rows($result)的sql语句,都用它来做一件事,那就是通过它来确定返回的值是否为1,根据返回这个值,来进行判断是否成功:注册时,使用 $row=mysql_num_rows($result);如果$row=1,手机号存在,注册失败;登录时,使用 $row=mysql_num_rows($result);如果$row=1,手机号存在,登录成功;这个接口同样分为5步走:连接服务器;$link=mysql_connect("localhost","root","root")ordie("连接服务器失败".mysql_error());//防止中文乱码mysql_query("SETNAMESUTF8");&nb...

php post接口,注册功能

功能描述:仅输入手机号和密码,实现注册功能。手机号有简单的验证,不可重复输入,否则会报500错误。 在使用RestClient进行post测试时,如果你把参数放在【Headers】区块了,那么,插入的数据值是空的,可以看下图:我把传回的参数值tel和pwd的值和Content-Type放在一起了,这是不对的,因为【Payload】中的参数为空,因此在查看数据库时,发现插入了一条参数为空的数据: 在使用RestClient进行post测试时,【Headers】区块仅仅是添加Content-Type,而【Payload】区块才是添加参数的地方:这时也能查到数据: 同查询功能一样,这个接口也是分5步走:连接服务器,防止中文乱码选择数据库执行sql语句,设置post的参数,判断手机号是否重复根据插入的数据返回值,判断是否新增成功关闭服务器下面是代码:<?php//post接口//1、连接服务器$link=mysql_connect("localhost","root","root")ordie("连接服务器失败".mysql_error());//防止中文乱...

php get接口,并在浏览器中以json格式返回查找到的数据

php查询数据有6个步骤,分别为:连接数据库服务器,使用的命令为:mysql_connect("服务器名称","用户名","密码")选择数据库,使用的命令为:mysql_select_db("数据库的名称[可选的资源号,也就是第一步的变量名$conn]")执行sgl语句,使用的命令为:mysql_query(sql语句);获取执行结果,并把获取到的数据存放在一个数组中,使用的命令为:mysql_fetch_array(),会返回多行,因此要使用while循环关闭数据连接,使用的命令为:mysql_close(连接服务器的变量)将结果转换为JSON格式,并输出到客户端,使用的命令为:json_encode(第4步中定义的数组变量)代码分析:<?php//php接口的写法,php访问mysql数据库的基本步骤,获取用户//1连接数据库服务器:mysql_connect("服务器名称","用户名","密码");ordie("前面语句执行不成功后返回的信息".mysql_error());//.mysql_error()这个函数的意思是什么原因导致前面的sql语句执行失败$conn=my...

android 根据网络来获取外网ip地址及国家,地区的接口

新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js新浪多地域测试方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=218.192.3.42搜狐IP地址查询接口(默认GBK):http://pv.sohu.com/cityjson搜狐IP地址查询接口(可设置编码):http://pv.sohu.com/cityjson?ie=utf-8搜狐另外的IP地址查询接口:http://txt.go.sohu.com/ip/soip淘宝:http://ip.taobao.com/service/getIpInfo.php?ip=8.8.8.8另:http://www.telize.com/iphttp://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=183.129.210.50http://city.ip138.com/ip2city.asp...

C#中通过类来继承两个接口,父类实例化接口中的方法,子类继承父类,调用方法

实现了父类继承接口,父类实例化接口的方法,子类继承父类,子类调用父类的方法直接使用代码如下: usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespacesortAndArea{publicinterfaceSort{List<int>sort();}publicinterfaceArea{longarea();}abstractclassCoustomMath:Sort,Area{publicCoustomMath(){//publicList<int>list=newList<int>{};}publicList<int>list=newList<int>{};//使用泛型publicintl=0;publicList<int>sort(){l=list.Count;inttemp=0;//Console.WriteLine(l);for(inti=0;i<l;i++)//排序{fo...

关于微信获取access_token接口,返回值为-1000的问题

今天打算获取token来,来修改公众号的菜单,结果像往常一样输入了appid和secret,结果没有返回access_token,而是返回了一个-1000,并提示"未知返回状态" 最终翻看微信开发api找到需要去配置IP白名单。只需要配置访问来源IP即可。同时使用这个http://ip.qq.com/可以拿到IP。重新获取access_token,成功。事实证明还是要多看文档API。...

**微信接入探秘(一)——从零认识微信接口(主动接口和被动接口)

本文出处:http://blog.csdn.net/chaijunkun/article/details/53385088,转载请注明。由于本人不定期会整理相关博文,会对相应内容作出完善。因此强烈建议在原始出处查看此文回想起来今年还没有在CSDN上发过文章,草稿箱里积攒了很多话题,可由于时间关系最终也没发出来。不能再拖了,打算写个系列专题,聊聊微信接入。随着微信用户量的不断增加,越来越多的企业也将自己的服务加入到了微信当中。微信本身提供的公众号、服务号的基础功能难以满足日趋增长的需求,于是微信为我们打开了一整套自定义功能的API,利用这些API,我们可以弥补原有平台的不足,创造出更加方便的功能。本篇先对微信接口进行简单的介绍。腾讯虽然官方也提供了很多语言版本的开发包(参阅:http://qydev.weixin.qq.com/wiki/index.php?title=加解密库下载与返回码),包括C++、Python、php、Java和C#,但是笔者发现作为以PHP为主导技术的公司,Java版本的SDK无论是从封装性能、可维护性还是语法结构上都不够严谨。也正是因此才有了做一套开源API适...

php支付宝接口用法

现在流行的网站支持平台,支付宝当仁不让的老大了,现在我们就来告诉你如何使用支付宝api来做第三方支付,把支付宝放到自己网站来, alipay_config.php配置程序如下: <?php*///alipay_config.php配置程序$interfaceurl="https://www.alipay.com/payto:";$sitename ="网站名称";$weburl ="http://网站网址";$o_fee ="0.00";       //平邮费$e_fee ="0.00";       //快递费$selleremail ="";//支付宝账号$payalikey ="";//安全校验码$imgurl ="pay.gif";//按钮图片源$imgtitle ="使用支付宝购买"; //按钮图片说明?>alipa...
首页上一页...6465666768...下一页尾页