java 编程
文章平均质量分 83
huanghailang
这个作者很懒,什么都没留下…
展开
-
使用FlexPaper实现PDF文件在线预览
Java+FlexPaper+swfTools仿文库文档在线阅读转载自:http://my.oschina.net/stephenzou/blog/144489一、文档在线阅读思路 1.用OpenOffice把PPT、Word、Excel、Text转换为pdf 2.用SWFTool将生成的pdf转换成swf,然后利用FlexPlayer实现在线预转载 2017-10-27 16:15:51 · 3562 阅读 · 1 评论 -
JAR命令&JAR包详解
JAR命令&JAR包详解 write by Jack.Hao JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包。当然也是有区别的,JAR包中有一个META-INF\MANIFEST.MF文件,当你找成JAR包时,它会自动生成。JAR包是由JDK安装目录\bin\jar.exe命令生成的,当我们安装好JDK,设置好path路径,就可以正常使用jar.ex转载 2015-08-27 09:56:15 · 472 阅读 · 0 评论 -
Java Networking: Protocol Design
If you are designing a client-server system you may also have to design a communication protocol between the client and the server. Of course, sometimes this protocol is already have been decided fo转载 2015-08-27 14:25:45 · 426 阅读 · 0 评论 -
Java NIO API详解2
在JDK 1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API。对于大多数应用来说,这样的API使用很方便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO API作为一个基于缓冲区,并能提供非阻塞(non-blocking)IO操作的API被引入。本文对其进行深入的介绍。 N转载 2015-08-27 17:53:03 · 282 阅读 · 0 评论 -
JAVA调用系统命令或可执行程序
通过 java.lang.Runtime 类可以方便的调用操作系统命令,或者一个可执行程序,下面的小例子我在windows和linux分别测试过,都通过。基本原理是,首先通过 Runtime.getRuntime() 返回与当前 Java 应用程序相关的运行时对象,然后调用run.exec(cmd) 另启一个进程来执行命令(cmd为要执行的命令)。 一、运行一个可执行程序转载 2015-08-27 09:53:02 · 342 阅读 · 0 评论 -
理解Java NIO
基础概念缓冲区操作 缓冲区及操作是所有I/O的基础,进程执行I/O操作,归结起来就是向操作系统发出请求,让它要么把缓冲区里的数据排干(写),要么把缓冲区填满(读)。如下图内核空间、用户空间 上图简单描述了数据从磁盘到用户进程的内存区域移动的过程,其间涉及到了内核空间与用户空间。这两个空间有什么区别呢? 用户空间就是常规进程(如JVM)所在区域,用户空间是非特权区域,如不能直接转载 2015-08-27 17:38:33 · 388 阅读 · 0 评论 -
JAVA流技术(IO编程)
JAVA流技术(IO编程)流的作用:如何从能够发送字节序列的任何数据源取得输入,以及如何将输出发送到能够接收字节序列的任何目的地。即:输入/输出问题。字节序列的源和目的地可以是文件、网络连接、内存块等,存储在文件中的信息和从网络连接中接收的信息,从本质上处理方法是相同的。数据最终都保存为一个字节序列,但是在程序设计中应当用更高级的数据结构来处理,如字符或对象序列等。转载 2015-08-27 09:51:59 · 533 阅读 · 0 评论 -
AOP技术基础
1、引言2、AOP技术基础3、Java平台AOP技术研究4、.Net平台AOP技术研究2.1 AOP技术起源AOP技术的诞生并不算晚,早在1990年开始,来自Xerox Palo Alto Research Lab(即PARC)的研究人员就对面向对象思想的局限性进行了分析。他们研究出了一种新的编程思想,借助这一思想或许可以通过减少代码重复模块从而帮助开发人员转载 2014-12-24 10:25:16 · 317 阅读 · 0 评论 -
Spring AOP 实现原理与 CGLIB 应用
AOP(Aspect Orient Programming),作为面向对象编程的一种补充,广泛应用于处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理则可分为静态代理和动态代理两大类,其中静态代理是指使用 AOP 框架提供的命令进行编译,从而在编译阶段就可生成 AOP 代理类,因此也称为编译时增强转载 2014-12-24 10:23:44 · 475 阅读 · 0 评论 -
android平台的图片滤镜
http://www.icodelogic.com/?p=575 这里提供了几种滤镜的实现.我也下载了代码试了效果,如果图片较小,还是可以接受的,如果图片较大,有些处理过程会失败,内存不足,作者主要是将一些处理用jni实现,并不像其它的库用c来处理的,当然可能种种原因了. 还有一些java处理的,好像是老外写的:http://www.jhlabs.com/ip/filters/index.转载 2014-11-27 15:53:47 · 431 阅读 · 0 评论 -
Best practices in Android development
# Best practices in Android developmentLessons learned from Android developers in Futurice. Avoid reinventing the wheel by following these guidelines. If you are interested in iOS or Windows Pho转载 2014-11-14 15:24:28 · 901 阅读 · 0 评论 -
sql 存储过程的的好处和缺点
存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库。中用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。存储过程在创建时转载 2014-02-10 16:33:06 · 3213 阅读 · 0 评论 -
Java程序员应该了解的10个面向对象设计原则
面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton、Decorator、Observer这样的设计模式,而不重视面向对象的分析和设计。甚至还有经验丰富的Java程序员没有听说过OOPS和SOLID设计原则,他们根本不知道设计原则的好处,也不知道如何依照这些原则来进行编程转载 2015-09-25 18:06:59 · 247 阅读 · 0 评论 -
Java基础学习总结——Java对象的序列化和反序列化
Java基础学习总结——Java对象的序列化和反序列化一、序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。 在很多应用中,需要对某些对象进行序列化,让它们离开内转载 2015-10-22 10:08:16 · 271 阅读 · 0 评论 -
权限管理——RBAC模型总结
权限管理,这是每个软件系统都会涉及到的,而且权限管理的需求本质往往都是一样,无在乎怎么的角色拥有怎样的权限,只要你充当了这个角色,你就拥有了这些功能。 举个简单例子:一个老师在学校教室她就拥有教书育人的权利义务,一个丈夫在家就有呵护妻子支撑家庭的权利义务,而一个父亲在孩子面前就有保护孩子,教育孩子的权利义务……而作为一个男生,我们很可能在不同的场所,成为这些角色,从而拥有转载 2015-10-26 11:27:27 · 536 阅读 · 0 评论 -
Apache Commons工具集简介
Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。下面是我这几年做开发过程中自己用过的工具类做简单介绍。 组件功能介绍BeanUtils提供了对于JavaBean进行各种操作,克隆对象,属性等等.BetwixtXML与Java对象之间相互转换.Codec处理常用的编码方法的工具类转载 2016-11-01 08:53:44 · 563 阅读 · 0 评论 -
mysql常用函数
一、数学函数ABS(x) 返回x的绝对值BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x) 返回大于x的最小整数值EXP(x) 返回值e(自然对数的底)的x次方FLOOR(x) 返回小于x的最大整数值GREATEST(x1,x2,...,xn)返回集合中最大的值LEAST(x1,x2,...,xn)转载 2016-11-10 16:33:35 · 242 阅读 · 0 评论 -
maven+springMVC+mybatis+junit详细搭建过程
摘要在做javaweb的过程中,搭建框架式比较头疼事情了,每次重新去搭建太浪费时间了,现在把框架搭建完成,可以在以后的项目中运用,节约开发成本。springMVC+mybatis框架搭建在上一遍博客中以及讲诉了新建maven项目的流程,现在紧跟上一遍文章,接着搭建spring项目首先我们先要弄清搭建项目的一般流程,需要注意哪些方面,想要什么样的效果,自己的功能有哪些?转载 2016-08-12 17:43:37 · 530 阅读 · 0 评论 -
web分享
自学编程/代码:小白自学各种编程(入门):http://www.codecademy.com/小白自学各种编程(进阶):http://teamtreehouse.com/ 和http://code.tutsplus.com/小白自学Html+CSS:http://www.codecademy.com/en/tracks/web 最适合初学者的两种web后台脚本语言:转载 2016-08-03 13:04:25 · 580 阅读 · 0 评论 -
Java编程常见问题汇总
每天在写Java程序,其实里面有一些细节大家可能没怎么注意,这不,有人总结了一个我们编程中常见的问题。虽然一般没有什么大问题,但是最好别这样做。另外这里提到的很多问题其实可以通过Findbugs( http://findbugs.sourceforge.net/ )来帮我们进行检查出来。字符串连接误用错误的写法:String s = ""; for (Person p :转载 2016-06-28 16:56:35 · 592 阅读 · 0 评论 -
知道这20个正则表达式,能让你少写1,000行代码
知道这20个正则表达式,能让你少写1,000行代码正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。正则表达式经常被用于字段或任意字符串的校验,如下面这段校验基本日期格式的JavaScript代码:var reg = /^(\\d{1,4})(-|转载 2016-05-12 17:58:05 · 314 阅读 · 0 评论 -
ANDROID内存优化(大汇总——上)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持!写在最前:本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总、挑选、简化后整理而成。所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,转载 2015-12-30 18:31:00 · 314 阅读 · 0 评论 -
Java栈与堆
Java栈与堆堆:顺序随意栈:后进先出(Last-in/First-Out). Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在转载 2015-12-30 17:20:48 · 481 阅读 · 0 评论 -
android 开发如何做内存优化
不少人认为JAVA程序,因为有垃圾回收机制,应该没有内存泄露。其实如果我们一个程序中,已经不再使用某个对象,但是因为仍然有引用指向它,垃圾回收器就无法回收它,当然该对象占用的内存就无法被使用,这就造成了内存泄露。如果我们的java运行很久,而这种内存泄露不断的发生,最后就没内存可用了。当然java的,内存泄漏和C/C++是不一样的。如果java程序完全结束后,它所有的对象就都不可达了,系统就可以对转载 2015-12-30 16:58:31 · 278 阅读 · 0 评论 -
java.text.Format体系总结
1.1. Format的方法java.text.Format做为一个抽象类,有二个抽象方法,format(Object obj, StringBuffer toAppendTo, FieldPosition pos):格式化一个对象,并将得到的文本追加到给定的字符缓冲区。是将obj格式化为字符串,并加入到toAppendTo中。parseObject(String source, Pa转载 2015-10-14 11:02:01 · 1058 阅读 · 0 评论 -
高手速成android开源项目【tool篇】
主要包括那些不错的开发库,包括依赖注入框架、图片缓存、网络相关、数据库ORM建模、Android公共库、Android 高版本向低版本兼容、多媒体相关及其他。一、依赖注入DI通过依赖注入减少View、服务、资源简化初始化,事件绑定等重复繁琐工作AndroidAnnotations(Code Diet)android快速开发框架项目地址:https://github.转载 2014-01-21 22:05:34 · 580 阅读 · 0 评论 -
高手速成android开源项目【View篇】
主要介绍那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、ProgressBar及其他如Dialog、Toast、EditText、TableView、Activity Animation等等。 一、ListView android-pulltorefresh转载 2014-01-21 22:14:34 · 1018 阅读 · 2 评论 -
java.io学习总结
我将按照基类的顺序:InputStream、OutPutStream、Reader、Writer来分别对Java I/O加以总结。 。。。。。整理中 java中的流,简单理解就是管道里有流水,这个管道连接了程序和文件。 InputStream、OutPutStream是字节输入流的所有类的超类。 Reader、Writer是字符输入流的所有类的超类。转载 2013-03-01 14:07:37 · 292 阅读 · 0 评论 -
Java socket 入门编程实例
import java.net.*; import java.io.*; import java.lang.*; public class ClientApp { public static void main(String args[]) { try { //创建通讯并且和主机Rock连接 Socket cSocket=new Socket("192.转载 2013-03-01 15:11:38 · 248 阅读 · 0 评论 -
Java NIO Socket通信
一 套接字通道1. 阻塞式套接字通道 与Socket和ServerSocket对应,NIO提供了SocketChannel和ServerSocketChannel对应,这两种通道同时支持一般的阻塞模式和更高效的非阻塞模式。 客户端通过SocketChannel.open()方法打开一个Socket通道,如果此时提供了SocketAddress参数,则会自动开始连转载 2013-02-28 17:51:53 · 384 阅读 · 0 评论 -
JAVA NIO 实例
最近一直在忙着JAVA NIO的知识,花了一下午的时间,总算写出了一个可以运行的程序,废话少说,上代码!Java代码 import java.io.IOException; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.nio.By转载 2013-02-28 15:24:59 · 262 阅读 · 0 评论 -
Java的运算符
Java的运算符可分为4类:算术运算符、关系运算符、逻辑运算符和位运算符。 1.算术运算符 Java的算术运算符分为一元运算符和二元运算符。一元运算符只有一个操作数;二元运算符有两个操作数,运算符位于两个操作数之间。算术运算符的操作数必须是数值类型。 (1)一元运算符: 一元运算符有:正(+)、负(-)、加1(++)和减1(--)4个。 加1、减1运算符转载 2013-02-26 15:01:45 · 254 阅读 · 0 评论 -
Java中的流、字符流和字节流
http://sobaid.blogbus.com/logs/59873645.html一、什么是流:流是一个抽象的概念。当Java程序需要从数据源读取数据时,会开启一个到数据源的流。数据源可以是文件,内存或者网络等。同样,当程序需要输出数据到目的地时也一样会开启一个流,数据目的地也可以是文件、内存或者网络等。流的创建是为了更方便地处理数据的输入输出。流分为字节流和字符流。转载 2013-03-04 16:32:20 · 322 阅读 · 0 评论 -
java中byte转换int时为何与0xff进行与运算
在剖析该问题前请看如下代码public static String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i String hex = Integer.toHexString(b[ i ] & 0xFF); if (hex.length() == 1) { hex = '转载 2013-03-04 15:57:37 · 303 阅读 · 0 评论 -
Java学习总结之第十六章 Socket用法详解
一、构造SocketSocket的构造方法有以下几种重载形式:(1)Socket()(2)Socket(InetAddress address, int port)throws UnknownHostException,IOException(3)Socket(InetAddress address, int port, InetAddress localAddr,转载 2013-01-16 11:35:27 · 416 阅读 · 0 评论 -
Java变量以及内存分配(非常重要)
不知道是第几次看thinking in java了。不是的翻翻总有新的收获。堆栈静态存储区域一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据转载 2013-01-15 17:48:17 · 456 阅读 · 0 评论 -
java socket编程
一,网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。目前较为转载 2012-12-21 10:17:33 · 328 阅读 · 0 评论 -
观察者模式中的推模式与拉模式
观察者模式中的推模式与拉模式[摘录]在Observer模式中区分推模式和拉模式,先简单的解释一下两者的区别:推模式是当有消息时,把消息信息以参数的形式传递(推)给所有观察者,而拉模式是当有消息时,通知消息的方法本身并不带任何的参数,是由观察者自己到主体对象那儿取回(拉)消息。知道了这一点,大家可能很容易发现上面我所举的例子其实是一种推模式的Observer模式。我们先看看这种模式带来了什么好处转载 2012-12-20 17:52:58 · 2258 阅读 · 0 评论 -
Java网络socket编程详解
或许有点长但是一步步教你我想你也愿意看7.2 面向套接字编程 我们已经通过了解Socket的接口,知其所以然,下面我们就将通过具体的案例,来熟悉Socket的具体工作方式7.2.1使用套接字实现基于TCP协议的服务器和客户机程序 依据TCP协议,在C/S架构的通讯过程中,客户端和服务器的Socket动作如下:客户端:1.用服务器的IP地址和端转载 2013-03-01 15:22:30 · 284 阅读 · 0 评论 -
从InputStream到ByteArrayInputStream
本篇主要分析:1.如何将byte数组适配至ByteArrayInputStream,对应与IO部分的适配器模 式;2.BufferedInputStream的工作原理,对应于IO的装饰器模式,会首先研究InputStream和 FilterInputStream的源代码,同时会将要谈谈软件设计中的缓存相关的知识。后面专门一章分析PipedInputStream和 PipedOutStream,简单转载 2013-03-01 15:25:34 · 4237 阅读 · 0 评论