Java
文章平均质量分 65
IT老男人
这个作者很懒,什么都没留下…
展开
-
Lambda表达式学习总结
Lambda表达式学习总结lambda其实是对应各种已定义的function接口,不能随意书写lambda表达式lambda不能更改上下文中的局部变量值lambda表达式没有自属的this作用域 ...原创 2018-02-28 10:48:13 · 301 阅读 · 1 评论 -
Java栈与堆 String 详解
Java栈与堆1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆程序员不能直接地设置栈或堆。2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的...原创 2015-09-01 20:10:17 · 140 阅读 · 0 评论 -
java操作mongo的一点记录
一、驱动mongo对应的java驱动的下载地址https://github.com/mongodb/mongo-java-driver/downloads 二、文档API文档的地址http://api.mongodb.org/java/官方入门地址http://www.mongodb.org/display/DOCS/Java+Tutorial在java里像在...原创 2015-08-14 10:35:01 · 119 阅读 · 0 评论 -
java Future 接口介绍
在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java线程池ExecutorService类配合Future接口来实现。 Future接口是Java标准API的一部分,在java.util.concurrent包中。Future接口是Java线程Future模式的实现,可以来进行异步计算。Future模式可以这样来描述:我有一个任务,提交给了Future,Future替我完成这...原创 2015-08-12 09:33:20 · 96 阅读 · 0 评论 -
浅谈Future
Future到底是什么东西?很多人都对这个东西感到特别奇怪(好吧,我承认,那个很多人就只是我自己而已),就我现在的理解,因为本人在并发这方面没有多少实践经验,所以只好就着一些资料和自己的理解给它下个定义,Future就是保存我们任务的完成信息,比如说,任务中会通过返回某些东西告诉别人它已经结束了,而Future中就保存了这种信息。利用Futu保存和得到任务的结果的用法如下: ...原创 2015-08-12 09:32:40 · 157 阅读 · 0 评论 -
request.getParameter()、request.getInputStream()和request.getReader()
大家经常 用servlet和jsp,但是对 request.getInputStream()和request.getReader()比较陌生。request.getParameter()request.getInputStream()request.getReader()这 三个方法都是从request对象中得到提交的数据,但是用途不同,要根据<form>表单提交数据的编码方式选择不...原创 2015-08-10 10:09:56 · 171 阅读 · 0 评论 -
MYSQL 调优和使用必读
MYSQL 应该是最流行了 WEB 后端数据库。WEB 开发语言最近发展很快,PHP, Ruby, Python, Java 各有特点,虽然 NOSQL 最近越來越多的被提到,但是相信大部分架构师还是会选择 MYSQL 来做数据存储。MYSQL 如此方便和稳定,以至于我们在开发 WEB 程序的时候很少想到它。即使想到优化也是程序级别的,比如,不要写过于消耗资源的 SQL 语句。但是除此之外,...原创 2015-08-04 14:43:57 · 223 阅读 · 0 评论 -
Dubbo处理TCP拆包粘包问题
摘要 在TCP网络传输工程中,由于TCP包的缓存大小限制,每次请求数据有可能不在一个TCP包里面,或者也可能多个请求的数据在一个TCP包里面。那么如果合理的decode接受的TCP数据很重要,需要考虑TCP拆包和粘包的问题。我们知道在Netty提供了各种Decoder来解决此类问题,比如`LineBasedFrameDecoder`,`LengthFieldBasedFrameDecoder`...原创 2015-08-04 08:56:35 · 1646 阅读 · 0 评论 -
最好用的Java APNS类库---消息推送
我在公司的项目组一直都在做一款ios应用,涉及到聊天功能,当用户在线时,可以使用长连接将消息推送过去,但应用可能并不处于运行中,比如用户关闭应用,或者切换到后台10分钟后应用会停止运行。如果这时需要给用户推送消息,那怎么办呢?此时就需要用到APNS(Apple Push Notification Service),网上关于APNS的介绍一大堆,这里就不做过多叙述了。大概是这么一个过程:我的serv...原创 2015-08-03 15:55:15 · 671 阅读 · 0 评论 -
比较分析 Spring AOP 和 AspectJ 之间的差别
面向方面的编程(AOP) 是一种编程范式,旨在通过允许横切关注点的分离,提高模块化。AOP提供方面来将跨越对象关注点模块化。虽然现在可以获得许多AOP框架,但在这里我们要区分的只有两个流行的框架:Spring AOP和AspectJ。这里将会帮助你基于一些关键信息,为你的项目选择正确的技术。Spring AOP不同于大多数其他AOP框架。Spring AOP的目的并不是为了提供...原创 2015-08-03 15:16:07 · 137 阅读 · 0 评论 -
hibernate 中createQuery与createSQLQuery
昨晚帮同事看代码到凌晨2点多,今早6点醒来发现他发来信息说报空指针错误,实在无法入睡,起来自己测试了一下,控制台还真的报:2009-4-25 8:12:34 org.apache.catalina.core.ApplicationContext log信息: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to...原创 2015-08-03 15:15:12 · 152 阅读 · 0 评论 -
java内存动态编译执行
一般的java的动态编译是需要先生成java文件,然后编译成class,最后用classloader加载进来生成最终的实例的。 本例程则不需要生成任何文件,一切在内存中进行。 标签: <无> 代码片段(6)[全屏查看所有代码]1. [代码][Java]代码 ?1234567...原创 2015-07-29 21:38:45 · 363 阅读 · 0 评论 -
动态生成java、动态编译、动态加载
我曾经见过一个“规则引擎”,是在应用系统web界面直接编写java代码,然后保存后,规则即生效,我一直很是奇怪,这是如何实现的呢?实际这就好像jsp,被中间件动态的编译成java文件,有被动态的编译成class,同时又动态的加载到classloader中。所以,本质上,纯java得规则引擎,是100%可以实现的。 1、动态生成java源代码。这个过程太过简单,直接略过。2、动态编译...原创 2015-07-29 21:38:19 · 1003 阅读 · 0 评论 -
使用spring aop实现业务层mysql 读写分离
spring aop , mysql 主从配置 实现读写分离,下来把自己的配置过程,以及遇到的问题记录下来,方便下次操作,也希望给一些朋友带来帮助。mysql主从配置参看:http://blog.csdn.net/huoyunshen88/article/details/265974831.使用spring aop 拦截机制现数据源的动态选取。[html] view plainco...原创 2015-09-06 19:43:10 · 140 阅读 · 0 评论 -
在应用层通过spring特性解决数据库读写分离
如何配置mysql数据库的主从?单机配置mysql主从:http://my.oschina.net/god/blog/496 常见的解决数据库读写分离有两种方案1、应用层http://neoremind.net/2011/06/spring实现数据库读写分离目前的一些解决方案需要在程序中手动指定数据源,比较麻烦,后边我会通过AOP思想来解决这个问题。 2、中间件...原创 2015-09-06 19:57:58 · 229 阅读 · 0 评论 -
JAX-RS服务端接收中文乱码
还记得在学servlet的时候,处理中文乱码时:如果是GET提交则用byte[] nameByte = str.getBytes("ISO-8859-1"); str = new String(nameByte, "UTF-8");解决,如果是Post提交了则更容易,用request.setCharacterEncoding("UTF-8");来解决。现在在处理JAX_RS的时候,可以在他提...原创 2015-12-23 10:52:40 · 537 阅读 · 0 评论 -
mongodb like查询
假如需要查找的字符串为s,则可以用db.tables.find({"name":/s/}),或者db.tables.find({"name":/^s/}) ,或者db.tables.find({"name":/s.*/}),或者db.tables.find({"name":/.s.*/})下面就分析下这几种查询的对应结果有什么不同:1)db.city.find({"extra_data....原创 2015-12-17 10:07:58 · 213 阅读 · 0 评论 -
redis命令整理
1.批量清除缓存 redis-cli KEYS "mongodb_*" | xargs redis-cli DEL /usr/local/bin/redis-cli -a rdpwd keys "mongodb*"|xargs /usr/local/bin/redis-cli -a rdpwd del /usr/local/bin/redis-cli -a rdpwd ...原创 2015-12-16 13:54:23 · 132 阅读 · 0 评论 -
Linux下安装Nginx详细图解教程
什么是Nginx?Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高连接并发的情况下Nginx 是 Apache 服务器不错的替代品.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.目前中国大陆使用nginx网站用户有:新浪、网易、 腾讯,另外知名的微网志...原创 2015-12-15 11:14:13 · 129 阅读 · 0 评论 -
JAX-RS 2.0 REST客户端编程实例
导读JAX-RS 2.0 又称 JSR 339 不仅定义了一套用于构建 RESTful 网络服务的 API,同时也通过增强客户端 API 功能简化了REST 客户端的构建过程。JAX-RS: Java API for RESTful Web Services是一个Java编程语言的应用程序接口,支持按照 表象化状态转变 (REST)架构风格创建Web服务Web服务[1]. JAX-R...原创 2015-12-14 22:46:38 · 201 阅读 · 0 评论 -
Java高效读取大文件
1、概述本教程将演示如何用Java高效地读取大文件。这篇文章是Baeldung(http://www.baeldung.com/) 上“Java——回归基础”系列教程的一部分。2、在内存中读取读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法:123Files.r...原创 2015-12-12 23:35:43 · 173 阅读 · 0 评论 -
dubbo常见问题--使用多个进程启动服务,端口冲突怎么办?
使用多个进程启动服务,端口冲突怎么办?注:此为Spring的标准功能,仅在此提示使用方式,不属于Dubbo范畴。使用Spring自带的PropertyPlaceholderConfigurer的SYSTEM_PROPERTIES_MODE_OVERRIDE实现通过-D参数设置端口: java -Ddubbo.service.server.port=208...原创 2015-11-24 15:08:38 · 1532 阅读 · 0 评论 -
Maven 打包时把依赖打包到指定目录方法
最近系统上线频繁,每次系统上线,当用maven打成war的时候,由于war包中都包括了lib,所以每次war挺大,往生产上上传的时候挺慢,后来把这些lib包都移到tomcat的上层,新建了个tomcat/locallib,把所有webapp/lib下得war都移动这个目录。以后只要打war的时候不包括lib包即可,这样war就大大减小。要做到用maven中打war包得时候不包括lib包可以进行如下...原创 2015-11-04 22:13:39 · 4536 阅读 · 0 评论 -
maven: 打包可运行的jar包(java application)及依赖项处理
IDE环境中,可以直接用exec-maven-plugin插件来运行java application,类似下面这样: 1 <plugin> 2 <groupId>org.codehaus.mojo</groupId> 3 <artifactId>exec-maven-plugin</artifactId&g...原创 2015-11-04 22:05:00 · 199 阅读 · 0 评论 -
tomcat下catalina.out日志文件分割
tomcat默认使用java.util.logging记录日志,默认只记录tomcat的日志,不记录应用的日志。tomcat支持采用log4j进行日志记录,配置方法如下:1.更新最新的tomcat_juli.jar包到./bin/目录下;2.拷贝log4j.jar,lo4j.properties到./lib目录下;3.删除./conf/logging.properties4.重启...原创 2015-10-28 20:25:01 · 139 阅读 · 0 评论 -
Java并发编程:阻塞队列
在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。 在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了D...原创 2015-10-28 13:57:30 · 105 阅读 · 0 评论 -
java处理图片--图片的缩放,旋转和马赛克化
这是我自己结合网上的一些资料封装的java图片处理类,支持图片的缩放,旋转,马赛克化。(转载请注明出处:http://blog.csdn.net/u012116457)不多说,上代码:?1234567891011121314151617181920212223242526...原创 2015-09-22 22:23:37 · 222 阅读 · 0 评论 -
Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM) (清晰,浅显)
class文件简介及加载 Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Class对象: class字节码文件是根据JVM虚拟机规范中规定的字节码组...原创 2015-07-29 21:38:08 · 88 阅读 · 0 评论 -
Java 反射机制
在我们使用形如 ClassName object = new ClassName(); 的语句进行创建实例的时候,我们默认 ClassName 已经在系统内存在的了,所以直接使用new 的方式进行创建。事实上,在启动虚拟机的时候,我们定义在系统内的类通过类的加载器(class loader)加载到系统内。所以当系统运行的时候,我们就可以使用该类。 有时候...原创 2015-07-29 21:37:38 · 108 阅读 · 0 评论 -
MongoDB整合Spring 详细讲解(含代码)
写这篇文章也做了下思考,首先是本人技术欠佳。但就是喜欢研究一些东西。因为在此之前有很多的朋友已经写过类似的,很多我也看过,但是讲解的不够深入。对有些朋友提出的问题不能给出答案。在这里,我根据我目前的能力对其进行整理。并最终运行成功。在测试过程中出现过一下问题:1、org/springframework/data/mapping/context/MappingContextAware...原创 2015-07-24 15:10:46 · 150 阅读 · 0 评论 -
推荐eclipse插件Properties Editor
Properties Editor 是一款properties文件编辑器。 需求:一般我们在做“国际化”功能时,我们需要properties中文表示方式用unicode表示。eclipse默认properties文件编辑器不方便查看,需要我们查看常常查找unicode编码表。 Properties Editor刚好满足了这个需求,不需要用户常常查看unicode编码表,默认直观表...原创 2015-07-16 13:47:54 · 101 阅读 · 0 评论 -
maven中的snapshot来源与注意事项
maven的依赖管理是基于版本管理的,在maven2之后,把版本管理细化snapshot 快照仓库和release发布仓库。release版本,对于发布状态的artifact(就是被依赖的jar包),如果版本号相同,即使我们内部的镜像服务器上的组件比本地新,maven也不会主动下载的。这里也为snapshot 的出现打下了伏笔。 快照版本,很多人不是特别理解为什么要有这个事物的出...原创 2015-07-16 09:55:12 · 509 阅读 · 0 评论 -
updateByPrimaryKey与updateByPrimaryKeySelective
在abator中可生成iBatis的代码。其中,Sql_map中带有的两个函数是:updateByPrimaryKeySelectiveupdateByPrimaryKey前者只是更新新的model中不为空的字段。后者则会将为空的字段在数据库中置为NULL。例如:Action [java] view plaincopy Labor labo...原创 2015-07-13 12:32:46 · 296 阅读 · 0 评论 -
在Spring+FreeMarker框架中使用Shiro的Tag标签
目录[-]1、下载shiro-freemarker-tags2、Spring MVC配置3、使用Shiro Tag目前Freemarker对Shrio的标签还不支持,不过已经有人贡献出来第三方面解决方案,如下:1、下载shiro-freemarker-tagsGitHub地址:https://github.com/jagregory/sh...原创 2015-07-09 16:33:10 · 320 阅读 · 0 评论 -
jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令
公司内部同事分享的一篇文章 周末看到一个用jstack查看死锁的例子。昨天晚上总结了一下jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令。供大家参考 1.Jstack 1.1 jstack能得到运行java程序的java stack和native stack的信息。可以轻松得知当前线程的运行情况。如下图所示 注:这个和thread dump是同样的结果。但是thre...原创 2015-07-09 11:04:08 · 739 阅读 · 0 评论 -
maven工程开启jetty调试
准备工作: a. 在pom.xml中配置jetty插件: Xml代码 <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</...原创 2015-07-09 09:37:12 · 150 阅读 · 0 评论 -
SpringMVC的各种参数绑定方式
SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似):Controller代码:@RequestMapping("saysth.do")public void test(int count) {}表单代码:<form action="saysth.do" method="post"><input name...原创 2015-07-01 09:29:02 · 113 阅读 · 0 评论 -
FreeMarker 获取页面request、session
使用Request里的Attribute值最简单的方法就是直接${AttributeName}或者安全一点:${AttributeName!"default Value"}1.取Application范围的对象xml 代码 1. <#if Application.myApplicationAttribute?exists> 2. ${Ap...原创 2015-06-28 16:17:30 · 235 阅读 · 0 评论 -
java获取当前类的绝对路径
在jsp和class文件中调用的相对路径不同。在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径。另:在Jsp,Servlet,Java中详细获得路径的方法!1.jsp中取得路径:以工程名为TEST为例:(1)得到包含工程名的当前页面...原创 2015-06-28 15:24:20 · 512 阅读 · 0 评论 -
springMVC和spring上下文关系
使用了listener监听器来加载配置,一般在Struts+Spring+Hibernate的项目中都是使用listener监听器的。如下<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> ...原创 2015-06-28 13:50:22 · 211 阅读 · 0 评论