![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 79
iteye_6700
这个作者很懒,什么都没留下…
展开
-
从C++到Java
1. 一切皆为对象Java应用程序即是对象的集合,它旨在完全用对象去建模,按照事物存在的形态去思考问题的本身,程序逻辑都是对象之间相互发送消息完成的。甚至Java的main函数都是作为类的静态方法而存在,因此相对于C++,Java是纯的面向对象的语言。 Java对象除原始类型(primitive)会用栈空间外,其他类型都是通过new分配在堆上,然后通过对象的引用来操作对象,赋值对象传递...2009-02-24 23:34:00 · 66 阅读 · 0 评论 -
用BTrace排查性能问题
BTrace是一个可以动态跟踪Java代码执行的工具,网上已经有很多文章介绍,我这里分享一个我在实际工作中排查性能问题的例子。现象我的一个REST接口调用非常慢,postman耗时3873 ms,这个接口就是从redis里把一批数据取出来,redis性能很好,理论上不会这么慢,于是用btrace,trace方法调用。 /* BTrace Script Template */...原创 2015-12-11 19:04:04 · 453 阅读 · 0 评论 -
groovy简明教程(三)常用的类及集合
5.1 GStringgroovy.lang.GString是对java String的扩展:常量表示更加方便,提供了更多的方法。 'hello world'"hello $name"'''-------python style string -------'''"""triple double quotewith $Gstring aware"""...原创 2013-10-18 12:47:33 · 144 阅读 · 0 评论 -
Javaassist技术
Javaassist是一个高层的Java字节码处理类库,能运行时动态生成类,修改类。Javaassit能动态生成类的基础源于Java Class的字节码技术:只要遵从规范,Java Class可以来自任何地方。类似的技术还有:bcel,asm等,他们相对于Javaassit,偏向底层,效率较高,但编码难度更高(需要了解JVM指令)。Javaassist是Jboss的一个子项目,其特点是...原创 2015-09-15 15:31:08 · 2402 阅读 · 0 评论 -
设置Spring的配置文件为war包外部的文件
用Spring开发Web项目的时候,有些情况下,需要在不解开war包的情况下修改配置在不同环境读取不同的配置文件,例如:开发环境:web-dev-config.properties,测试环境:web-test-config.properties,生产环境:web-production-config.properties,这时候就需要动态的载入配置文件。 从JVM参数获取配置文件路径J...原创 2015-08-20 15:24:01 · 628 阅读 · 0 评论 -
用jXLS和poi导出Excel
apache的poi提供了支持MS Office文档操作的java API。jXLS则是基于poi提供了支持Excel模版操作的API。jXLS的主页是:http://jxls.sourceforge.net,似乎国内不能访问,需要代理。 下面是一些例子,以及我对导出到多个sheet的一个封装。先定义一个模版: 这里的jxls tag和JSP的tag很像,varStatus...原创 2013-09-27 15:39:08 · 855 阅读 · 0 评论 -
groovy简明教程(六)面向对象
8. groovy的面向对象groovy来自java,当然是含有面向对象的基因。8.1 属性和本地变量groovy有private,protected,public等访问修饰符,但据groovy 2.0.7测试的结果,这些修饰符都是没有起作用,都是public的访问权限,这似乎是一个bug,但是尚未修复,http://jira.codehaus.org/browse/GROOVY-...原创 2013-09-03 22:37:52 · 211 阅读 · 0 评论 -
groovy简明教程(五)控制结构
7. Groovy的控制结构要理解groovy的控制结构,首先要明白其布尔值的判定。groovy借鉴了很多脚本语言,把数字0,空字符串,空集合等判定为false,除此之外null对象为false。7.1 swith语句groovy的swith语句支持很多类型,如下面的例子,实际上是调用了case条件中对象的isCase()方法,这里列举了以下实现isCase()方法的对象(注释中的...原创 2013-09-03 22:37:23 · 206 阅读 · 0 评论 -
groovy简明教程(四)闭包
6. 闭包(Closure)闭包其实就是一段代码,但他们又是封装成一个Closure对象。可以类比为java的内部类,或者更好的是C++中的函数对象又叫仿函数(functor)。闭包使得groovy的代码看起来更简洁,精炼。另外闭包可以使得资源处理更为简便。例如:new File(/testfile.txt/).eachLine {println it} // eachLine...原创 2013-09-03 22:36:25 · 119 阅读 · 0 评论 -
groovy简明教程(二)正则表达式
4.正则表达式groovy吸取了javascript的优点,用后斜线表示正则表达式,避免了java中多次写反斜杠转义。并提供了3个操作符:写道=~ 查找;==~ 匹配;~String 模式; str = 'god is a gril, believe or not?'matcher = str =~ /i\w/ // partily match? truematc...原创 2013-09-03 22:35:49 · 220 阅读 · 0 评论 -
groovy简明教程(一)介绍
1. groovy是什么groovy是运行在java虚拟机上的具有象Python,Ruby和Smalltalk语言特性的灵活动态语言。实际上它并非脚本语言,因为在运行时它也被编译成了字节码,运行在JVM上,它和java可以无缝的结合使用,你可以认为他是java语言的另一种表现形式,但它更灵活,简洁。groovy不是行执行的,它是编译成整个class文件执行的,可以这样认为,groovy...原创 2013-09-03 22:34:43 · 541 阅读 · 0 评论 -
Spring Batch初探
Spring batch是spring提供的批处理的框架,但不包括日程管理(schedule)的部分,最近项目用到,初试牛刀。 Spring Batch的核心概念如下图,JobLancher启动job,一个job包含若干step,每个step又包含一个ItemReader(读数据),ItemProcessor(处理数据),和ItemWriter(输出数据),job的元数据和运行状态...原创 2013-05-30 13:00:55 · 254 阅读 · 0 评论 -
用Server Send Event实现服务端推送
由于在HTTP协议中,服务器是出于被动的位置,浏览器(客户端)发起HTTP请求从服务端获取数据。但web2.0时代的一些web应用,则需要及时更新服务端的信息,(例如:票务,航班信息,股票信息等),还有一些情况下需要客户端和服务端实现一种异步通信的机制(比如:客户端提交一个耗时的请求,服务端处理完成后,通知客户端)。HTML5提供了WebSocket,客户端和服务端可以建立一个双工的通信通道,...原创 2013-04-17 23:39:36 · 494 阅读 · 0 评论