
java
wangshfa
这个作者很懒,什么都没留下…
展开
-
对几个通用的Java hashCode重写方案的一些思考和探讨
在我们刚开始学习Java的时候就被教导,在编写类的时候,如果覆盖了Object的equals方法,那么必须要覆盖hashCode方法,并且如果两个对象用equals方法比较返回true,那么这两个对象hashCode返回的值也必须是相等的,并且对于同一个对象,equals方法需要比较的属性值没有被修改,那么每次调用hashCode返回的值应该是一致的。hashCode主要是用于散列集合,通转载 2015-06-02 14:08:21 · 711 阅读 · 0 评论 -
synchronized与static synchronized 的区别
1.synchronized与static synchronized 的区别 synchronized是对类的当前实例进行加锁,防止其他线程同时访问该类的该实例的所有synchronized块,注意这里是“类的当前实例”, 类的两个不同实例就没有这种约束了。那么static synchronized恰好就是要控制类的所有实例的访问了,static synchronized是限制线程同转载 2013-08-07 14:14:40 · 625 阅读 · 0 评论 -
java synchronized详解
记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一转载 2013-08-06 22:58:44 · 571 阅读 · 0 评论 -
java 泛型详解
普通泛型Java代码 class Point{ // 此处可以随便写标识符号,T是type的简称 private T var ; // var的类型由T指定,即:由外部指定 public T getVar(){ // 返回值的类型由外部决定 return var ; } pu转载 2013-08-04 22:43:04 · 663 阅读 · 0 评论 -
JAVA泛型总结
泛型是JDK1.5的新东西,总结了一下,以后备忘,泛型也叫generics,泛型分泛型方法和泛型类,两种定义方式,泛型还有上界下界的说法,先看看什么叫泛型方法和泛型类,一下是网上的一个解释,个人觉得已经讲的很清楚了:2、我们将Dao层的类写成范型的形式,有两种写法: 其一、 package com.test; public class EntityDao1 {转载 2013-08-03 00:00:08 · 664 阅读 · 0 评论 -
jdk添加源码(rt.jar,tools.jar,sa-jdi.jar)
背景以前debug jdk源码的时候,一直苦于没有源码,无法更加深入的了解一些机制。 这几天在看文章的时候,看到了两篇文章,让我眼前一亮阿 文章链接:http://www.iteye.com/topic/869992http://hllvm.group.iteye.com/group/topic/24553首先下载jdk 源码,我选的是sun jdk s转载 2013-06-09 16:08:19 · 8370 阅读 · 1 评论 -
sso单点登录的三种实现方式
sso即单点登录(Single Sign On),是目前很流行的站群登录解决方案。随着互联网巨头不断的扩展自己的业务范围,越来越多的应用需要整合在一起,而单点登录的实现更是提高用户黏贴度的一剂强效剂!根据各大网站单点登录系统的的使用情况,如果按照应用来说,可以分为三种情况。而这三种情况又可以根据应用是否分布在多个域名分成两个方面。如果旗下所有的应用都是在一个域名下面,相信也不用多说,大家都转载 2013-04-22 23:50:55 · 3349 阅读 · 0 评论 -
关于对java异步编程的思考。
这段时间的工作,使我意识到异步编程是工作中不可少的技能。异步编程分为两种:JVM内部的异步编程和JVM之间的异步编程。本文主要思考JVM内部的异步(简称为异步任务)。JVM之间的异步可以通过MQ等方式实现。 1、异步任务是什么? 异步任务是由一系列的事件处理器(EventHandler)和Event(事件)组成,EventHandlers之间的通讯通过Event来实现。每一个E转载 2013-01-19 23:55:30 · 706 阅读 · 0 评论 -
sleep和wait有什么区别
第一种解释:功能差不多,都用来进行线程控制,他们最大本质的区别是:sleep()不释放同步锁,wait()释放同步缩. 还有用法的上的不同是:sleep(milliseconds)可以用时间指定来使他自动醒过来,如果时间不到你只能调用interreput()来强行打断;wait()可以用notify()直接唤起.第二种解释:sleep是Thread类的静态方法。转载 2013-01-19 21:05:19 · 348 阅读 · 0 评论 -
yield() sleep() wait() 区别(1)——简说
1.sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是如果有Synchronized同步块,其他线程仍然不同访问共享数据。注意该方法要捕获异常 比如有两个线程同时执行(没有Synchronized),一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只转载 2013-01-19 21:07:48 · 341 阅读 · 0 评论 -
java各种语言之间的转码问题- -
java各种语言之间的转码问题 摘自:http://www.cnblogs.com/wtiancai/archive/2005/10/10/251600.html许多人用 Java 处理到中文数据时,常会出现乱码。关于 Java 和中文兼容性的问题,实在让许多程序员为此伤透脑筋,相关的问题每隔几天就会出现在网络上。为了舒缓您紧蹙的眉头,我特别写了这系列文章,解说 Java 牵涉到转载 2013-01-30 14:53:50 · 3742 阅读 · 0 评论 -
Java RMI之HelloWorld篇
Java RMI之HelloWorld篇 Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。可以用此方法调用的任何对象必须实现该远程接口。 Java RMI不是什么新技术(在Java1.1的时代都有了),但却是是非常重要的底层技转载 2013-01-30 15:46:36 · 427 阅读 · 0 评论 -
封装打折策略
.3.6 策略模式策略模式用于封装系列的算法,这些算法通常被封装在一个被称为Context的类中,客户端程序可以自由选择其中一种算法,或让Context为客户端选择一个最佳的算法——使用策略模式的优势是为了支持算法的自由切换。考虑如下场景:现在我们正在开发一个网上书店,该书店为了更好地促销,经常需要对图书进行打折促销,程序需要考虑各种打折促销的计算方法。为了实现书店现在所提转载 2013-01-09 14:28:42 · 1230 阅读 · 0 评论 -
位操作与权限
1.添加权限使用或判断权限使用与去掉权限用异或 2.2.1为什么常量都是2的幂次,而不是随便的整数:保证一位一权限.方便与或等操作.这是使用位表示权限的前提。2.2很多编程语言中,一组常量值都是以 0,1,2,4,8,16,32,64,比如java.sql.Connection接口中定义的常量值TRANSACTION_NONE....2.3与运算之后移位转载 2014-02-20 22:10:53 · 795 阅读 · 0 评论 -
Java的位操作
当读写二进制文件,或者要把非标准长度的整数与标准长度的整数互相转换时,就要用到大量的位操作,虽然看起来很简单,实际上里面却有很多细节很容易出错。首先,Java有些标准跟C/C++是不同的:1、Java采用高字节在前的方式读写数据,例如要把一个4字节的int数值写入文件时,它是按照从高字节到低字节的顺序写入的,读取的时候也是这样读出来。而C/C++则采用平台相关的方式,在Wind转载 2014-02-20 22:32:18 · 655 阅读 · 0 评论 -
java中遍历Map常用方法 及优缺点总结
How to Iterate Over a Map in Java在java中遍历Map有不少的方法。我们看一下最常用的方法及其优缺点。既然java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等) 方法一 在for-each循环中使用entries来遍历转载 2014-02-24 16:11:53 · 2275 阅读 · 0 评论 -
hashCode与equals的区别与联系
一、equals方法的作用 1、默认情况(没有覆盖equals方法)下equals方法都是调用Object类的equals方法,而Object的equals方法主要用于判断对象的内存地址引用是不是同一个地址(是不是同一个对象)。2 、要是类中覆盖了equals方法,那么就要根据具体的代码来确定equals方法的作用了,覆盖后一般都是通过对象的内容是否相等来判断对象是否相转载 2015-06-02 13:34:36 · 485 阅读 · 0 评论 -
SPI和API
先描述下API(Application Programming Interface )。在java中,我们使用java提供的很多类、类的方法、数据结构来编写我们的应用程序,最终完成我们需求的程序功能,这里的类、方法、数据结构即是jdk提供的api。api的意义,其实就是这些提供给你完成某项功能的类、接口或者方法。 而SPI(Service Provider Interfac转载 2015-04-02 14:56:11 · 594 阅读 · 0 评论 -
原码, 反码, 补码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式转载 2015-04-02 17:15:25 · 663 阅读 · 0 评论 -
使用OpenJDK来查看SunJDK不提供的部分源码
都知道SunJDK(不喜欢叫他OracleJDK)只提供了java和javax下大部分的源码,其他源码想看却无门。我们可以通过OpenJDK来满足我们的私窥欲。 网上有很多OpenJDK的安装方法,但是请记住,我们只是为了看源码,并不是使用它作为开发环境(我还是喜欢用SunJDK来做开发,以免跑到正式环境上有莫名的兼容问题),所以本篇文章不会去介绍如何编译安装OpenJDK的步骤。转载 2015-03-27 14:52:33 · 542 阅读 · 0 评论 -
Java程序员们读什么书决定了对未来职业方向的选择
学习Java最痛苦的事情莫过于对未来职业方向的选择。尤其是选择开发Java Application还是Java Web方向,在你先定好大类后还有数不尽的小类教你无从学起。因此,作为初学者的你必须看完本文。从中你将了解到如何学习Java并选择适合自己的Java。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们转载 2014-08-25 22:01:42 · 732 阅读 · 0 评论 -
几种单例模式 尤其Initialization on demand holder模式
关于单例模式的文章,其实网上早就已经泛滥了。但一个小小的单例,里面却是有着许多的变化。网上的文章大多也是提到了其中的一个或几个点,很少有比较全面且脉络清晰的文章,于是,我便萌生了写这篇文章的念头。企图把这个单例说透,说深入。但愿我不会做的太差。 首先来看一个典型的实现:1 10 public class SingletonOne {11 12 13 private sta转载 2014-05-27 08:26:17 · 744 阅读 · 0 评论 -
ArrayList、LinkedList、 Vector、Map 用法比较
ArrayList和Vector是采用数组方式存储数据,此数组元素总数大于实际存储的数据个数以便增加和插入元素,二者都允许直接序号索引元素,但是插入数据要移动数组元素等内存操作,所以它们索引数据快、插入数据慢。ArrayList数组存储方式:[java] view plaincopyprint?private transient Ob转载 2014-04-27 23:16:59 · 529 阅读 · 0 评论 -
String、StringBuilder、StringBuffer 用法比较
String、StringBuilder、StringBuffer 三个类源自JDK的 java/lang/ 目录下:String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全,JDK 5.0(1.5.0) 后支持)String 简要的说, String 类型和 StringBuffer 类型的转载 2014-04-27 22:39:02 · 568 阅读 · 0 评论 -
?super T 和? extends T区别
Java 泛型关键字说明? 通配符类型 表示类型的上界,表示参数化类型的可能是T 或是 T的子类 表示类型下界(Java Core中叫超类型限定),表示参数化类型是此类型的超类型(父类型),直至Objectextends 示例static class Food{}static class Fruit extends Food{}static class Apple转载 2014-05-06 10:05:43 · 752 阅读 · 0 评论 -
黑马程序员_Java高新技术3(框架,JavaBeans与内省(Introspector)) - 伊秋
1.Java框架(frame)/*通俗例子: 我做房子(框架)卖给用户住,由用户自己安装门窗和空调(用户自定义类/用户自定义其它信息) 用户需要使用我的房子(框架),把符合框架中结构的门窗插入进我提供的框架中.框架与工具类区别: 框架调用用户提供的类 工具类被用户的类调用示例: 利用反射运行指定的某个类中的main方法, 通过arg转载 2014-05-05 16:19:36 · 2245 阅读 · 0 评论 -
Java中== equals hashcode浅析:
1. '=='是用来比较两个变量(基本类型和对象类型)的值是否相等的, 如果两个变量是基本类型的,那很容易,直接比较值就可以了。如果两个变量是对象类型的,那么它还是比较值,只是它比较的是这两个对象在栈中的引用(即地址)。对象是放在堆中的,栈中存放的是对象的引用(地址)。由此可见'=='是对栈中的值进行比较的。如果要比较堆中对象的内容是否相同,那么就要重写equals方法了。 2. Obje转载 2014-05-03 15:30:13 · 503 阅读 · 0 评论 -
ArrayList、LinkedList、 Vector、Map 用法比较
ArrayList和Vector是采用数组方式存储数据,此数组元素总数大于实际存储的数据个数以便增加和插入元素,二者都允许直接序号索引元素,但是插入数据要移动数组元素等内存操作,所以它们索引数据快、插入数据慢。ArrayList数组存储方式:[java] view plaincopyprint?private transient Ob转载 2014-05-03 12:31:46 · 512 阅读 · 0 评论 -
Java反射,根据类名创建带参数的实例
//根据类名获取Class对象 Class c=Class.forName("java.lang.Integer"); //参数类型数组 Class[] parameterTypes={String.class}; //根据参数类型获取相应的构造函数 java.lang.reflect.Constructor constructor=c.getConstructor(p转载 2013-01-09 15:56:06 · 1121 阅读 · 0 评论 -
普通JAVA获取WEB项目下的WEB-INF目录
JAVA Web项目获取物理根目录绝对路径 Java代码 package com.path; import java.io.UnsupportedEncodingException; import java.net.URL; import java.net.URLDecoder; /** * 普通JAVA获取 WEB转载 2012-12-21 16:16:39 · 2372 阅读 · 0 评论 -
java 传址或传值
java是传值还是传址,这个问题已经讨论了很久了,有些人说是传值的,有些人说要看情况,有些情况是传值,有些情况是传址。到底是传值还是传址呢?我们暂时先把传址理解为C++的传指针一样.....先看下面一段程序:[java] view plaincopyprint?package luojing; public class St转载 2012-12-21 11:00:47 · 445 阅读 · 0 评论 -
javaservlet上传文件包括照片
package com.liangxiao.servlet;import java.io.File;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import ja转载 2012-11-18 21:03:03 · 778 阅读 · 2 评论 -
怎么配置java环境
Java的环境变量配置:(两种方法任选一种皆可)方法一:依次点击:“我的电脑”-(右键)“属性”-“高级”-“环境变量”,弹出Windows的“环境变量”配置卡。在“系统变量”栏下执行三项操作:①新建“Classpath”(如果已有,则直接编辑),设置其值为 .;JDK所在的绝对路径值\lib (例如 .;D:\Program Files\Java\jdk1.5.0_0转载 2012-12-03 09:33:10 · 414 阅读 · 0 评论 -
Java动态调用方法
原文:http://lws0402.iteye.com/blog/675775Java代码 public void function(String str) { / /根据 str的值 调用相应的方法 } public void test() { / /code转载 2012-11-13 17:00:44 · 3500 阅读 · 0 评论 -
总结Java标准类库中类型相互转化的方法
组一: ☆ String → byte[] (字符串 转 字节数组) java.lang.String ·byte[] getBytes() 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 ·byte[] getBytes(Charset charset) 使用给定的 ch转载 2012-10-25 13:36:10 · 552 阅读 · 0 评论 -
正则表达式(一):纠结的转义
作者 余晟 发布于 2011年1月21日领域 架构 & 设计, 语言 & 开发 主题 Ruby , Java , 动态语言 , .NET , 正则表达式 , 技术 , 专栏分享到 【编者按】正则表达式一直是开发者工具箱中趁手的利器,但很多人对此仍是一知半解。这次InfoQ中文站有幸邀请到来转载 2012-11-03 13:04:38 · 490 阅读 · 0 评论 -
Java 单例模式详解
概念: java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。 单例模式有一下特点: 1、单例类只能有一个实例。 2、单例类必须自己自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、转载 2012-10-24 15:28:15 · 513 阅读 · 0 评论 -
20个开发人员非常有用的Java功能代码(1)
本文将为大家介绍20人员非常有用的Java功能代码。这20段代码,可以成为大家在今后的开发过程中,Java编程手册的重要部分。AD: 51CTO云计算架构师峰会 抢票进行中!1. 把Strings转换成int和把int转换成StringString a = String.valueOf(2); //integer to nu转载 2012-10-24 13:18:07 · 650 阅读 · 0 评论 -
Java中静态数组与动态数组
我们学习的数组都是静态数组,不过在Java的实际应用中,更多的也会用到动态数组。本文将为大家介绍Java中静态数组与动态数组。AD: 51CTO云计算架构师峰会 抢票进行中!我们学习的数组都是静态数组,其实在很多的时候,静态数组根本不能满足我们编程的实际需要,比方说我需要在程序运行过程中动态的向数组中添加数据,这时我们的静态数组大小是固定的,显然就不能添加数转载 2012-10-24 13:23:10 · 1370 阅读 · 0 评论 -
20个开发人员非常有用的Java功能代码(2)
本文将为大家介绍20人员非常有用的Java功能代码。这20段代码,可以成为大家在今后的开发过程中,Java编程手册的重要部分。AD: 51CTO云计算架构师峰会 抢票进行中!11. 在Java上的HTTP代理设置System.getProperties().put("http.proxyHost", "someProxyURL")转载 2012-10-24 13:19:03 · 927 阅读 · 0 评论