
JAVA
文章平均质量分 70
Coding小飞侠
倚楼听风雨,临海看江湖——专注互联网技术!!!
展开
-
Java通过JNI调用C++程序
Java通过JNI调用C++程序 JNI是Java Native Interface的缩写,中文为JAVA本地调用。使用JNI可以很方便的用我们的Java程序调用C/C++程序。很多时候,某些功能用Java无法实现,比如说涉及到底层驱动的一些功能,这时候我们就可以利用JNI来调用C或者C++程序来实现,这就是JNI的强大之处。但是JNI也有它的缺点,使用java与本地已编译的转载 2014-12-09 09:01:03 · 615 阅读 · 0 评论 -
JVM调优设置
你对JVM内存调优设置是否了解,默认的java虚拟机的大小比较小,在对大数据进行处理时java就会报错:java.lang.OutOfMemoryError。在weblogic中,可以在startweblogic.cmd中对每个domain虚拟内存的大小进行设置,默认的设置是在commEnv.cmd里面。JVM内存调优设置原理默认的java虚拟机的大小比较小,在对大数据进行处理时j转载 2014-04-24 21:42:32 · 463 阅读 · 0 评论 -
JVM中新生代和旧生代中不同的垃圾回收机制
一.概述java的最大好处是自动垃圾回收,这样就无需我们手动的释放对象空间了,但是也产生了相应的负效果,gc是需要时间和资源的,不好的gc会严重影响系统的系能,因此良好的gc是JVM的高性能的保证。JVM堆分为新生代,旧生代和年老代,新生代可用的gc方式有:串行gc(Serial Copying),并行回收gc(Parellel Scavenge),并行gc(ParNew),旧生代和年老代转载 2014-04-24 21:37:18 · 1488 阅读 · 0 评论 -
Http chunk介绍
总结: HTTP 1.1时,Response要嘛通过Content-Length来指定要传输的内容大小,要嘛通过Transfer-Encoding: chunked来传输动态大小的内容,此时要求Response传输的内容要符合chunk encoding的规定。从抓包的角度来说,两个请求如果HTTP 参数(Head和Body)都相同的话,是等价的,不管请求是从浏览器还是Java代码发出转载 2014-05-20 09:13:37 · 7094 阅读 · 0 评论 -
Tomcat数据源的配置
在JDBC的操作中,打开和关闭数据库连接,是最耗费数据库资源的,我们可以在服务器上存放一定量的数据库连接,每当程序要连接数据库时,就将这些链接给它们,而一旦程序退出数据库操作时,要将这些链接返回给服务器。下图是数据源的基本概念:1:通过Connection Pool 管理数据库连接2:通过Data Source 去管理Connection Pool3: Data Source转载 2014-05-14 08:53:25 · 725 阅读 · 0 评论 -
SpringMVC与Struts的区别
虽然说没有系统的学习过Spring MVC框架, 但是工作这么长时间, 基本上在WEB层使用的都是Spring MVC, 自己觉得Struts2也是一个不错的WEB层框架, 这两种框架至今自己还未有比较, 今天闲着没事干, 从网上找了一些资料, 再加上平时使用Spring MVC的感触来总结一下。Spring MVC PK Struts2我们用struts2时采用的传统的配置文件的方式转载 2014-05-14 11:26:00 · 436 阅读 · 0 评论 -
Filter与Servlet的区别
FilterServlet接口实现Filter接口实现Servlet接口使用步骤1、创建类,继承接口2、实现方法init()doFilter()destroy() 3、配置WEB-INF/web.xml1、创建类,继承接口2、实现方法init()servi转载 2014-05-14 11:21:09 · 375 阅读 · 0 评论 -
SpringMVC注解
1、使用Spring非注解(annotation)方式注入属性?123456public class RoleServicesLogic implementsRoleServices { privateRoleDao roleDao; publicvoid setRoleDao(RoleDa转载 2014-05-14 11:40:54 · 441 阅读 · 0 评论 -
数组初始化默认值及地址问题
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package test;原创 2014-05-15 00:24:15 · 1123 阅读 · 0 评论 -
jvm内存管理与监控
jvisualvm能干什么:监控内存泄露,跟踪垃圾回收,执行时内存、cpu分析,线程分析... jvisualvm已经被集成在jdk1.6以上的版本中(不是jre)。自身运行需要最低jdk1.6版本,但是可以监控运行在jdk1.4以上版本的java程序以jdk1.6update45(jdk1.6update45自带的jvisualvm)来做说明,当然也可单独下载独立的jvisualvm转载 2014-04-24 21:27:20 · 456 阅读 · 0 评论 -
java中Cloneable与Serializable接口
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package test;原创 2014-05-10 17:40:53 · 760 阅读 · 0 评论 -
OSGI简介
OSGI简介 OSGI (Open Service Gateway Initiative)联盟成立于1999 年,它是一个非盈利的国际组织,旨在建立一个开放的服务规范,为通过网络向设备提供服务建立开放的标准,是开放业务网关的发起者。OSGI联盟的初始目标是构建一个在广域网和局域网或设备上展开业务的基础平台,对OSGI 的最早设计也是针对嵌入式应用的,诸如机顶盒、服务网关、手机、转载 2014-04-24 22:04:55 · 518 阅读 · 0 评论 -
javaMail简介
一、JavaMail API 简介 JavaMail API是Sun公司为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如:SMTP、POP3、IMAP和MIME等。开发人员使用JavaMail API编写邮件处理软件时,无须考虑邮件协议底层的实现细节,只要调用JavaMail开发包中相应的API类就可以了。Java转载 2014-05-16 09:17:44 · 544 阅读 · 0 评论 -
JUNIT测试的一些建议
以下是对JUnit实践的一个很好的总结,信息来源于一些比较权威的JUnit书籍和网上资料。这里集合如下: 1、每次只对一个对象进行UT测试(unit-test one object at a time)。这样能使你尽快发现问题,而不被各个对象之间的复杂关系所迷惑。2、给测试方法起个好名字(choose meaningful test method names)。应该是用形如te转载 2014-05-16 10:16:14 · 924 阅读 · 0 评论 -
java 的反射机制相关方法的使用
Reflection是Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说"自审",并能直接操作程序的内部属性。例如,使用它能获得 Java 类中各成员的名称并显示出来。 Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C 或者 C++ 中就没有办法在程序中获得函数定义相关的信息。Jav转载 2014-04-24 22:10:03 · 488 阅读 · 0 评论 -
使用java反射机制来模拟hibernate session的实现原理
使用java反射机制来模拟hibernate session的实现原理 2011-05-09 21:50:21| 分类:JAVA程序 开发 | 标签:使用反射原理实现类似于hibernate数据库的jdbc操作 append field annotation string |举报|字号大中小 订阅核心类session本类提供了转载 2014-04-24 22:23:12 · 1053 阅读 · 0 评论 -
JAVA的反射机制及代理机制
反射机制:用于获取运行时信息,对自身的JAVA程序进行检查并直接操作程序内部的属性。例如可以获取某个对象的属性,执行某个对象的方法,新建实例等。而反射机制是如今许多流行框架的实现基础,包括Spring、Hibernate等。不过,使用反射会比较消耗资源。代理机制:JAVA中的另一个重要机制,包括静态和动态两种。为了将业务逻辑和核心业务分离,代理位于调用者和核心业务之间,由代理去转载 2014-04-24 22:47:22 · 619 阅读 · 0 评论 -
邮件传输协议SMTP,POP3,IMAP,MIME
电子邮件需要在邮件客户端和邮件服务器之间,以及两个邮件服务器之间进行传递,就必须遵循一定的规则,这些规则就是邮件传输协议。SMTP协议定了邮件客户端与SMTP服务之间,以及两台SMTP服务器之间发送邮件的通信规则;POP3/IMAP协议定义了邮件客户端与POP3服务器之间收发邮件的通信规则。一、SMTP协议 SMTP(Simple Mail Transfer转载 2014-05-16 09:01:28 · 4803 阅读 · 0 评论 -
Gephi中的统计算法学习
gephi是一个数据可视化处理软件,其中有很多对数据分析的统计算法,对于很多数据分析算法都有实现,那么就来看看其中的一些统计方法:1. degree (平均度)计算每个节点的度,并统计相同度的节点数量平均度: 有向图: 所有点的度数总和/节点数*2 无向图: 所有点的度数总和/节点数在图上能够,看出每个度所占的百分比,能够看到每种度用不同颜色标示转载 2014-05-17 09:33:46 · 11171 阅读 · 5 评论 -
Java线程创建的两种方式
JAVA线程有两种创建方式:继承Thread类和实现Runnable接口原创 2014-05-22 14:15:48 · 506 阅读 · 0 评论 -
JAVA多线程学习专题
Java多线程编程总结 下面是Java线程系列博文的一个编目: Java线程:概念与原理Java线程:创建与启动Java线程:线程栈模型与线程的变量Java线程:线程状态的转换 Java线程:线程的同步与锁Java线程:线程的交互Java线程:线程的调度-休眠 Java线程:线程的调度-优先级Java线程:线程的调度-让步转载 2014-05-22 11:38:32 · 357 阅读 · 0 评论 -
堆和栈的区别
此文章虽然是面向C/C++程序员写得,但是对咱们Java程序员还是很有帮助的。 堆和栈的区别 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序转载 2014-10-14 10:01:12 · 413 阅读 · 0 评论 -
100万个数中找到最大的100个数
1. 算法如下:根据快速排序划分的思想 (1) 递归对所有数据分成[a,b)b(b,d]两个区间,(b,d]区间内的数都是大于[a,b)区间内的数 (2) 对(b,d]重复(1)操作,直到最右边的区间个数小于100个。注意[a,b)区间不用划分 (3) 返回上一个区间,并返回此区间的数字数目。接着方法仍然是对上一区间的左边进行划分,分为[a2,b2)b2(b2,d2]两个区间,取(b2,d2]区间转载 2014-10-13 22:49:34 · 3826 阅读 · 0 评论 -
一致性 hash 算法
一致性 hash 算法( consistent hashing ) 张亮 consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees中被提出,目前在 cache 系统中应用越来越广泛; 1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映转载 2014-10-14 10:07:58 · 363 阅读 · 0 评论 -
从B 树、B+ 树、B* 树谈到R 树
从B 树、B+ 树、B* 树谈到R 树 作者:July、weedge、Frankie。编程艺术室出品。说明:本文从B树开始谈起,然后论述B+树、B*树,最后谈到R 树。其中B树、B+树及B*树部分由weedge完成,R 树部分由Frankie完成,全文最终由July统稿修订完成。出处:http://blog.youkuaiyun.com/v_JULY_v 。 第一节、B树、B+树、B*转载 2014-10-14 10:31:21 · 378 阅读 · 0 评论 -
堆排序
public class HeapSort {public static int heap_size;//双亲编号public static int parent(int i){return i/2;}//左孩子编号public static int leftChild(int i){return 2*i;}//右孩子编号public static in转载 2014-10-13 21:35:50 · 410 阅读 · 0 评论 -
HTTP 协议详解
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of H转载 2014-10-14 16:41:32 · 504 阅读 · 0 评论 -
递归算法经典列子
程序调用自身的编程技巧称为递归( recursion)。一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。用递归思想写出的程序往往十分简洁易懂。一般来说,递归需要有边界转载 2014-10-18 10:41:36 · 782 阅读 · 0 评论 -
JDK内置工具的使用
JDK内置工具使用一、javah命令(C Header and Stub File Generator)二、jps命令(Java Virtual Machine Process Status Tool)三、jstack命令(Java Stack Trace)四、jstat命令(Java Virtual Machine Statistics Monitoring Tool)五、j转载 2014-12-09 09:34:20 · 635 阅读 · 0 评论 -
项目管理之Maven入门篇
除了Ant之外,Maven是最普遍的项目管理工具,日常的项目开发中无不见其身影,下面简单介绍下Maven的安装和基本的命令。1.下载Maven安装文件apache-maven-3.2.3-bin.zip,目前最新版本是3.2.3.解压到指定目录。2.设置环境变量 M2_HOME: D:\JAVA\apache-maven-3.2.3-bin\apache-maven-3.原创 2014-10-29 23:11:04 · 867 阅读 · 0 评论 -
TestNG简介
1 基本概念TestNG:即Testing, Next Generation,下一代测试技术,是根据JUnit和NUnit思想,采用jdk的annotation技术来强化测试功能并借助XML 文件强化测试组织结构而构建的测试框架。最新版本5.12,Eclipse插件最新版本:testng-eclipse-5.12.0.6TestNG的应用范围:Ø单元测试Ø集成测试转载 2014-06-19 19:39:31 · 648 阅读 · 0 评论 -
海量数据处理思想
前言一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。毕竟受文章和理论之限,本文摒弃绝大部分的细节,只谈方法/模式论,且注重用最通俗最直白的语言阐述相关问题。最后,有一点必须强调转载 2014-05-22 17:23:48 · 629 阅读 · 0 评论 -
WebService框架简介
1、JWS是Java语言对WebService服务的一种实现,用来开发和发布服务。而从服务本身的角度来看JWS服务是没有语言界限的。但是Java语言为Java开发者提供便捷发布和调用WebService服务的一种途径。Java SE 6封装了JAX-WS(Java API for XML-Web Services),而JAX-WS同时支持基于SOAP的Web服务和REST风格的Web服务。转载 2014-05-23 14:15:31 · 575 阅读 · 0 评论 -
sftp文件操作
最近写的一个JAVA实现SFTP的实例:/** Created on 2009-9-14* Copyright 2009 by www.xfok.net. All Rights Reserved**/package net.xfok.ftp;import java.io.File;import java.io.FileInputStream;import转载 2014-07-22 23:26:18 · 600 阅读 · 0 评论 -
secure CRT常用的查看服务器日志命令
tail -f /(日志文件目录) 查看日志命令ctrl+c停止打印ls -al 查看文件的详细信息路径等vi /(日志文件目录) 打开日志/搜索字符退出:按ESC后,按“:”,输入q,敲回车 WinSCPcat主要有三大功能:1.一次显示整个文件。$ cat filename~,2.从键盘创建一个文件。$ cat > filena转载 2014-07-22 23:50:06 · 18414 阅读 · 0 评论 -
JAVA jvm参数含义
Java -Xms2g -Xmx2g -Xmn512M -Xss128K -XX:PermSize=128M -XX:MaxPermSize=128M -XX:NewRatio=4 -XX:SurivorRatio=4 -XX:MaxTenuringThreshold=1-Xms2g:JVM启动初始化堆大小为2g,Xms的默认是物理内存的1/64但小于1G。-Xmx2g:JVM最大转载 2014-06-15 17:29:27 · 2523 阅读 · 0 评论 -
item1:使用静态工厂方法代替构造函数
场景:设想这样一种场景,有两种方式可以构造一个复数:第一种方式是通过实部和虚部的数字构造,第二中方式是通过半径和弧度构造,假设两种方式的参数类型都是float,不考虑精度问题。这样的话,因为参数类型相同,是不能通过一个构造函数体现的。即使可以将参数类型倒置来区分两种方式,但从开发人员的角度来考虑容易出现混乱。基于这种场景可以使用静态工厂方法代替构造函数。代码如下:/* * To ch原创 2014-06-15 10:51:22 · 603 阅读 · 0 评论 -
Eclipse快捷键
(1)Ctrl+M --切换窗口的大小(2)Ctrl+Q --跳到最后一次的编辑处(3)F2 --当鼠标放在一个标记处出现Tooltip时候按F2则把鼠标移开时Tooltip还会显示即Show Tooltip Description。 F3 --跳到声明或定义的地方。 F5 --单步调试进入函数内部。转载 2014-06-18 23:23:36 · 367 阅读 · 0 评论 -
Eclipse远程debug设置
前提:服务器上代码 和本地代码一样。 1.打开Eclipse,点击左上角的debug按钮,如图: 2.点击上图的红色区域 3.双击上图的红色区域 4.Project:选择你要debug的项目,Host:输入你的远程IP,Port:远程调用端口。如何知道远程端口,通过进入你的远程虚拟机的命令行,输入jps -v 命令,查找这一行-Xrunjdwp:tr转载 2014-06-18 23:33:38 · 511 阅读 · 0 评论 -
JAVA异常机制
异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C开始,你也许已经知道如何用if...else...来控制异常了,也许是自发的,然而这种控制异常痛苦,同一个异常或者错误如果多个地方出现,那么你每个地方都要做相同处理,感觉相当的麻烦! Java语言在设计的当初就考虑到这些问题,提出异常处理的框架的方案,所有的异常都可以用一个类型来表示,不同类型的异常对应不同的子类异常(这里的转载 2014-04-24 10:44:28 · 330 阅读 · 0 评论