target

Java Ant build.xml详解

江枫思渺然 提交于 2020-02-27 05:27:19
FROM:http://www.cnblogs.com/wufengxyz/archive/2011/11/24/2261797.html 1.什么是ant ant是构建工具 2.什么是构建    概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个 3.ant的好处   跨平台 --因为ant是使用java实现的,所以它跨平台 使用简单--与ant的兄弟make比起来 语法清晰--同样是和make相比 功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有多少功能。当你自己开发一些ant插件的时候,你会发现它更多的功能。 4.ant的兄弟make   ant做的很多事情,大部分是曾经有一个叫make的所做的,不过对象不同,make更多应用于c/c++ ,ant更多应用于Java。当然这不是一定的,但大部分人如此。 一.构建ant环境 要使用ant首先要构建一个ant环境,步骤很简单:   1).安装jdk,设置JAVA_HOME ,PATH ,CLASS_PATH(这些应该是看这篇文章的人应该知道的)   2).下载ant 地址 http://www.apache.org/ 找一个你喜欢的版本,或者干脆最新的版本   3).解压ant 你得到的是一个压缩包,解压缩它,并把它放在一个尽量简单的目录

Java Ant build.xml详解

二次信任 提交于 2020-02-27 05:26:31
1.什么是ant ant是构建工具 2.什么是构建    概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个 3.ant的好处   跨平台 --因为ant是使用java实现的,所以它跨平台 使用简单--与ant的兄弟make比起来 语法清晰--同样是和make相比 功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有多少功能。当你自己开发一些ant插件的时候,你会发现它更多的功能。 4.ant的兄弟make   ant做的很多事情,大部分是曾经有一个叫make的所做的,不过对象不同,make更多应用于c/c++ ,ant更多应用于Java。当然这不是一定的,但大部分人如此。 一.构建ant环境 要使用ant首先要构建一个ant环境,步骤很简单:   1).安装jdk,设置JAVA_HOME ,PATH ,CLASS_PATH(这些应该是看这篇文章的人应该知道的)   2).下载ant 地址 http://www.apache.org/ 找一个你喜欢的版本,或者干脆最新的版本   3).解压ant 你得到的是一个压缩包,解压缩它,并把它放在一个尽量简单的目录,例如D:\ant-1.6虽然你不一 定要这么做,但这么做是有好处的。   4).设置ANT_HOME, PATH中添加ANT

Java MyEclipse下Ant build.xml简单实例详解

南楼画角 提交于 2020-02-27 05:26:09
一、下载配置ant 1、首先下载ant: http://www.apache.org/ 下载最新的版本 2、解压ant 后设置ANT_HOME, PATH中添加ANT_HOME目录下的bin目录(如:ANT_HOME:D:\apache-ant-1.9.4,PATH:%ANT_HOME%\bin) 3、测试方法:开始-->运行-->cmd进入命令行-->键入 ant 回车,如果看到 Buildfile: build.xml does not exist! Build failed 说明已经完成ant的设置。 二、创建项目 1、打开MyEclipse,创建一个java项目AntTestDemo, 创建一个测试类HelloAnt.java package com.zdz.ant.test; public class HelloAnt { public static void main(String[] args){ System.out.println("Hello ant!"); } } 2、在项目根目录下创建一个build.xml文件,内容如下: <?xml version="1.0" encoding="UTF-8"?> <!-- ====================================================================== Mar

python3 多线程和多进程

对着背影说爱祢 提交于 2020-02-27 05:20:39
一.线程和进程 1.操作系统中,线程是CPU调度和分派的基本单位,线程依存于程序中 2.操作系统中,进程是系统进行资源分配和调度的一个基本单位,一个程序至少有一个进程 3.一个进程由至少一个线程组成,线程组成进程 4.多进程、多进程实际是进程、线程、进程和线程的并发而不是并行,用来加快程序运行速度 5.Python既支持多线程,也支持多进程。 二.多线程threading 1.python3线程操作中常用模块:_thread和threading,其中一般都用threading模块 2.线程分为: 内核线程: 由操作系统内核创建和撤销; 用户线程: 不需要内核支持而在用户程序中实现的线程 3.Python中使用线程有两种方式:函数或者用类来包装线程对象 2. 创建线程 1 import threading 2 3 #def main():#定义一个存放多线程的函数 4 # print(threading.active_count())#获取已激活的线程数 5 # print(threading.enumerate()) # see the thread list查询线程信息 6 # print(threading.current_thread())#查询当前运行的线程 7 8 def thread_job():#定义一个线程的工作的函数 9 print('This is a

关于翻页之后表格重新加载,之前选中的项丢失的问题处理

梦想与她 提交于 2020-02-27 03:55:16
项目中使用jqGrid制作表格,当添加用户,欲添加用户分布在不同页,翻页选择所有欲添加用户,点击确定按钮,只有翻页后当前页已选择用户被添加到自定义用户列表,之前页已选择用户未添加到自定义用户列表,添加丢失。 问题解决需要:所有已选择用户(包括之前页选择的用户)均被添加到自定义用户列表。 问题原因是:翻页之后表格重新加载,所以导致之前选择的数据丢失。 问题优化:1、所有已选择用户(包括之前页选择的用户)均被添加到自定义用户列表。      2、当来回切换页面时,所有选中的用户依然保持选中状态。 解决方案: 1、由于是由于reload导致数据丢失,所以创建全局变量将选中的项先存储起来: var rowsObj = {},//声明一个全局变量——hash表,用于存储选中的用户信息对象 rowsId = [];//声明一个全局变量——数组,用于存储选中的用户信息对象的id 如果选中,就将该用户id push到数组里,用户信息存入hash表里。 其中,$( " #gridTable " ).getRowData(id) ,这个方法用来获得某行的数据。它具有一个rowid参数,Jqgrid会根据这个rowid返回对应行的数据,返回的是name:value类型的数组。如果rowid未能被找到,则返回一个空数组;如果未设置rowid参数,则以数组的形式返回Grid的所有行数据。 var

