JAVA相关
yongjian_luo
这个作者很懒,什么都没留下…
展开
-
Java中Runnable和Thread的区别<转>
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限。下面看例子:package org.thread.demo; class MyThread extends Th转载 2015-01-19 19:20:15 · 429 阅读 · 0 评论 -
Java程序在linux下运行<转>
1. 先在eclipse下把项目源码导出成jar包,可以选中项目右键->export->jar 。。一步一步到底,最后变成1.jar,再把额外的一些jar包,如lucene、mysql-connecor的一些jar包也打包成一个2.jar(最后使用起来方便),上传到服务器(命令scp -r -Pxx端口号 username@xxx /....)接着输入密码,注意端口号前P要大写,斜杆后世你要把上传转载 2014-08-06 17:57:18 · 553 阅读 · 0 评论 -
字典树入门及实现(JAVA)<转>
Trie树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。 典型应用是用于统计和排序大量的字符串(但不仅限于字符串), 所以经常被搜索引擎系统用于文本词频统计。它的优点是: 利用字符串的公共前缀来节约存储空间,最大限度的减少无谓的字符串比较,查询效率比哈希表高。 比如说我们想储存3个单词,sky、skyline、skymoon。如果只是单纯的按照以前的字符数组存转载 2014-03-04 17:14:24 · 1018 阅读 · 0 评论 -
Java反编译工具推荐
jd-gui是很久之前下载的一个Java反编译工具,可以将Jar包中的class类之间编译回.java文件,今天在网上下载了一个测试的jar包,没有使用方法,正好想起来了以前下载的一个反编译工具jd-gui,测试了一下,相当好用。果断反编译,看源码,哈哈~~原创 2014-01-09 17:53:06 · 582 阅读 · 0 评论 -
Java中HashMap和TreeMap的区别深入理解<转>
首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。这就是我们平时说的键值对。HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不转载 2013-12-20 14:19:51 · 1105 阅读 · 0 评论 -
Java打印抛出异常的方法名称
多层的异常其实是嵌套的,以栈的形式存储,打印出的异常方法名顺序也是从最底层开始,最后打印最上层的方法名称。try{}catch (Exception e) {for(StackTraceElement ste:e.getStackTrace()){System.out.println(ste.getMethodName());}}原创 2014-01-03 15:00:02 · 2869 阅读 · 0 评论 -
Struts2+Spring+Hibernate搭建全解!<转>
本文出处:http://www.cnblogs.com/shiyangxt/archive/2008/09/27/1301092.htmlStruts2+Spring+Hibernate搭建全解!Struts2+Spring+Hibernate是J2EE的最新流行框架。本篇是我搭建这个框架的经验总结,有很多人搭建这个框架总会遇到大大小小的问题,网上也没有什么行之有效的方案或成体转载 2013-12-17 17:54:00 · 662 阅读 · 0 评论 -
Java回调函数的理解<转>
所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。例如Win32下的窗口过程函数就是一个典型的回调函数。一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的B姓甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用B函数,这个转载 2013-12-17 17:25:35 · 576 阅读 · 0 评论 -
Java接口中的变量和方法默认的类型<转>
例子:定义:interface MyService{ String name = "你真坏"; int getId();}-----------------说明:1.MyService接口:默认是abstract;默认也是default 或者叫 friendly,即 在同一个包或者类中可以访问。注意: frie转载 2013-12-17 16:11:25 · 3010 阅读 · 0 评论 -
java Spring-3.2.0+Struts-2.3.4+Hibernate-4.1.6整合<转>
我的前一篇博文讲了Spring-3.2.0+Struts2.3.4+JPA2.0整合,其所需的jar包与Spring-3.2.0 +Struts-2.3.4+Hibernate-4.1.6所需的jar包基本相同.下面列出SSH整合所需要的jar包. 如上图所示是Spring-3.2.0 +Struts-2.3.4+Hibernate-4.1.6的jar包,这些jar包在各官网转载 2013-12-17 17:57:19 · 722 阅读 · 0 评论 -
好记性不如烂笔头-java接口只能声明对象,但不能实例化对象
java接口只能声明对象,但不能实例化对象interface Person { public void fun1();}class Student implements Person { public void fun1() { System.out.println("Studnt Class fun1()"); }}pu原创 2013-12-17 16:23:45 · 1079 阅读 · 2 评论 -
Java 单例模式详解<转>
很好的文章,必须转一下。概念: java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。 单例模式有一下特点: 1、单例类只能有一个实例。 2、单例类必须自己自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,转载 2013-12-17 17:18:01 · 551 阅读 · 0 评论 -
java对redis的基本操作<转>
一、server端安装 1、下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6 下载windows平台文件: 解压后,选择当前64位win7系统对应的版本: 2、安装 1)解转载 2014-08-06 18:42:18 · 546 阅读 · 0 评论 -
Ehcache详细解读<转>
原文引自:Ehcache 是现在最流行的纯Java开源缓存框架,配置简单、结构清晰、功能强大,最初知道它,是从Hibernate的缓存开始的。网上中文的EhCache材料以简单介绍和配置方法居多,如果你有这方面的问题,请自行google;对于API,官网上介绍已经非常清楚,请参见官网;但是很少见到特性说明和对实现原理的分析,因此在这篇文章里面,我会详细介绍和分析Eh转载 2014-08-08 18:53:22 · 577 阅读 · 0 评论 -
JVM调优总结 -Xms -Xmx -Xmn -Xss<转>
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms355转载 2015-01-17 17:18:34 · 457 阅读 · 0 评论 -
JVM的垃圾回收与内存分配<转>
Java是一种内存动态分配和垃圾回收技术的一种语言,不需要显示的进行对象内存的分配,这一切操作都是由JVM来完成的,由于Java是“一切皆对象”的,所以对于内存分配的优化与速度非常的高效。在Java中一个对象在堆中的分配以及灭亡都是由JVM来完成的。JVM负责来垃圾回收与对象分配。一 垃圾回收 垃圾回收(Garbage Collection,GC),研究这个主要目的就是为了转载 2015-01-16 18:14:29 · 528 阅读 · 0 评论 -
Java版本bloom filter<转>
属于转贴一、 Bloom-Filter算法简介。 Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中,其优点是空间效率和查询时间都远远超过其他算法,其不足在于Bloom- Filter存在着误判。 二、 Bloom-Filter的基本思想。 Bloom-Filter算法的核心思想就是利用多个转载 2014-12-26 15:55:57 · 604 阅读 · 0 评论 -
JDK中的 javac / java / jar 命令<转>
测试项目test结构:Test.java:12345678910package cn.pxl;import en.B;public class Test{ public static void main(String转载 2015-01-27 17:02:28 · 625 阅读 · 0 评论 -
非线程安全的HashMap 和 线程安全的ConcurrentHashMap<转>
在平时开发中,我们经常采用HashMap来作为本地缓存的一种实现方式,将一些如系统变量等数据量比较少的参数保存在HashMap中,并将其作 为单例类的一个属性。在系统运行中,使用到这些缓存数据,都可以直接从该单例中获取该属性集合。但是,最近发现,HashMap并不是线程安全的,如果你 的单例类没有做代码同步或对象锁的控制,就可能出现异常。首先看下在多线程的访问下,非现场安全的HashM转载 2014-10-21 09:51:20 · 532 阅读 · 0 评论 -
JAVA获取时间戳,哪个更快<转>
目前获取毫秒值大概有下面三种方法 Java代码 //方法 一 System.currentTimeMillis(); //方法 二 Calendar.getInstance().getTimeInMillis(); //方法 三 new Date().getTime(); 最近做监控系统,发现代码中有前两种方法,转载 2014-10-21 14:56:10 · 873 阅读 · 0 评论 -
Java中文转码的例子<转>
public class HelloWorld{ public static void main(String[] argv){ try{ System.out.println("中文");//1 System.out.println("中文".getBytes());//2 System.out.pr转载 2014-11-04 11:18:10 · 646 阅读 · 0 评论 -
深入理解WeakHashmap<转>
WeakHashmap(一) 查看API文档,WeakHashmap要点如下:1. 以弱键 实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。丢弃某个键时,其条目从映射中有效地移除2. WeakHashMa转载 2014-11-11 17:05:57 · 565 阅读 · 0 评论 -
JVM调优总结 -Xms -Xmx -Xmn -Xss<转>
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms355转载 2014-11-11 16:05:38 · 540 阅读 · 0 评论 -
hive_正则表达式|JAVA的正则表达式案例详解<转>
如果你曾经用过Perl或任何其他内建正则表达式支持的语言,你一定知道用正则表达式处理文本和匹配模式是多么简单。如果你不熟悉这个术语,那么“正则表达式”(Regular Expression)就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式。许多语言,包括Perl、PHP、Python、JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表转载 2014-08-11 11:26:46 · 987 阅读 · 0 评论 -
java反射机制详解<转>
本篇文章依旧采用小例子来说明,因为我始终觉的,案例驱动是最好的,要不然只看理论的话,看了也不懂,不过建议大家在看完文章之后,在回过头去看看理论,会有更好的理解。下面开始正文。【案例1】通过一个对象获得完整的包名和类名123456789101112131415package Reflect;转载 2014-08-07 21:19:57 · 467 阅读 · 0 评论 -
接口与多重继承<转>
在很多时候,常会听别人说,接口(interface)可以达到多重继承的效果,这是怎么回事?其实要讨论这个问题,首先您对于C++中多重继承要先有认识,新手看了书说接口可以达到多重继承,切莫人云亦云,尤其是没有学过C++的新手们,如果您对于C++多重继承想要有所认识,请先看看 多重继承(一)与 多重继承(二)。 Java不能多重继承,但为何说Java中可以使用接口(interface)来达转载 2013-12-17 16:15:27 · 700 阅读 · 0 评论 -
Eclipse上GIT插件EGIT使用手册<转>
一_安装EGIT插件 http://download.eclipse.org/egit/updates/或者使用Eclipse Marketplace,搜索EGit二_使用EGIT前的配置配置个人信息,最重要的是user.name和user.emaill Prefe转载 2013-12-02 13:54:33 · 596 阅读 · 0 评论 -
好记性不如烂笔头-手动编译jar包<转>
如果想用java编写一个可视化小程序,碰巧手头没有IDE的话,可以用命令行来完成编译、打包等工作。拿自己编写的“java记事本”为例,介绍一下这个过程:1.编写源代码。编写源文件:NotePad.java并保存,例如:E:\myApp\NotePad.java。程序结构如下:package test;import java.awt.*;import javax.sw转载 2013-11-28 17:10:36 · 895 阅读 · 0 评论 -
java的Arrays类的应用<转>
java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的。具有以下功能:² 给数组赋值:通过fill方法。² 对数组排序:通过sort方法,按升序。² 比较数组:通过equals方法比较数组中元素值是否相等。² 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。 import java.转载 2013-10-16 17:12:46 · 775 阅读 · 0 评论 -
Java守护线程实例
源自JDK1.6setDaemonpublic final void setDaemon(boolean on)将该线程标记为守护线程或用户线程。当正在运行的线程都是守护线程时,Java 虚拟机退出。该方法必须在启动线程前调用。 该方法首先调用该线程的 checkAccess 方法,且不带任何参数。这可能抛出 SecurityException(在当前线程中)。原创 2013-11-21 15:18:31 · 1152 阅读 · 0 评论 -
Java多线程实例<转>
在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口。对于直接继承Thread的类来说,代码大致框架是:?123456789101112class 类名 extendsThread{方法1;方法2;…public void run转载 2013-11-21 13:59:43 · 700 阅读 · 0 评论 -
HashMap和HashTable的区别2
接上一篇帖子,hashmap和hashtable主要的三方面不同如下:1.历史遗留原因,包含的方法不同,hashMap去掉了HashTable 的contains方法,但是加上了containsValue()和containsKey()方法,是操作上更加的方便。2.在多线程访问中,hashTable同步的,而HashMap是非同步的,效率上比hashTable要高。3.是否支持空键值,ha原创 2013-08-15 15:32:09 · 579 阅读 · 0 评论 -
<JAVA>字符串中包含空格的字符串解析
今天调试一个MR程序,发现数量对不上,找了半天,发现我解析字符串是用空格解析的,将字符串用split(" ")解析然后赋值给字符串数组,但后来发现这个方法行不通,因为有些字符串是包含空格的,如String aa="a b\"c d\" e f g"; 用split解析的结果是:ab"cd"efg所以自己写了一个解析字符串的函数如下:public static原创 2013-09-04 18:05:50 · 1755 阅读 · 0 评论 -
<JAVA>手动触发StackOverflowError异常
再来一例程序,手动触发StackOverflowError异常:如下:public class JavaVMStackSOF { private int stackLength = 1; public void stackLeak() { stackLength++; stackLeak原创 2013-09-24 15:51:42 · 1532 阅读 · 0 评论 -
<JAVA>虚拟机的垃圾标记及清理算法
汇总一下,总结如下:判断一个对象是活还是死的算法大概分为两种:1. 引用计数方法引用计数方法比较简单,对于每一个对象,有一个引用,就将计数器加1,取消一次引用,就将引用计数减1,如果一个对象的计数器是0,则该对象没有被引用,则可以清理掉。但是这种算法,有一个缺点,就是对循环引用没有办法处理,也就是如果两个对象相互引用,则这两个对象永远都不会被清除。2. 跟搜索算法跟搜索算法原创 2013-09-24 18:10:14 · 757 阅读 · 0 评论 -
Java动态代理学习笔记<转>
没事的时候翻看lang.reflect包下的代码,发现有两部分内容:涉及反射和动态代理。 很多地方都可以看到动态代理的影子,只是一直没仔细看下。 在学习之前,先提出几个问题,带着问题来看代码: 1.什么是动态代理? 2.为什么使用动态代理? 3.使用它有哪些好处? 4.哪些地方需要动态代理? --------------------分隔线----------转载 2013-11-18 21:00:05 · 682 阅读 · 0 评论 -
Java NIO原理图文分析及代码实现<转>
前言: 最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。可以参考:http://baike.baidu.com/view/32726.htm )机制时,发现hadoop的RPC机制的实现主要用到了两个技术:动态代理(动态代理可以参考博客:http:/转载 2013-11-19 10:05:17 · 679 阅读 · 0 评论 -
<JAVA>手动触发OutOfMemoryError异常
今天手动触发了一个内存堆溢出异常,感觉不错,嘿嘿~~程序如下:package com.test;import java.util.ArrayList;import java.util.List;public class HeapOOM {static class OOM {}public static void main(String[] args)原创 2013-09-24 15:31:50 · 1327 阅读 · 0 评论 -
JVM学习之两种异常StackOverflowError和OutOfMemoryError产生的原因
今天学习了一下JVM原理的前两章,后续还会继续学习。StackOverflowError产生的原因是如果是线程请求的栈深度大于虚拟机所允许的深度,则抛出这个异常。OutOfMemoryError产生的原因是当扩展时无法申请到足够的内存时抛出次异常,OOM异常也是比较常见的异常之一。原创 2013-09-23 18:13:06 · 1276 阅读 · 0 评论 -
Java Ant build.xml详解<转>
1,什么是antant是构建工具2,什么是构建概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个3,ant的好处跨平台 --因为ant是使用java实现的,所以它跨平台使用简单--与ant的兄弟make比起来语法清晰--同样是和make相比功能强大--ant能做的事情很多,可能你用了很久,你仍然转载 2013-11-28 15:59:40 · 540 阅读 · 0 评论