上一页 1 2 3 4 5 6 7 8 ··· 10 下一页
摘要: 什么是JMX?或者是JMX是做什么的?我的理解是:可以远程管理/编辑JAVA对象。如图:上面的SchemaName属性就是可以动态修改的,那么是如何做到的哪?下面咱们逐步分析。一、首先假设咱们有个对象SystemConfig,包含两个属性threadCount和schemaNamepackage s... 阅读全文
posted @ 2014-06-17 19:35 李秋 阅读(538) 评论(0) 推荐(0) 编辑
摘要: Kettle命令行使用说明1.Pan——转换执行器用来执行转换。参数与Kitchen类似,如下。1- -version显示版本信息2- -file=filename运行xml文件3- -param:key=value指定命名参数4- -log=logging filename 设置日志文件5- -l... 阅读全文
posted @ 2014-06-17 12:17 李秋 阅读(6206) 评论(0) 推荐(0) 编辑
摘要: 今天配置了一个crontab,但是怎么也不能执行,原因是环境变量的问题,记录一下。解决问题的办法,在shell脚本添加:##################. /etc/profile. ~/.bash_profile##################查看crontab是否执行了,可以查看:tai... 阅读全文
posted @ 2014-06-17 12:09 李秋 阅读(599) 评论(0) 推荐(0) 编辑
摘要: 一、截取字符串第一步 导入包:第二步:${fn:substring(str,0,10)} 二、标签循环判断三、if语句3.1 字符串是否相等 style="color:red" 3.2 变量是否存在代码..... 阅读全文
posted @ 2014-06-13 10:46 李秋 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 以往一直都是crontab+shell调用java程序,最近需要反过来,使用java调用shell程序,实现定时管理,今天总结一下。基础内容:java的java.lang.Runtime类提供了exec静态方法,可以执行本地脚本程序事例:package study;import java.io.In... 阅读全文
posted @ 2014-06-12 18:02 李秋 阅读(1227) 评论(0) 推荐(0) 编辑
摘要: 随着大数据的到来,越来越多的数据需求需要开发,而这些需求不可避免需要使用JS画出图表,而大多后端JAVA开发人员对JS不太熟悉,导致身心倍受折磨,今天记录以下最近我使用echarts的步骤,供参考:一、环境说明前端框架:echarts、Jquery后端框架:SPRINGMVC二、开发过程前端代码:I... 阅读全文
posted @ 2014-05-30 16:24 李秋 阅读(5856) 评论(0) 推荐(0) 编辑
摘要: 最近开发一个项目,发现字段校验比较多,同事提出使用Validation校验能更方便一些,今天记录下来,供以后参考:一、在pom.xml中添加依赖: javax.validation validation-api 1.0... 阅读全文
posted @ 2014-05-28 10:08 李秋 阅读(732) 评论(0) 推荐(0) 编辑
摘要: 正在学习《大型网站系统与JAVA中间件实践》,发现对BIO、NIO、AIO的概念很模糊,写一篇博客记录下来。先来说个银行取款的例子:同步 : 自己亲自出马持银行卡到银行取钱(使用同步IO时,Java自己处理IO读写)。异步 : 委托一小弟拿银行卡到银行取钱,然后给你(使用异步IO时,Java将IO读... 阅读全文
posted @ 2014-04-30 17:48 李秋 阅读(881) 评论(0) 推荐(1) 编辑
摘要: 1、请写一个功能性的函数,输入一个数组,返回这个数组中第二大的数字。要求:只能用一个for循环实现,不能做排序。例如:输入的数组内容是 [3, -1, 2, 8, 4, 1] 返回 4 public static int sort(int[] nums) { if (nums.l... 阅读全文
posted @ 2014-04-15 10:47 李秋 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 为什么需要优化GC? JAVA的GC是面试必考的题目,可是在实际项目中什么时候使用GC哪?或者应该什么时候优化GC哪?有句名言:“GC优化永远是最后一项任务”。 在使用GC之前,应该考虑一下进行GC的最根本原因:垃圾收集器需要清除在程序中创建的对象,GC执行的次数即需要被垃圾收集器清理的对象个数,与... 阅读全文
posted @ 2014-04-14 14:19 李秋 阅读(858) 评论(0) 推荐(0) 编辑
摘要: 如何判断JVM是否存在内存问题呢?如何判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为它主要监控的是总体的系统资源,很难定位到java应用程序。 Jstat是JDK自带的一个轻量级小工具,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能... 阅读全文
posted @ 2014-04-14 12:21 李秋 阅读(895) 评论(0) 推荐(0) 编辑
摘要: 首先说一说JAVA内存泄漏和JAVA内存溢出的区别。JAVA内存溢出非常好理解,JVM内存不够了,申请失败,就会溢出;JAVA内存泄漏只的是程序中有很多不用的对象仍然占着内存不释放,慢慢也会引发内存溢出。 我们的网络应用程序就主要采用Java语言开发,大体上分为客户端、服务器和数据库三个层次。在进... 阅读全文
posted @ 2014-04-13 12:29 李秋 阅读(558) 评论(0) 推荐(0) 编辑
摘要: 线程池这个概念已经深入人心了,今天就是通过几个入门事例,学习一下线程池在JAVA中的应用。一、大小固定的线程池——Executors.newFixedThreadPool() 下面咱们明确两个类: 1、ExecutorService:线程池的接口类 2、Executors:Java里面线程池的顶级接口是Executor,但是严格意义上讲Executor并不是一个线程池,而只是一个执行线程的工具 3、Executors.newFixedThreadPool():这是一个静态方法,也是这个事例的核心,目的是创建固定大小的线程池。每次提交一个任务就创建一个线程,直到线程达到线程池的最大值。线程池的. 阅读全文
posted @ 2014-04-06 21:33 李秋 阅读(2900) 评论(0) 推荐(0) 编辑
摘要: semaphore['seməfɔ:(r)] 是信号的意思。 在JAVA里面,我的理解是信号计数的作用,比如我想设置只能允许500个线程访问WebServer,那么如何控制500个数量哪?每来一个请求,就通过acquire()获取一个许可,然后数量自动减一,处理完成之后通过release()释放一个许可,数量自动加一。这样就实现了控制的作用,当然这个功能咱们自己通过锁的机制可以自己完成,不过使用Semaphore比较简单、方便,这也是它产生的原因。好了废话少说,写一段代码看看。Test.javapackage com.taobao;import java.util.concurrent 阅读全文
posted @ 2014-04-06 19:52 李秋 阅读(1438) 评论(0) 推荐(0) 编辑
摘要: 今天咱们简单介绍一些serializable。1、序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。2、什么情况下需要序列化? a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候; b)当你想用套接字在网络上传送对象的时候;比如淘宝的HSF中间件。 c)当你想通过RMI传输对象的时候;3、当对一个对象实现序列化时,究竟发生了什么? 在没有序列化前,每个保存在堆(Hea 阅读全文
posted @ 2014-04-02 11:36 李秋 阅读(962) 评论(0) 推荐(0) 编辑
摘要: 这两天看了一道面试题,什么是inode?我勒个去,第一次听说。于是Google了一下,发现下面这段内容讲解的非常不错,供大家参考。一、inode是什么? 理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector),每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 s 阅读全文
posted @ 2014-03-31 22:19 李秋 阅读(588) 评论(0) 推荐(0) 编辑
摘要: 昨天被问到truncate与delete的区别,truncate没用过,回去百度了一下,才知道还有这个一种语句。truncate table命令将快速删除数据表中的所有记录(保留数据表结构)。这种快速删除与delete from 数据表的删除全部数据表记录不一样,delete命令删除的数据将存储在系统回滚段中,需要的时候,数据可以回滚恢复,而truncate命令删除的数据是不可以恢复的。咱们做一个测试:1、建一个带有自增字段的表,加入100万数据2、分别用TRUNCATE和DELETE删除全部数据(分别执行DELETE FROM `TABLENAME`; TRUNCATE FROM `TABL 阅读全文
posted @ 2014-03-29 22:38 李秋 阅读(789) 评论(0) 推荐(0) 编辑
摘要: JSP就是Servlet,JSP被容器生成Servlet的一个方法,自然也可以直接使用Servlet的一些对象,下面就列出可以直接使用的对象: 内置对象类型作用域关系requestjavax.servlet.http.HttpServletRequestrequest与Input/Output有关responsejavax.servlet.http.HttpServletResponseresponse与Input/Output有关pageContextjavax.servlet.jsp.PageContextpage与Context有关sessionjavax.servlet.http... 阅读全文
posted @ 2014-03-29 22:11 李秋 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 前言: BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的两个重要成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue 阻塞队列,顾名思义,首先它是一个队列,而一个队列在数据结构中所起的作用大致如下图所示: 从图中我们可以很清楚看到,通过一个共享的队列,可以使得数据由队列的一端输入,从另外一端输出;常用的队列主要有以下两种:(当然通过不同的实现方式,还可以延伸出很多不同类型的队列,DelayQueue就是其中的一种) 阅读全文
posted @ 2014-03-28 11:26 李秋 阅读(4396) 评论(0) 推荐(0) 编辑
摘要: 在网络上看了很多关于他们两个的区别与联系,今天用自己的话表述一下:synchronized容易理解,给一个方法或者代码的一个区块加锁,那么需要注意的是,加锁的标志位默认是this对象,当然聪明的你可能想我能不能不用this对象而使用其他的哪?答案是肯定的volatile说volatile就不得不说JAVA的内存模型,java的每一个线程都有自己的指定的内存区域,而且又有共同的主内存区域,当操作计算的时候,会从主内存区域将变量拷贝到自己的内存区域,再计算,计算之后再写回去,那么问题就来了,当一个线程A把共享变量读入自己的区域,计算的时候,线程B也把共享变量读入自己的内存区域进行计算,这样就可能产 阅读全文
posted @ 2014-03-26 21:01 李秋 阅读(1129) 评论(0) 推荐(0) 编辑
摘要: JAVA在Web开发项目中,经常会接收各种参数,并将这些参数保存到对象里面去,比如,http://127.0.0.1/Servlet/?username=liqiu&password=123456&age=29。需要将这些内容保存在User对象里面去,User.java代码如下:public class User { private String username; private String password; private int age;public String getUsername() { return username; }.......... 阅读全文
posted @ 2014-03-23 09:11 李秋 阅读(772) 评论(0) 推荐(0) 编辑
摘要: 想要充分了解HTTP长连接,需要首先知道一些基本概念:TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的。 经典的三次握手示意图: 经典的四次握手关闭图:TCP短连接 我们模拟一下TCP短连接的情况,client向server发起连接请求,server接到请求,然后双方建立连接。client向server 发送消息,server回应client,然后一次读写就完成了,这时候双 阅读全文
posted @ 2014-03-22 16:56 李秋 阅读(579) 评论(0) 推荐(0) 编辑
摘要: ServletServlet 没有 main 方法,不能够独立的运行,它的运行需要容器的支持,Tomcat 是最常用的 JSP/Servlet 容器。Servlet 运行在 Servlet 容器中,并由容器管理从创建到销毁的整个过程。Servlet 的生命周期(1) 加载和实例化 Servlet 容器装载和实例化一个 Servlet。创建出该 Servlet 类的一个实例。(2) 初始化 在 Servlet 实例化完成之后,容器负责调用该 Servlet 实例的 init() 方法,在处理用户请求之前,来做一些额外的初始化工作。(3) 处理请求 当 Servlet 容器接收到一个 Ser... 阅读全文
posted @ 2014-03-20 21:11 李秋 阅读(1851) 评论(0) 推荐(0) 编辑
摘要: maven命令:http://blog.csdn.net/edward0830ly/article/details/87489861、创建MAVEN的Web工程mvn archetype:generate -DgroupId=com.taobao.app -DartifactId=my-web-app -DarchetypeArtifactId=maven-archetype-webapp -DinteractivMode=false目录如下:@~/study/maven/my-web-app $ tree.├── pom.xml├── src│ └── main│ ├── resou... 阅读全文
posted @ 2014-03-20 14:42 李秋 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 网上拷贝的,废话少说,直接上代码: 阅读全文
posted @ 2014-03-11 17:28 李秋 阅读(2040) 评论(0) 推荐(0) 编辑
摘要: 一、编辑作用域功能快捷键文本编辑器查找上一个Ctrl+Shift+K文本编辑器查找下一个Ctrl+K全局恢复上一个选择Alt+Shift+↓全局快速修正Ctrl1+1全局内容辅助Alt+/全局全部选中Ctrl+A全局上下文信息Alt+?Alt+Shift+?Ctrl+Shift+SpaceJava编辑器显示工具提示描述F2Java编辑器选择封装元素Alt+Shift+↑Java编辑器选择上一个元素Alt+Shift+←Java编辑器选择下一个元素Alt+Shift+→文本编辑器增量查找Ctrl+J文本编辑器增量逆向查找Ctrl+Shift+J全局粘贴Ctrl+V全局重做Ctrl+Y 二、查看作 阅读全文
posted @ 2014-02-27 17:40 李秋 阅读(550) 评论(0) 推荐(0) 编辑
摘要: 好久不用ngx_lua了,忽然被问到如何实现页面跳转,半天没反应过来,查了半天资料搞出来的,在这里做一个备份。需求说明:***.taobao.com 跳转到 www.taobao.com/?url=***程序如下: location = /test { content_by_lua ' --ngx.print(ngx.var.http_host) str = ngx.var.http_host local pos = string.find(str,".taobao.c... 阅读全文
posted @ 2014-02-19 19:41 李秋 阅读(1707) 评论(0) 推荐(0) 编辑
摘要: ctr+shift+t搜索所有的类 阅读全文
posted @ 2014-02-15 09:15 李秋 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 今天发现了一个BUG,在引用其他的包的的时候报错:ERROR - Undefined placeholders found in template:- Template: META-INF/autoconf/xxx.xml- Descriptor: META-INF/autoconf/xxx.xml- Base URL: jar:jar:file:/Users/liqiu/git/fmp/service/target/xxx.war!/WEB-INF/lib/123456.jar!/----------------------------------------------------... 阅读全文
posted @ 2014-02-10 16:32 李秋 阅读(7137) 评论(0) 推荐(1) 编辑
摘要: 这是一个包冲突的典型错误,今天搞了一天。从错误信息就能看出是commons.lang出现的问题,解决方案:去掉新增加的conmons.lang依赖,加载其他的版本。1、在编译之后的目录查看加载的包版本:@~/git/fmp/service/target/fmp/WEB-INF/lib (coupon)$ ls | grep commons-langcommons-lang-2.3.jar2、在mvn dependece:tree 查看依赖的包:[INFO] | +- commons-lang:commons-lang:jar:2.3:compile 3、估计问题就出在这里,去掉依赖。去掉依赖. 阅读全文
posted @ 2014-02-08 18:10 李秋 阅读(11311) 评论(0) 推荐(0) 编辑
摘要: 最近公司有个项目,需要多并发完成任务,也就是一个任务控制中心控制多个WORKER的问题,这里的核心点在于如果WORKER_A正在执行1号任务,任务中心不能让WORKER_B重复执行1号任务,即WORKER_A和WORKER_B同时来任务中心需要互斥。咱们的解决方案是使用MYSQL的INNODB行锁机制完成这项工作,即使用MYSQL来充当任务中心的角色。相关参考:SELECT FOR UPDATE原理。一、创建数据表: testCREATE TABLE `test` ( `unit_id` int(11) NOT NULL AUTO_INCREMENT, `style` int(11) NO.. 阅读全文
posted @ 2014-01-24 11:46 李秋 阅读(800) 评论(0) 推荐(0) 编辑
摘要: 一、现象最近做JAVA项目,需要依赖一个外部的JAR包,但是依赖之后,发现eclipse一直workspace,估计是包重复加载的问题二、问题使用查看包依赖的命令:mvn dependency:tree 81 [INFO] +- com.taobao.promotioncenter:promotion-common-client:jar:3.6.1:compile 96 [INFO] | +- com.taobao.biz.traderule:traderule:jar:1.5.5-SNAPSHOT:compile 97 [INFO] | | +- com.taobao.co... 阅读全文
posted @ 2014-01-20 17:23 李秋 阅读(2172) 评论(0) 推荐(0) 编辑
摘要: 公司需要使用JAVA的WebServer完成简单的定时跑任务的工作。其他例如:每隔30分钟执行锁定用户解锁任务。 Quartz 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使用的简单性。Quartz 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行关联映射。Spring为创建Quartz的Scheduler、Trigger和JobDetail提供了便利的FactoryBean类,以便能够在Spring 容器中享受注入的好处。此外Spring还提供了一些便利工具类直接将Spring中的Bean包装成合法的任务。Spring进一步降低了使用Qu. 阅读全文
posted @ 2014-01-15 15:48 李秋 阅读(643) 评论(0) 推荐(0) 编辑
摘要: 问题说明:最近遇到一个问题,多个WORKER同时向MYSQL数据库请求任务,如何实现互斥?例如:SELECT * FROM student WHERE id > 10 LIMIT 100;UPDATE student SET status = 1 WHERE id > 10 LIMIT 100;当有多个WORKER执行上面两条语句,那么很可能都执行同样的数据,造成线上问题,比如WORDER1执行SELECT之后,还没有执行UPDATE之前,WORDER2也执行了SELECT语句,造成问题。那么这种情况可以使用SELECT ... FOR UPDATE,解决问题,当我读出数据的时候, 阅读全文
posted @ 2014-01-15 11:24 李秋 阅读(3724) 评论(0) 推荐(0) 编辑
摘要: linux图形界面框架linux图形界面又称x系统,其主要包含如下几个部分:1) XServer2) 显示管理器 (Display Manager) 例如(gdm kdm xdm等)3) 窗口管理器 (Window Manager) 例如(metacity ,fluxbox等)4) DM 和 WM之上的一些图形应用程序在使用中一般都是2,3,4三者集合起来构成一个完整的集成工作环境,例如KDE ,GNOME等,这就是我们平时所说的广义上的xclient。1 XServer 主要提供基本的显示接口共xclient使用,并将用户的操作等也反映给xclient,是xclient与硬件的一个中间层。. 阅读全文
posted @ 2014-01-08 16:26 李秋 阅读(771) 评论(0) 推荐(0) 编辑
摘要: 前两天发现一个问题,当使用proxy_pass的时候,发现域名对应IP是缓存的,这样一旦VIP变化之后,就会报错,下面就来详细分析一下这个问题。一、问题说明 location = /test { internal; no_error_pages; proxy_pass_request_headers off; proxy_pass 'http://www.taobao.com/test/router/rest'; } 大家应该知道,这是向http://www.taobao.com/test/router/rest发送请求,其实是向202.108.250.25... 阅读全文
posted @ 2014-01-03 23:31 李秋 阅读(7869) 评论(0) 推荐(0) 编辑
摘要: 一、概况 Nginx可以开启多个进程,每个进程拥有最大上限128个子线程以及一定的可用连接数。最大客户端连接数等于进程数与连接数的乘积,连接是在主进程中初始化的,一开始所有连接处于空闲状态。每一个客户端请求进来以后会通过事件处理机制,在Linux是Epoll,在FreeBSD下是KQueue放到空闲的连接里。如果设置了线程数,那么被填充的连接会在子线程中处理,否则会在主线程中依次处理。如果解析出是动态脚本请求,会根据fast-cgi的设置访问php-cgi进程,php进程数量的多少依据php-fpm.conf中max_children的设置。因此Nginx的动态请求能力不仅仅依靠Nginx本. 阅读全文
posted @ 2014-01-02 20:44 李秋 阅读(5735) 评论(0) 推荐(1) 编辑
摘要: 查看源代码入门 这是一篇关于NGINX的MAIN()函数入门说明文章,相比其他这篇十分枯燥,其实写的时候更是无聊,不过学了这么长时间的WEB开发,连NGINX源代码都没有读下来,总是觉得有些缺憾,希望这一次可以弥补一下。一、下载NGINX下载地址:http://nginx.org/en/download.htmltar -zxvf *.tar.gz && ./configure && make && sudo make install查看NGINX目录有如下文件夹:auto CHANGES CHANGES.ru conf configure co 阅读全文
posted @ 2014-01-01 08:43 李秋 阅读(5215) 评论(1) 推荐(0) 编辑
摘要: X WINDOW X Window从逻辑上分为三层:X Server、X Client和X协议。最底层的X Server(X服务器)主要处理输入/输出信息并维护相关资源,它接受来自键盘、鼠标的操作并将它交给X Client(X客户端)作出反馈,而由X Client传来的输出信息也由它来负责输出;最上层的X Client则提供一个完整的GUI界面,负责与用户的直接交互(KDE、GNOME都是一个X Client)。X协议则是衔接X Server与X Client的通讯协议,它的任务是充当这两者的沟通管道。尽管UNIX厂商采用相同的X Window,但终端的X Client并不相同。XLIB 在X 阅读全文
posted @ 2013-12-31 15:49 李秋 阅读(1401) 评论(0) 推荐(0) 编辑
摘要: 图形界面切换到字符界面:实体机:Ctrl + Alt + F1VMware虚拟机:按下ALT+CTRL+SPACE(空格),ALT+CTRL不松开,再按F1。这样就可以切换到字符界面字符界面切换到图形界面:实体机:Ctrl + Alt + F7VMware虚拟机:按下ALT+CTRL+SPACE(空格),ALT+CTRL不松开,再按F7。这样就可以切换到字符界面 阅读全文
posted @ 2013-12-31 10:26 李秋 阅读(518) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 10 下一页