自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 问答 (3)
  • 收藏
  • 关注

转载 js json转url参数

js json转url参数var json = { sh: '上海'}var params = Object.keys(json).map(function (key) { // body... return encodeURIComponent(key) + "=" + encodeURIComponent(json[key]); }).join("&");

2017-03-07 16:08:19 9465

原创 gulp构建web项目

gulp有很多组件,下面介绍一些组件用户构建web项目。gulp-connectgulp-connect用户在本地运行web服务器,用于本地开发、测试web项目。安装 npm install –save-dev gulp-connect使用var gulp = require('gulp'), connect = require('gulp-connect');gulp.task('con

2017-03-02 14:47:14 715

原创 javaScript、css实现toast

手机网页上时常要使用toast来弹出一下错误信息或提醒。开源上有一些很好的toast组件,例如jquery.toaster、toastr等等。但是他们的大小太大了,对于比较简单的页面,感觉有点得不偿失。

2017-02-22 17:17:51 8909 3

原创 web开发问题总结

js语言:1、在开发过程中遇到一个for循环中自增/自减变量的问题。 代码1:function main(){ for(var i=0; i<10; i++){ setInterval(function(){ updateView(i); }, 1000); }}function updateView(index){

2017-01-12 11:29:14 578

原创 gulp快速搭建web项目

首先需要安装nodejs。 1、初始化项目:创建项目文件夹,然后在项目下npm init 2、使用gulp构建一个普通web项目,基本需要这些库(库有很多,自行选择),见代码1。 代码1:npm install --save-dev gulp del jshint gulp-rename gulp-concat gulp-jshint gulp-uglify gulp-connect gulp

2017-01-08 17:07:39 1520

原创 移动web输入法自带表情编码处理

通常,我们的字符使用escape、encodeuricomponent、encodeuri编码,然后再发送给后台,这种方法基本能解决编码的问题。但是,对于内嵌app的web,并且web需要通过app发送网络请求的情况,iOS可能会存在坑。基本情况是:web以特定的URL发起网络请求,中间对URL进行encodeuricomponent编码,最后app截获URL,进行解析处理。那这里就会遇到坑,部分输

2017-01-05 09:32:52 2437

原创 shell脚本启动android模拟器

shell脚本启动android模拟器对于Mac,首先需要为adb设置环境变量,在当前用户目录下,创建文件bash_profile,即~目录下.bash_profile。android sdk在Mac的默认安装路径如下export PATH=${PATH}:/Users/[当前用户名]/Library/Android/sdk/platform-tools:/Users/[当前用户名]/Library

2016-12-22 20:15:29 2524

原创 js RegExp二次匹配异常

new RegExp只生效一次。每次进行匹配时都需要重新new RegExp

2016-12-19 14:00:30 1217

原创 在Android原生中嵌入React Native,进而React Native调用原生

首先在Android中嵌入React Native:每一个Android Studio project下包含多个module,所以,从命令行进入到module根目录,运行:$ npm init$ npm install --save react-native$ curl -o .flowconfig https://raw.githubusercontent.com/facebook/

2016-07-18 19:07:23 5497 1

原创 React Native点击按钮修改页面

在React Native环境配置成功后,我们创建一个名为AndroidReact的react-native项目。作者的react-native版本为0.29使用react-native init AndroidReact命令创建react-native项目后,index.android.js或index.ios.js中默认内容为:/** * Sample React Native Ap

2016-07-15 20:20:43 8299

原创 Java FutureTask正确使用姿势

FutureTask主要用于实现Future模式。Future模式是一种并行模式,主要思想:将耗时任务提交给后台去做,期间去做其他事,等到真正需要耗时任务的结果时调用FutureTask的get()函数获取结果。说白了就是:你让其他人帮你去订票,自己先去忙别的,等到你需要票的时候找那个人要。实现Future模式首先需要继承Callablepublic class MyTask im

2016-07-13 08:32:00 1519

转载 Eclipse maven创建spring mvc project

参考:http://www.programcreek.com/2014/02/spring-mvc-helloworld-using-maven-in-eclipse/Spring MVC HelloWorld Using Maven in Eclipse Java developers often rely on examples to learn Spr

2016-06-30 09:23:34 482

原创 Maven Cannot change version of project facet Dynamic Web Module to 3.0

1、Open the navigator view and find that there is a .settings folder under your project expand it and 2、Delete the file: org.eclipse.wst.common.project.facet.core.xml3、right click on the project an

2016-06-29 11:57:21 377

原创 OpenStack搭建,安装Dashboard异常

在安装OpenStack Dashboard时,按照官网给出的安装指南,2016-05-24 07:02版本安装。在配置/etc/openstack-dashboard/local_settings.py时设置CACHES:SESSION_ENGINE = 'django.contrib.sessions.backends.cache'CACHES = { 'default

2016-05-25 13:36:45 5735

原创 netcat在两台linux间传递大文件

使用netcat在两台linux间传递大文件netcat即nc。传递大文件的原理:1.发送端和接受端。2.发送端计算文件的MD5值,使用split命令拆分大于指定大小的文件(本文是100M)。然后统计拆分后得到子文件数。3.发送端将MD5值和子文件数发送给接受端4.接收端获取MD5和子文件个数,for循环 子文件个数 次,每次循环都使用nc命令监听指定端口以便接受发送端发送

2015-12-02 09:15:54 694

原创 Nodejs express创建应用

Nodejs express创建应用首先是安装nodejs。如果是ubuntu系统,采用sudo apt-get install node的方式安装的nodejs的版本会比较低。建议前往官网https://www.nodejs.org/下载最新版本,然后将下载的nodejs什么的添加到系统环境变量中(具体忘记了)。 安装Express应用生成器:sudo npm install e

2015-11-19 10:27:47 421

原创 Vue.js列表输出不同style

{{ item.name }} {{ item.value.toFixed(2) }} js代码:new Vue({ el:'#table_asset_structure_lengend_ul', data:{ asset_items:asset_structures }});其中asset_structure为{color:'red',name:'123',val

2015-11-16 10:23:11 7249 3

原创 Vue.js使用props传递数据驼峰式与短横线隔

正在拜读Vue.js官网上的教程。情况一:直接上代码js代码: Vue.component('child',{ props:['myMessage'], template:'{{ myMessage }}' }); new Vue({ el:'#prop-example-1' });上面的代码作用是将my-message的值传递给自定义组件child中的m

2015-11-13 17:15:35 14915 1

原创 移动端与服务器间加密通信

对于移动端与服务器端进行加密通信,传统的方法是移动端和服务器都采用非对称加密方法进行加解密:1、服务器端生成私钥和公钥对,移动端预先存放服务器端公钥2、移动端在登陆时,使用服务器端的公钥加密登陆信息。移动端生成私钥和公钥,然后将公钥发送给服务器。3、服务器私用移动端的公钥给移动端发送消息。但是,非对称加解密的速度要比对称加解密慢,尤其是在移动端性能有限的情况下,所以折中的方式是非对

2015-11-13 09:22:54 3061

原创 js对象转json,json转js对象

首先需要应用json2.js库,下载地址:https://github.com/douglascrockford/JSON-js在html文件中引用json2.js库:瓦特!!!不引用json2.js也行,chrome、firefox都可以不引用(其他浏览器就不知道了)!!!!我还是太年轻了。。。然后就是js代码了,在test.js文件中实现:var divtest =

2015-11-10 11:16:40 665

原创 Android自定义圆形进度条

自定义圆形进度条其实圆形进度条总体上来说是比较简单的,简单的步骤如下:1、继承一个View或者Drawable,本教程选择Drawable;2、重写public void draw(Canvas canvas){...}函数,在该函数中画圆环,其中有一个参数progress用来指定画圆弧的角度。3、在进行下载操作的controller中实时变更progress,并在setPro

2015-10-29 10:46:15 518

原创 Java ArrayList和Vector的区别

Java ArrayList和Vector的区别ArrayList和Vector都使用了数组实现,可以认为ArrayList或Vector封装了对内部数组的操作。如添加、删除、插入等。 对ArrayList或者Vector的操作,等价于对内部对象数据的操作。 ArrayList和Vector几乎使用了相同的算法,他们的唯一区别可以认为是对多线程的支持:ArrayList没有对任何一个方法做线程

2015-10-01 11:03:45 312

原创 Java字符串分割与优化

字符串分割是字符串处理中最常用的方法之一。1、通过String.split()来分割,例如”a;b,c;d“.split(",")如果要分割多种字符,则要用到正则表达式:”a;b,c;d“.split("[;|,|:]")2、通过StringTokenizer类来分割,例如:String src = "abd,ef,cd";StringTokenizer st = new Str

2015-09-30 17:05:33 2038

原创 Android列表加载大量图片(一)

经过分析google官方提供sample:DisplayingBitmaps 。对其实现方式做个简单的总结。在使用时,主要使用DisplayingBitmaps project下的util包下的ImageFetcher类。主要有两个点需要说明:1、在列表滚动时,ImageFetcher会调用setPauseWork(),setPauseWork方法的实现在ImageWorker中,将Ima

2015-09-29 17:06:51 1749

原创 Android Studio JNI NDK编程(一)

在Android Studio 上编写jni程序入门1、下载NDK包,在谷歌官网(或者其他地方)下载NDK包,解压压缩包到你想存放的地方。2、在Android Studio中添加NDK文件存放路径:      2.1 首先需要确认你的Android Studio是否安装了Android NDK Support插件,在File->Setting->Plugins,如图一图1

2015-09-20 15:44:03 803 1

转载 Java单例类进阶

Java单例类的基本实现:public class Singleton { private Singleton(){ System.out.println("Singleton is create"); } private static Singleton instance = new Singleton(); public static Singleton getInsatnce

2015-09-19 16:08:10 296

原创 Java文件操作:拷贝、读取文件等

Java文件拷贝,可以使用通道进行,即NIO方式,能提高文件拷贝速度

2015-09-18 14:07:16 494

转载 环信架构

无意中在infoQ上看到了环信的架构,记录在此

2015-08-27 09:07:08 1104

原创 Java实现KMP算法

对于查找字符子串在父字符串中出现的位置,我们可以使用KMP算法。KMP算法的实现原理是使子串向右滑尽可能的远,这就涉及到求滑动距离的数组next[].next[]数组中每个元素求解的公式是{ k|max(str.suString(0,k) == str.subString(i-k+1,i)) };private static void KMPNext(int[] next, Strin

2015-08-23 18:24:06 565

翻译 Java数组拷贝

All array types have a clone method that is public, not protected. You can use it to make a new array that contains copies of all elements. For examplesint[] luckyNumbers={2,3,5,6,4,11};int[] clone

2015-08-21 12:30:45 375

原创 Java abstract抽象类与匿名内部类

Java abstract类在《Java核心技术》中的描述是:1、Abstract methods act as placeholders for methods that are implemented in the subclasses.2、Abstract class cannot be instantiated.第一点解释,好比 人和职员,职员是人的子类,每个职员都有其姓名、性

2015-08-21 11:16:08 2793

原创 Java Integer、Boolean等陷阱

Java是面向对象的编程语言,所以除了基本类型外,其他的都是Object。如果我们想通过 调用函数 来改变基本类型(int、float、double...)的值 是行不通的,而通过传递对象却是可以的。如下代码,在triple函数执行完成后并不能改变x的值public void triple(int x){ x = 3 * x;}而对于一下代码,确实可以改变的,因为传入的

2015-08-20 17:28:58 4168

原创 Java的自增陷阱

代码:public static void main(String[] args) { // TODO Auto-generated method stub int a = 1; a= a++; System.out.println(String.valueOf(a)); }输出结果为:1javap工具,仔细分析其字节码,可以发现jvm的操作是:1、将

2015-08-18 11:42:56 426

原创 简单的Java Socket示例

封装Socket传送类:import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;

2015-08-17 15:32:48 405

原创 关于java final,并非不可更改值

对于final型的变量,一般情况下是在赋值后就不能改变值了。但是,对于数组,仍然能够修改元素值。例如:int counter = 0;Date[] dates = new Date[100];for(int i = 0; i< dates; i++){ dates[i] = new Date(){ public int compareTo(Date oth

2015-07-06 11:53:53 8800

翻译 Java的Interfaces与Callbacks

回调模式(callback pattern)在程序中是一种普通的模式:事件A的发生触发事件B。本文以时间为例,每隔一定时间,触发指定时间。在javax.swing 包中有Timer类,当我们想注意每次的时间变化时,Timer类非常有用。例如,我们的程序是一个时钟程序,我们需要注意每一秒的时间变化,以此来更新UI界面;我们创建一个计时器,并设置时间间隔,并告诉计时器每隔一定时间应该做什么。但

2015-07-05 20:12:41 1020

原创 Android客户端与Java tomcat之间HTTPS通讯

Android客户端与Java tomcat之间HTTPS通讯,并实现post传值

2015-05-01 20:15:45 3637

原创 使用android SDK + NDK的方法创建含本地代码的工程

使用android SDK + NDK的方法创建含本地代码的项目步骤:1、  首先需要的是Eclipse中已安装NDK插件,如果没有安装,则Help-> Install New Software->Work with(https://dl-ssl.google.com/android/eclipse/)来下载安装NDK插件2、  Eclipse安装好NDK插件后,在Preferences中

2014-09-11 10:45:49 662 1

空空如也

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

TA关注的人

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