Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

JBPM与Spring整合

JBPM与Spring整合

Spring与Jbpm的整合1,整合的必要性:流程中对业务数据操作与流程操作需要在同一个事务中实现例如:请假流程——请假人提交请假申请,流程跳转到下一个节点任务(JBPM数据);记录请假人信息到用户表(业务数据)一个操作,可能会同时涉及到JBPM数据和业务数据,如果用两个事务,可能会导致业务与流程的数据不一致。2,整合图整合原理:(1)使用Spring容器IOC提供的BeanFactory功能初始化JBPM的configuratio...
Java集合中Comparable和Comparator辨析

Java集合中Comparable和Comparator辨析

一.Comparable和Comparator简介在对集合元素进行比较时一般使用TreeSet.对于简单的数据类型,TreeSet可以直接进行比较。但是对于复杂的数据类型,比如自己定义的数据类型或者类,就需要自己设置比较方法与比较规则了,这时就需要使用Comparable和Comparator。 Comparable和Comparator都是用来实现集合中的排序的,只是Comparable是在集合内图定义的方法实现排序,而Comparator是在集合外部实...
生产者消费者问题的Java实现

生产者消费者问题的Java实现

生产者和消费者是多线程经典的问题,生产者和消费者问题的核心是同步的问题,同步问题的核心是要保证同一个资源被多个线程并发访问时的完整性,常用的方法是采用信号或加锁机制,保证资源在任一时刻只能被一个线程访问。这一问题用java来实现的话主要有4种方式。1.wait()/notify();2.await()/signal(); 3.blockingQuene 4.PipedInputStream/pipedOutputStream下面分别来实现。1.利用wait...
C# 之 扩展方法

C# 之 扩展方法

扩展方法扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。对于用 C# 和 Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异。如果我们有这么一个需求,将一个字符串的第一个字符转化为大写,第二个字符到第n个字符转化为小写,其他的不变,那么我们该如何实现呢?不使用扩...
C#中的匿名类型

C#中的匿名类型

最近学习过程中接触了C#中的匿名类型,到底这是什么东东呢?什么是匿名类型?我们应该知道C#中的var关键字,与new关键字一起使用的时候,就可以创建匿名类型。匿名类型只是一个继承自object且没有名称的类,该类的定义从初始化器中推断,类似于隐式类型化的变量。实例一var cla =new { Name ="James", Age = 18 };通过以上操作就生成了一个包含Name,Age属性的对象实例二var cla2 =new { Name ="Jam...
JSON编码格式提交表单数据详解

JSON编码格式提交表单数据详解

以JSON编码格式提交表单数据是HTML5对WEB发展进化的又一大贡献,以前我们的HTML表单数据是通过key-value方式传输的服务器端,这种形式的传输对数据组织缺乏管理,形式十分原始。而新出现的JSON格式提交表单数据方法,将表单里的所有数据转化的具有一定规范的JSON格式,然后传输的服务器端。服务器端接收到的数据是直接可以使用的合格JSON代码。如何声明以JSON格式提交表单大家应该对如何用表单上传一个文件的写法很熟悉,它需要在HTML中form标...
Java求两个字符串的最长公共子串

Java求两个字符串的最长公共子串

