- 浏览: 57555 次
- 性别:
- 来自: 成都
最新评论
文章列表
1.使用valatile关键字
使用volatile关键字的作用:
1- 当其他线程对变量做改变时,能够及时的反映到当前线程中
2- 确保当前线程对变量的修改,能够及时的写回共享主内存中,并被其他线程所见
3- 使用volatile声明的变量,编译器会确保其有序性
2.使用同步关键字synchronized
synchronized使用情况:
1- 使用在方法中
public synchronized void method() {}
当method方法被调用时,需要获取当前对象的锁,如果当前对象的锁被其他线程持有,则调用线程会等待 ...
1.Future模式
假如有一个执行起来需要花费一些时间的方法,为了省去不必要的等待执行结果出来,继续做别的事情,则可以事先获取一个“提货单”即Future参与者,Future Pattern模式也就是这样的方式,当一个线程需要另一个线程的处理的结果时候,则不必一直等着处理结果,可以先处理别的事情,提前拿个Future对象,再过一段时间来获取另一个线程的处理结果。
在多个线程中,返回另一个线程的执行结果,最简单的就是采用主线程调用子线程后,一直无限循环等待子线程处理结果。由于这种会浪费等待的时间,且会浪费CPU,在此基础上,进而在子线程中调用主线程的方法来实现。可以利用静态方法和实 ...
1.在java I/O 中,Buffer的使用,使用buffer,文件的读写效率提高一倍左右
public void writeFile() {
try {
FileWriter fw = new FileWriter("file.txt");
long beginTime = System.currentTimeMillis();
for(int i = 0; i < 10000; i++) {
...
1. download adt-bundle-xx
2. unzip adt-bundle-xx
3. sudo apt-get install ia32-libs,执行命令安装
4. run eclipse
受csdn上面http://blog.csdn.net/johnny901114/article/details/8898727这篇博文的 指导,实现了利用activemq5.8+mqtt在android上面的推送。但是没有利用文章中提供的android dome,文中的demo使用时可能会有一些问题,而是使用了githup上的这个demo:
https://github.com/dobermai/android-mqtt-push
实现的步骤如下:
1.下载activemq,http://activemq.apache.org/
2.解压下载包,运行activem,安装和运行很简单,可参考官 ...
经过亲身实践,安装步骤如下:
1.下载jdk
下载的文件为:
jdk-6u45-linux-i586-rpm.bin
2.改变文件目录
将jdk文件放到usr/local/java/目录下
mv jdk-6u45-linux-i586-rpm.bin /usr/local/java/
3.切换usr/local/java/目录到执行jdk下载文件
./jdk-6u45-linux-i586-rpm.bin
4.执行后会在当前目录生成很多rpm包,根据需要安装,一般安装jdk-6u45-linux-i586.rpm这个包就行了
rpm ...
我们一般用SharpPlus SQLite Developer查看android的数据库,但是很遗憾他是收费的,firefox提供了可以查看sqlite数据库的插件,方便、实用、最主要的是免费。
下面介绍下利用firefox查看sqlite的步骤:
1.android中导出数据库文件,后缀名为sqlite
真机查看数据库文件比较麻烦,之一是需要root,之二是即时root也不一定能够查看到,比如我的手机就会有如下错误:
opendir failed, Permission denied
下面介绍一种不用root即可查看sqlite的方式:
原文地址:http://www.cnb ...
Apache Apollo,新一代ActiveMQ消息系统,有Apache维护,其他的就不多说了,详细信息看官方网站。
Apollo既可以安装在linux、ios也可安装在window上
1.官方地址:http://activemq.apache.org/apollo/download.html
2.window安装的条件
If you're on Windows Vista, Server 2008, or later you should install the MS VC++ 2010 Redistributable package so that Apollo can use ...
最近在研究MQTT,下面是官网对其的介绍,翻译了下:
官网:http://mqtt.org/faq
1.MQTT解释
MQTT(MQ Telemetry Transport)消息队列遥控传输
他是一个用于发布和订阅,非常简单和轻量级的消息协议,为低带宽和受限设备在高延时和不稳定的网络下使用而设计;
他设计的原则是尽量减少对设备和宽带的要求同时确保消息传输的可靠和稳定;这种设计原则在M2M和网络中连接设备
非常理想,并且对于移动应用来说低带宽和低耗电也非常的珍贵.
2.MQTT标准
As of March 2013, MQTT is in the pro ...
在使用spring3和hibernate4.2集成与hibernate3有很多的不同,其中之一就是spring3不在支持HibernateTemplate,而是使用hibernate原生的api,我在集成的时候遇到了如下两个问题。
问题之一:在使用session.save()方法保存数据时不能成功的保存到数据库
这个问题的原因是在获取session时,不能使用openSession()方法,而要使用getCurrentSession()方法
@Resource(name="sf")
private SessionFactory sessionFactory; ...
在android开发时,当build项目时,发生如下异常:
aapt.exe已停止工作,其他无任何错误提示,发生这个错误一般是资源文件或是xml文件中有错误造成的。
解决方法:
clean一下,可以发现console中会有错误提示,然后根据错误提示解决。
我的的情况:
[2013-04-20 14:35:50 - BigBoy] Error in an XML file: aborting build.
很明显是xml中有错误,但并未提示是哪一个xml文件错误,这就需要自己找了。
最后发现在定义属性时,没有加name属性,加上后就正常了
<declare-styleable nam ...
利用commons-io 实现项目编码的转换
- 博客分类:
- Java
在项目做到一半或是更多时,发现项目的编码需要转换的话,是一件非常令人头疼的事情,直接改变项目属性中的编码会产生很多的乱码,这里介绍下利用commons-io 实现项目编码的转换,非常简单,希望对你有帮助。
下载commons-io jar包,http://commons.apache.org/io/download_io.cgi
文章抄袭了:http://my.oschina.net/binny/blog/62959,原文是讲gbk转换为utf-8的
需求:将原来是utf-8编码格式的项目转换为gbk编码格式的项目
utf-8项目source目录:D:\\workspace\\ ...
网上介绍js链式作用域的很多,但写的很烦杂,不好理解,现在根据网络文章整理一个简单易懂的,如下:
1.理解js的链式作用域的前提
1)首先要知道js的变量作用域,js的变量作用域就两种:全局和局部
2)js中当前作用域能过访问其上层作用域的变量和函数
2.js链式作用域的定义:
JS权威指南的描述:
JavaScript中的函数运行在他们被定义的作用域里,而不是他们被执行的作用域里。
这句话很难理解,但是换做简单的描述,JS的链式作用域就是:
JS中当遇到对变量名或者函数名的使用时,会首先在当前作用域查找变量或者函数,如果没有找到,就会到其上层作用域中寻 ...
在进行PHP开发环境源码安装时,在安装PHP-5.2.6是出现:configure: error: Unable to find gd.h anywhere under错误
解决方式:
1.在gd库的安装路径下搜索没有发现gd.h文件,但是在/etc/include下有gd.h文件
2.在网上搜索发现重装gd库可解决
3.重新安装gd库,在安装时出现:
configure.ac:64: error: possibly undefined macro: AM_ICONV
If this token and others are legitimate, please use m4_pattern ...
在使用jbpm3.2整合ssh时遇到了
java.lang.NoSuchFieldError: STRING at org.jbpm.identity.hibernate.PermissionUserType.错误。经过不懈努力,终于解决了。
参考文章:https://community.jboss.org/thread/159874
问题原因:jbpm3.2引用了过期的方法
问题解决:参考文章中给出的解决方法是修改jbpm-identity.jar并重新打包为jar文件替换原有的jbpm-identity.jar.
但是我在打包出现了错误,于是我采用的方法是将重新编译的class文件替换原 ...