阅读记录(持续更新)

我是研究僧i 提交于 2020-02-27 01:22:32
坚持阅读,温故知新~^o^~ 电子书: http://www.sqlservercentral.com/books/ 、 http://www.red-gate.com/learning-community/community/books/ 2019年11月 1、《千金良方——MySQL性能优化金字塔法则》 2、《深入浅出MySQL 数据库开发、优化与管理维护(第3版)》 <!--正在阅读的图书--> <div id="reading-book"> <p>正在阅读的<a href="http://www.cnblogs.com/Uest/p/6123775.html" target="_blank" title="查看阅读记录">图书</a>:</p> <p> <a href="https://item.jd.com/12728070.html" target="_blank"> <img style="width: 117px; height: 135px;" src="https://files-cdn.cnblogs.com/files/Uest/Books-MySQLPerformanceOptimization.gif" title="千金良方——MySQL性能优化金字塔法则"> </a> <a href="https://item.jd.com/12574719

LeetCode(1)两数之和

醉酒当歌 提交于 2020-02-26 15:00:09
题目描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] Python3解题代码 初始思路:暴力穷举法 class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: loc = [] for s in range(len(nums)): for i in range(len(nums)): if s == i: pass elif nums[s] + nums[i] == target: loc.append(s) loc.append(i) return loc 本思路比较直接,也比较简单,但是时间复杂度比较大,所以在最后一项数据中超过时间限制了。 改进思路: 后来考虑第二个数只需要从s之后进行查找即可,不需要从头开始查找,因此查找范围可以用 [:-(len(nums)-s)] 表示。 python 序列 (表示索引为非负整数的有序对象集合,包括列表,元组,字符串等

vue核心原理-监测数据变化

╄→尐↘猪︶ㄣ 提交于 2020-02-26 14:56:16
我们实际开发中发现,在data中定义的所有数据,后续无论是在template中使用,还是在methods中使用,都能随着数据的变化而变化。为了理解这其中的原理,研究源码后整理出这篇文章,欢迎大家及时指正。 第一步:数据注册监听 vue 2.x 版本使用的是 Object.defineProperty 详细API文档见Object.defineProperty 用于绑定Object类型数据,比如定义一个person: let person = { name: ‘usm’, age: 12 } 复制代码现在希望person的name和age发生改变时,可以触发一些操作,就可以通过 Object.defineProperty 实现: Object.defineProperty(person, ‘name’, { enumerable: true, configurable: true, get() { console.log(‘get name’s value’); }, set(val) { console.log( set value ${val} ); } }); person.name // get name’s value person.name = ‘new’ // set value new 复制代码其中enumerable属性表示此属性设置为可枚举

力扣题库中的两数之和题目总结

做~自己de王妃 提交于 2020-02-26 14:40:13
C#的两数相加问题 问题描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例:给定 nums = [2, 7, 11, 15], target = 9,因为 nums[0] + nums[1] = 2 + 7 = 9,所以返回 [0, 1]。 解题思路: 暴力遍历法 :使用两层循环,遍历数组中的元素,找到合适的值并返回;第一层循环获取第二层循环的结束条件,则将target - nums[i]赋值为temp空间,在第二层循环中找到nums[j]与temp相等的元素,返回即可。 public class Solution { public int[] TwoSum(int[] nums, int target) { int[] res = new int[2]; for (int i = 0; i < nums.Length; i++) { for (int j = i + 1;j < nums.Length; j++) { if (nums[i] + nums[j] == target) { res[0] = i; res[1] = j; } } } return res; } } 在第二层循环中,使用j = i + 1

Handler机制中的消息队列

拟墨画扇 提交于 2020-02-26 14:19:26
学习自 蘑菇街大佬 Handler机制可以看成是一个消息阻塞队列,当有消息时立即处理消息,没有消息时则阻塞.在Android系统中APP启动后很快进入死循环,不断读取MessageQueue中的消息,有消息则立即处理,没有消息则阻塞.Android的View绘制,事件响应(点击,触摸屏幕等)都是把消息发送到了主线程的消息队列,包括自己在主线程创建的handler最终也是把消息插入到了主线程消息队列中,并最终分发到到指定的handler处理消息. handler.send(msg) ->sendMessageDelayed(msg, 0) ->sendMessageAtTime(msg, SystemClock.uptimeMillis() + delayMillis) ->enqueueMessage(queue, msg, uptimeMillis) //这里就是进入到消息队列,进入的是主线程的Looper(MainLooper) ->queue.enqueueMessage(msg, uptimeMillis); 当出队的时候会根据msg中的一个成员变量target(这个target就是handler)来分发的对应的hand 大专栏 Handler机制中的消息队列 ler,这样handler就拿到了信息, for (;;) { // 不断从 MessageQueue 获取 消息