- 博客(105)
- 资源 (1)
- 收藏
- 关注
转载 OmniPlan 3破解码
Omniplan for mac破解版是Mac OS X平台的的一款非常强大的项目管理软件,它提供的功能包含了自定检视表、阶层式的纲要模式、成本追踪、里程碑、任务限制与相关性、资源分配、时程控制、Gantt 图表、违反事项显示、关键路径等等。
2017-11-29 20:58:19
13822
8
转载 Java-synchronize和lock详解(转)
由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。需要明确的几个问题:synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。如果 再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class literals(类名称字面常量)身上。
2017-08-01 00:32:15
1920
原创 scheduleAtFixedRate和scheduleWithFixedDelay区别
Java中的定时任务ScheduledExecutorService Executors.newScheduledThreadPool1. scheduleAtFixedRate 表示以固定频率执行的任务,如果当前任务耗时较多,超过定时周期period,则当前任务结束后会立即执行。2. scheduleWithFixedDelay 表示以固定延时执行任务,延时是相对当前任务结束为起点计算开始时间。
2017-07-30 11:36:42
2293
原创 Mysql千万数据索引查询优化
ysql千万数据索引查询优化1.索引的作用索引就是想是书的目录,能够帮助快速查询。如果数据库没有索引的话,在查询的时候,就会进行全表扫描,在数据量大的情况下(几百万,上千万)的时候,查询会特别慢需要几秒,这个在线上系统是无法满足应用要求的。加上索引后查询只要几十毫秒,百倍的优化。2. 索引的类型1. 主键索引;2. 普通索引:创建在非主键上的索引;3. 聚合索引(组合索引):用于多字段组合查询的情况,注意需要按照索引顺序来才能利用索引;4. 唯一约束:可以在数据库系统上保证数据上
2017-07-08 00:21:55
1906
原创 Java小知识积累
在Java开发中的一些知识点记录下:1. 字符串格式化是我们经常会使用的,String.format() ,格式化控制 %d 包括了 byte,int,long;2. Java方法参数中没有默认值,而C++中有,原因主要是避免了Java中多函数重载的二义性,如果存在默认参数则可以不传参数的,这样编译器就不知道应该选择哪个重载方法,Java为了减少复杂性就不允许方法中存在默认参数值。
2017-06-27 23:41:42
428
原创 linux查看系统进程和线程
背景在我们实际开发,在压测、系统出现问题(load高、CPU使用率高、RT高等)的时候我们需要去排查,得先看些系统基本信息,便于我们定位问题。top命令查看进程命令top 可以看到linux系统中内存,load,CPU使用率等等,还有所有的进程信息。 另外如果想让内容单位显示g,可以top -M在javaweb开发中,我们经常的web容器tomcat,就是一个进程多线程来处理每个线程,有些我们
2017-06-10 22:54:24
1376
原创 windows 7 Scrapy爬虫安装成功实践记录
本文详细记录window7下面安装爬虫Scrapy框架的过程和踩坑解决方法,希望对碰到问题的朋友们有个帮助。
2017-03-26 16:05:24
775
原创 java启动参数和jar启动
java启动jvm参数,可以指定参数。jar包启动命令:java -jar ***.jar -Dspring.profiles.active=dev -verbose:class1.-Dspring.profiles.active=dev 这个可以在spring-boot启动中指定系统变量,多环境(测试、预发、线上配置)的区分2. 在排查jar包冲突时,可以指定启动的-verbose:class 打印出启动的应用实际加载类的路径,来排查来源。3. jvm堆设值: -Xmx3550m -Xms35
2017-03-15 00:26:22
41048
1
原创 4种常见的POST数据提交方式
HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式。我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。类似于下面这样:
2017-01-18 21:34:00
11073
原创 spring-boot上传文件MultiPartFile获取不到文件问题解决
spring-boot上传文件MultiPartFile获取不到文件问题解决。现象是在spring-boot里加入commons-fileupload jar并且配置了mutilPart的bean,在upload的POST请求后,发现multipartRequest.getFiles("file")=null,有点奇怪,查了文档资料才解决。
2017-01-07 22:02:06
76272
17
原创 如何将一个数组随机打乱
题目是如何将一个数据随机打乱:方案一:直观能想到一种算法是循环遍历数组,每一次产生一个随机的小标数,将这个下标所在的位置移出去,然后将这个值存到另外一个新的数组里,直到最后还有一个元素为止。这样的随机取出来的数组成的数组是随机。改算法伪代码: int j=0; int size = a.size; for(i=0;i < size ;i++)
2016-12-12 23:59:40
12623
转载 app和wap手机网站的区别在那里
app在大行其道的情况下,本人来发表关于app和手机wap网站的几个观点,希望对各位同仁有参考价值:第一点 我们从依附的平台来看:移动Wap网站:由移动设备的浏览器来支持,只要移动设备支持上网浏览网站基本上可以随时随地的打开网站查找自己需要的信息。移动App客户端:由智能移动设备的操作系统来支持,当然他包括现在的一个主流的安卓和苹果操作系统,还有基于安卓的各种的二次
2015-06-29 00:34:55
833
原创 java jdk查看源码
其实如果你安装了JDK的话,你就已经拥有了java api的源码。JDK安装目录下的src.zip文件就是java api的源码。比如:C:\Program Files\Java\jdk1.6.0_38\src.zip你只要解压它就可以看到java api的源码了。还是很方便吧。
2015-06-03 00:15:30
869
原创 android studio引入第三方jar包
android开发中,需要引入第三方的jar包,来高效的使用已有的现成的功能。下面在android studio中如何引入第三方jar包。在菜单File中==》Project structure ==》dependences 》》 绿色的+号,选择你要的第三方jar路径,这样在build.grade中就会有相应的配置
2015-06-01 23:09:44
7396
转载 Python日志
每条记录都关联一个级别, 每个级别都有用于发出日志消息的方法, 日志分为五级,LevelWhen it’s usedMethodDEBUG详细信息, 通常出现在诊断问题logging.debug()INFO确认一切按预期运行logging.info()WARNING(默认
2015-05-09 20:52:07
680
原创 Python字符串-非转义和unicode
(1) 以r或R开头的python中的字符串表示(非转义的)原始字符串;(2) 以u或U开头的字符串表示unicode字符串Unicode是书写国际文本的标准方法。如果你想要用非英语写文本,那么你需要有一个支持Unicode的编辑器。类似地,Python允许你处理Unicode文本——你只需要在字符串前加上前缀u或U。
2015-05-09 19:57:39
3773
原创 Linux中定时任务crontab
linux中crontab是一个用于很方便定时任务的工具。比如说定时跑脚本处理等等。crontab文件包含送交cron守护进程的一系列作业和指令。每个用户可以拥有自己的crontab文件;同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc或者/etc之下的子目录中,而这个文件只能由系统管理员来修改。
2015-05-08 23:05:48
1002
转载 java.lang.ThreadLocal类
深入研究java.lang.ThreadLocal类 一、概述 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变
2015-03-29 17:52:01
686
原创 Java 多线程同步--synchronized
在多线程编程环境下,对于共享资源(比如多线程共享的变量)的写操作时,不同线程之间假如没有相互同步,而是随机读取、更改变量回写到内存中,就会出现混乱和错误!因此必须要在多线程的操作方法上添加锁对象,当一个线程进入操作的时候,其它线程必须要等待,这样依次串行完成任务。synchronized关键字可以将对象或者方法标记为同步,以实现对对象和方法的互斥访问,可以用synchronized(对象) { … }定义同步代码块,或者在声明方法时将synchronized作为方法的修饰符。
2015-03-29 15:06:31
765
原创 精通正则表达式(2)
正则表达式还有另一种正则表达式字面量的声明方式正则表达式语法参考var=/a/gi 两个/线分隔是模式,最后g表示全局,i表示字母不区分大小正则表达式对象的方法:test,返回一个 Boolean 值,它指出在被查找的字符串中是否存在模式。如果存在则返回 true,否则就返回 false。 exec,用正则表达式模式在字符串中运行查找,并返回并含该查找结果的一个数组。 compile,把正
2015-03-06 00:24:01
751
原创 精通正则表达式(1)
RegExp 对象用于规定在文本中检索的内容。什么是 RegExp?RegExp 是正则表达式的缩写。当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp 就是这种模式。简单的模式可以是一个单独的字符。更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。您可以规定字符串中的检索位置,以及要检索的字符类型,等等。
2015-03-05 23:02:17
485
原创 序列化serialVersionUID的作用
在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的Session对象,当有10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些seesion先序列化到硬盘中,等要用了,再把保存在硬盘中的对象还原到内存中,说白了,就是能将一个2进制文件变成内存中的对象。在JAVA中,要实现这种机制,只要实现Serializable接口就可以了,先看下面这个简单例子,serialVersionUID稍后引出。我们
2015-03-04 23:56:17
754
原创 C/C++预编译指令
编译程序时,只要遇到 #error 就会跳出一个编译错误,既然是编译错误,要它干嘛呢?其目的就是保证程序是按照你所设想的那样进行编译的。下面举个例子:程序中往往有很多的预处理指令#ifdef XXX...#else#endif当程序比较大时,往往有些宏定义是在外部指定的(如makefile),或是在系统头文件中指定的,当你不太确定当前是否定义了 XXX 时,就可以改成如下这样进行编译:#ifdef XXX...#error "XXX has been defined"#els
2015-03-04 23:41:05
924
原创 字典树应用
Trie,又称字典树、单词查找树,是一种树形结构,用于保存大量的字符串。它的优点是:利用字符串的公共前缀来节约存储空间。相对来说,Trie树是一种比较简单的数据结构.理解起来比较简单,正所谓简单的东西也得付出代价.故Trie树也有它的缺点,Trie树的内存消耗非常大.当然,或许用左儿子右兄弟的方法建树的话,可能会好点.其基本性质可以归纳为:1. 根节点不包含字符,除根节点外每一个节点都只包含一个字符。 2. 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。 3. 每个节点的所
2015-03-04 23:23:23
641
原创 java jar包冲突解决方法
jar包冲突几乎是每个java程序员都会遇到的问题,而且特别是大工程,jar包各种依赖,经常性发生包冲突。通常会报这样几个运行时异常:java.lang.NoSuchMehodErrorjava.lang.NoClassDefFoundError这类问题十有八九都是jar包冲突引起,要解决jar包冲突问题,我们先了解下导致这个冲突的原因。导致jar包冲突的原因1、mvn的传递依赖特性:mvn编译打包除了会引入直接申明的依赖,还会引入间接申明的依赖2、mvn的依赖仲裁规则: 1). 按照项目总
2015-03-03 00:21:50
20939
原创 正则表达式规则语法
正则表达式有什么作用呢?它可以: •测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证 ;•替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字; •根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字;
2015-03-01 22:50:13
1721
原创 Android 程序打包签名介绍
为什么要签名??? 开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的。 由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,签名可以保证相当名字,但是签名不同的包不被替换。 APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉。 这样签名其实也是开发者的身份标识。交易中抵赖等事情发生时,
2015-03-01 01:25:35
916
原创 数据where条件过滤
1.and 操作符即使与操作,多个条件同时成立才算true;2.or 操作符或操作,至少有一个满足就是true;3.计算次序当sql语句同时存在and和or,由于and的优先级比or高,操作符有可能被错误的组合起来。这种问题的解决办法是加(),使之正确组合。4.in操作符in操作符用来指定条件范围,范围中的每个条件都可以进行匹配,in的合法值由逗号分隔。使用in的优点:(1).in操作符一般比or的操作符清单执行更快;(2).in的最大优点是可以包含其他select语句,使得能够动态的建
2015-02-28 22:52:50
1423
原创 过滤分组where和having区别
聚集函数group by可以用来汇总数据,这使得我们可以对行精选计数,计算平均数,获得最大和最小值。但是往往我们对于分组只需要选出特定条件的。where和having是很多初学者容易搞混淆的,它们的区别:where是过滤行的,在分组之前;having是在分组之后,过滤分组的。
2015-02-28 22:48:46
1669
原创 Spring概述
Spring已经成为Java应用的首选的full-stack开发框架,该框架本着”从实践中来,到实践中去”的原则,对传统的EJB重量型框架的思想进行了颠覆式的革新,通过Rod Johnson天才般的演绎,使得spirng在短时间就流行起来。Spring是分层的Java SE/EE应用一站式的轻量级开元框架,以IOC(Inverse of Control:控制反转)和AOP(Aspect Oriented Programming:面向切面编程)为内核,并提供了展现层Spring MVC和持久层Spring
2015-02-28 22:09:43
619
原创 高性能之内存池
内存池(Memory Pool)是一种内存分配方式。 通常我们习惯直接使用new、malloc等API申请分配内存,这样做的缺点在于:由于所申请内存块的大小不定,当频繁使用时会造成大量的内存碎片并进而降低性能。内存池则是在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。这样做的一个显著优点是尽量避免了内存碎片,使得内存分配效率得到提升。(1)针对特殊情况,例如需要频繁分配释放固定大小的内存对象
2015-02-27 20:57:23
1284
原创 JQuery核心知识和快速入门
JQuery是什么?JQuery 是一套JavaScript库, 使用它,可以很方便的进行 JavaScript的编程。比如: 获取页面元素, 修改页面元素的CSS样式等等都可以以很简单的语法完成。节省代码行数和减少开发的时间。
2015-02-27 20:53:27
633
原创 IoC(Inversion of Control)控制反转和 DI(Dependency Injection)依赖注入
首先想说说IoC(Inversion of Control,控制倒转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,然后打听她们的兴趣爱好、qq号、电话号、ip号、iq号………,想办法认识她们,投其所好送其所要,然后嘿嘿……这个过程是复杂深奥的,我们必须自己设计和面对每个环节。传统的程序开发也是如此,在一个对象中,
2015-02-27 20:50:00
1061
原创 证明一个数能被3整除,当且仅当它的各位数的和能被3整除!
一个数能被3整除,当且仅当它的各位数的和能被3整除。一个简单的证明方法如下: 就拿一个四位数 abcd , 它可以表示为 1000*a+100*b+10*c+d = 999*a+99*b+9*c +(a+b+c+d), 999*a+99*b+9*c 能被3整除不用考虑,所以只要 a+b+c+d能被3整除就能说明四位数abcd能被3整除。证毕!
2015-02-26 20:48:50
3271
原创 计算阶乘n!末尾所含的0的个数
问题描述 给定参数n(n为正整数),请计算n的阶乘n!末尾所含有“0”的个数。 例如,5!=120,其末尾所含有的“0”的个数为1;10!= 3628800,其末尾所含有的“0”的个数为2;20!= 2432902008176640000,其末尾所含有的“0”的个数为4。问题分析:显然,对于阶乘增长速度的非常快的,很容易就溢出了。当然就不可能把阶乘算出来,而是要找规律解决。下面用因式分解的思路来考虑:末尾的0可以分解为2*5,一个5,一个2就对应一个0;下面给出递推过程:(1
2015-02-26 20:44:13
921
原创 分拆数组技巧应用
给你一个数组A[1..n],请你在O(n)的时间里构造一个新的数组B[1..n],使得B[i]=A[1]*A[2]*...*A[n]/A[i]。你不能使用除法运算。思路1:题目中说明,不能用除法,那一定是在相乘的时候,省略那一项,然后时间复杂度要0(n),就不能两层循环,而是要利用前面的相乘信息来降低复杂度。算法:相似的分拆技术在数组题中。线性时间构造两个新数组,从开始遍历相乘 T1[0] =1,T1[i]=T[i-1]*A[i-1] ;而 T2从后往前遍历相乘 T2[len-1] =1,T2[i]
2015-02-26 20:37:21
756
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人