Java求两个字符串的最长公共子串,这个是华为OJ上的一道题目。首先,如果我们用java写代码,华为OJ有以下三条规则需遵守,否则编译无法通过或者用例无法通过,规则如下:(1)一定不可以有包名;(2)主类名只能为Main;(3)不可以输出与结果无关的信息。 好了,按照以上规则,我们写出来的代码如下(此代码不是最优的,只是用来记录华为OJ上java代码的书写规则):import java.util.Scanner;public class Main { ...
Java数组不能通过toString方法转为字符串

Java数组不能通过toString方法转为字符串

Java里,所有的类,不管是Java库里面的类,或者是你自己创建的类,全部是从object这个类继承的。object里有一个方法就是toString(),那么所有的类创建的时候,都有一个toString的方法。这个方法是干什么的呢?首先我们得了解,Java输出用的函数print();是不接受对象直接输出的,只接受字符串或者数字之类的输出。那么你想把一个创建好的对象拿来输出怎么办?例如:package com.spring.h3;public class T...
C语言符号优先级

C语言符号优先级

一. 问题的引出今天看阿里的笔试题,看到一个非常有意思的题目,但是很容易出错。题目:如下函数,在32bit系统foo(2^31-3)的值是:Int foo(int x){return x&-x;}解答:如果想要答对这道题目,首先要清楚C语言中符号的优先级别,负号(-)的优先级高于^,所以2^31-3=2^28,还有一个陷阱就是C语言中认为^为异或运算而不是幂函数,所以2^28=30,然后计算30 & -30得出结果。又因为计算机内存中的数据...
Python实现支持JSON存储和解析的对象

Python实现支持JSON存储和解析的对象

我们知道利用JSON模块可方便的将Python基本类型(dict、list等)数据永久的存储成文件,同时也可以通过自定义转换函数和继承JSON encode&decode的方法实现自定义类的存储。本文就在前文“ Python JSON模块”的基础上,实现python支持JSON存储的对象。对象能够采取JSON存储和解析是有很大意义的。例如机器学习中所有分类算法的训练过程中都存在大量的数据计算,如果每次启动分类都需要重新训练分...
Python多线程之线程创建和终止

Python多线程之线程创建和终止

Python主要是通过thread和threading这两个模块来实现多线程支持。python的thread模块是比较底层的模块,python的threading模块是对thread做了一些封装,可以更加方便的被使用。但是python(cpython)由于GIL的存在无法使用threading充分利用CPU资源,如果想充分发挥多核CPU的计算能力需要使用multiprocessing模块(Windows下使用会有诸多问题)。如果在对线程应用有较高的要求时可...
Android开发实践:编译VLC For Android

Android开发实践:编译VLC For Android

最近在Android做流媒体相关的开发,一直想学习一下强大的VLC,正好趁此机会研究研究VLC For Android的代码,看看优秀的开源音视频播放器是如何实现的。本文总结下在Linux平台下如何编译VLC For Android。编译环境:Ubuntu 14.04 64bit,VLC版本2.1.5参考的文章:https://wiki.videolan.org/AndroidCompile/1. 准备编译环境基本上按照这篇wiki的介绍就足够了,为了顺利...
Android开发实践:使用Service还是Thread

Android开发实践:使用Service还是Thread

Service是Android的四大组件之一,被用来执行长时间的后台任务,同样,线程也可以实现在后台执行任务,它们的区别在哪呢?何时使用Service何时使用Thread呢?今天我也来说说我的理解和总结。首先,需要了解Service的几个特点。(1) 默认情况下,Service其实是运行在主线程中的,如果需要执行复杂耗时的操作,必须在Service中再创建一个Thread来执行任务。(2) Service的优先级高于后台挂起的Activity,当然,也高于...
Android开发实践:由new Handler()说开去

Android开发实践:由new Handler()说开去

最近面试一些Android开发的应聘者,除了基本的Activity生命周期等基础问题以外,我一般还会问如下两个问题:(1) Service与Thread有什么区别?(2) 在Activity里new Handler()和在自己创建的Thread中new Handler()有什么区别?第一个问题其实是一个伪命令,因为Service是Android四大组件之一,而Thread只是Java提供的一个封装了线程管理的工具类,无论是Activity还是Service...
Android开发实践:自定义带消息循环(Looper)的工作线程

Android开发实践:自定义带消息循环(Looper)的工作线程

上一篇文章提到了Android系统的UI线程是一种带消息循环(Looper)机制的线程(http://www.linuxidc.com/Linux/2014-12/110161.htm),同时Android也提供了封装有消息循环(Looper)的HandlerThread类,这种线程,可以绑定Handler()对象,并通过Handler的sendMessage()函数向线程发送消息,通过handleMessage()函数,处理线程接收到的消息。这么说比较抽...
Android开发实践:为什么要继承onMeasure()

Android开发实践:为什么要继承onMeasure()

Android开发中偶尔会用到自定义View,一般情况下,自定义View都需要继承View类的onMeasure方法,那么,为什么要继承onMeasure()函数呢?什么情况下要继承onMeasure()?系统默认的onMeasure()函数行为是怎样的 ?本文就探究探究这些问题。首先,我们写一个自定义View,直接调用系统默认的onMeasure函数,看看会是怎样的现象:package com.titcktick.customview;import an...
Android开发实践:自定义ViewGroup的onLayout()分析

Android开发实践:自定义ViewGroup的onLayout()分析

前一篇文章主要讲了自定义View为什么要重载onMeasure()方法(见 http://www.linuxidc.com/Linux/2014-12/110164.htm),那么,自定义ViewGroup又都有哪些方法需要重载或者实现呢 ?Android开发中,对于自定义View,分为两种,一种是自定义控件(继承View类),另一种是自定义布局容器(继承ViewGroup)。如果是自定义控件,则一般需要重载两个方法,一个是onMeasure(),用来测量...
Android开发实践:常用NDK命令行参数

Android开发实践:常用NDK命令行参数

Android提供了NDK工具,用来编译native代码(c/c++),该工具配置好了相关的交叉编译环境和工具链,只需要你简单地编写几个.mk文件即可将你的c/c++代码编译为Android的java工程/Android手机可以识别、加载和运行的库或者应用程序。默认情况下,使用NDK编译c/c++代码,需要将该代码放置到任一个Android应用工程的jni目录下,然后编写相应的Android.mk文件,并执行ndk-build命令完成编译。其实你也是可以在...
<< 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 >>