
java
文章平均质量分 70
mydreamongo
这个作者很懒,什么都没留下…
展开
-
java程序操作系统剪贴板
以下共有4个函数分别是: 1.从剪切板获得文字。 2.将字符串复制到剪切板。 3.从剪切板获得图片。 4.复制图片到剪切板。转载 2014-06-29 19:03:44 · 714 阅读 · 0 评论 -
java内存回收相关
1、JVM的内存空间分为:程序计数器,方法区,虚拟机栈,本地方法栈,java堆。2、程序计数器很小,用来记录下一条要执行的指令3、java虚拟机规范允许java栈的大小是动态的或者是固定的,如果线程执行过程中,请求的栈深度大于最大可用的栈深度,则抛出StackOverFlow;如果可以支持动态扩展而在扩展过程中内存不足,则Outofmemory异常。可以通过参数-Xss来设定栈的大小4原创 2013-05-13 10:36:48 · 809 阅读 · 0 评论 -
java内部类相关
内部类成员可以直接访问外部类的私有数据,但外部类不能访问内部类的实现细节,例如内部类的成员变量外部类的静态方法、静态代码块不能访问非静态内部类,包括不能使用非静态内部类定义变量、创建实例等java不允许在非静态内部类里定义静态成员静态内部类不能访问外部类的实例成员,只能访问外部类的类成员不要在外部类的静态成员中使用非静态内部类如果希望在外部类以外的地方访问内部类,则内部类不能使原创 2013-05-07 22:12:19 · 611 阅读 · 0 评论 -
接口和抽象类异同
相同点:1、都不能被实例化,它们都位于继承树的顶端,用于被其他类实现和继承2、都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法不同点:接口抽象类作为系统与外界交互的窗口,体现的是一种规范作为系统中多个子类共同的父类,体现的是一种模版设计只能包含抽象方法可以包含普通原创 2013-05-07 21:26:42 · 635 阅读 · 0 评论 -
jedis源码中ShardedJedis实现sharding
1、一个JedisShardInfo类,里面包含了jedis服务器的一些信息,比如private int timeout; private String host; private int port; private String password = null; private String name = null;最重要的是它的父类中有一个weight字段,原创 2013-05-20 19:43:33 · 16559 阅读 · 0 评论 -
java中==相关的问题
如果进行比较的两个操作数都是数值类型,即使它们的数据类型不相同,只要它们的值相等,也都将返回true。例如97=='a'返回true,5.0==5也返回true。如果两个操作数都是引用类型,那么只有两个引用变量指向同一个对象才会返回true。对于Integer类型而言:如果Integer ina=2;Integer inb=2;则ina==inb的结果为true;如果Integ原创 2013-04-16 11:05:33 · 671 阅读 · 0 评论 -
Hibernate3.x调用存储过程
Hibernate3.x调用存储过程原文出处:http://tech.it168.com/j/d/2007-05-14/200705141007843.shtml说明:该文不得转载摘要:本文以详尽的实例展示了hibernate3.x中调用存储过程各步骤,从建立测试表、存储过程的建立、工程的建立以及类的编写和测试一步一步引导用户学习hibernate3.x中调用存储过程的方法.转载 2013-04-16 19:35:06 · 704 阅读 · 0 评论 -
三种洗牌算法
import java.util.Random;public class Shuffle { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int[] arr = new int[54]; int i; for(i原创 2013-04-15 11:09:36 · 626 阅读 · 0 评论 -
equals和hashCode解析
覆盖equals时需要遵守的通用约定: 覆盖equals方法看起来似乎很简单,但是如果覆盖不当会导致错误,并且后果相当严重。《Effective Java》一书中提到“最容易避免这类问题的办法就是不覆盖equals方法”,这句话貌似很搞笑,其实想想也不无道理,其实在这种情况下,类的每个实例都只与它自身相等。如果满足了以下任何一个条件,这就正是所期望的结果: 类的每个实例本质上都是唯转载 2013-04-15 20:22:43 · 750 阅读 · 0 评论 -
java参数传递
java里面,String,Integer等包装类在方法调用的时候采用的是与基本类型相同的值传递的方式,即在被调用方法中不会改变变量原有的值.而数组在传递的时候传递的是地址,会改变掉数组中原有的值。原创 2013-04-14 22:43:02 · 546 阅读 · 0 评论 -
HashMap的实现原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本转载 2013-05-22 15:28:31 · 1220 阅读 · 0 评论 -
HashMap为什么是线程不安全的?
一直以来只是知道HashMap是线程不安全的,但是到底HashMap为什么线程不安全,多线程并发的时候在什么情况下可能出现问题?HashMap底层是一个Entry数组,当发生hash冲突的时候,hashmap是采用链表的方式来解决的,在对应的数组位置存放链表的头结点。对链表而言,新加入的节点会从头结点加入。javadoc中关于hashmap的一段描述如下:此实现不是同步的。如果多个原创 2013-05-22 16:22:13 · 79034 阅读 · 10 评论 -
java获取目录路径,
1、System.out.println(System.getProperty("user.dir"));输出:E:\Program Files\myeclipse10\workplace\Test ,即项目路径2、System.out.println(System.getProperty("java.class.path"));输出:E:\Program Files\myeclips原创 2013-05-23 19:23:22 · 1204 阅读 · 0 评论 -
java ClassNotFoundException and NoClassDefFoundError 的区别
很多时候我们经常会遇到这两个错误或异常,虽然他们都和classpath的设置有关,但是他们是不相同的。1:ClassNotFoundException的出现是因为当我们在运行期间通过Class.forName() orClassLoader.loadClass() or ClassLoader.findSystemClass() 等方法动态加载类的时候,在jvm中找不到对应的类,所以就会出转载 2013-10-12 15:43:15 · 863 阅读 · 0 评论 -
求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)
public static void main(String[] args) { int sum=add(50); System.out.println(sum);}public static int add(int n){ int num=0; Boolean flag=(n>0)&&((num=n+add(n-1))<0); return num;}用了短路运算符。。java够原创 2013-06-25 21:06:44 · 1561 阅读 · 0 评论 -
Ubuntu 11.04 下安装配置 JDK 7
转载自:http://blog.youkuaiyun.com/yang_hui1986527/article/details/6677450第一步:下载jdk-7-linux-i586.tar.gz[plain] view plaincopywget -c http://download.oracle.com/otn-pub/java/jdk/7/j转载 2013-06-24 21:42:43 · 555 阅读 · 0 评论 -
concurrenthashmap相关的一些东西
首先,concurrenthashmap是线程安全的,通过把整个map划分为不同的segment来减少在读操作的时候加锁,从而提高并发度1、concurrenthashmap底层是一个segment数组,每个segment底层又是一个hashEntry数组,segment继承了reentrantlock类来实现锁操作2、concurrenthashmap的并发度concurrentleve原创 2013-06-20 17:33:36 · 1047 阅读 · 0 评论 -
java synchronized详解
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个synch转载 2013-05-29 16:35:08 · 678 阅读 · 0 评论 -
Cannot refer to a non-final variable mylis inside an inner class defined in a different method
今天测试jedis的发布订阅模式的时候偶然碰到这样的问题,匿名内部类不能引用外部类中非final类型的变量。查了下看到有人说原因如下:局部匿名类在源代码编译后也是要生成对应的class文件的(一般会是A$1.class这种形式的文件),那么这个二进制文件是独立于其外围类(A.class)的,就是说它无法知道A类中方法的变量。但是A$1.class又确实要访问A类对应方法的局部变量的原创 2013-05-28 09:51:29 · 7298 阅读 · 5 评论 -
ConcurrentHashMap性能测试
1、先测了一下多线程条件下hashmap,结果果然是不行啊,cpu在100%左右浮动,永远也执行不完put和get操作。2、在能大概估计hashmap所要容纳的键值数量的情况下,可以直接用构造函数生成一定大小的map,这样避免在扩容的过程中不断的rehash成本。3、具体代码见最后:i表示提交的线程数量,m表示每个线程执行的put和get次数。1)如果只用单线程运行,线程内容修改如下:原创 2013-05-13 17:05:47 · 2901 阅读 · 0 评论 -
定制线程池的大小
线程池合理的长度取决于将要提交的任务类型和所部署系统的特征。很少有人会把线程池的长度硬编码;池的长度应该由某种配置机制来提供,或者利用Runtime.availableProcessors的结果,动态的进行计算。 如果一个线程池过大,那么线程对稀缺的CPU和内存资源的竞争会导致内存的高使用量,还可能耗尽资源。如果过小,由于存在很多可用的处理器资源却未在工作,会对吞吐量造成损失。原创 2013-05-13 17:07:14 · 1209 阅读 · 0 评论 -
HashMap作为缓存时的性能优化及与redis,EhCache等的应用比较
系统中在用hashmap作为缓存,所以不得不考虑一些因素:多线程并发,最大容量,性能,以及与redis,EhCache等的优劣比较1、容量的问题:源码中,HashMap的最大容量为12、多线程并发的问题HashMap本身不是线程安全的,因此不能用于多线程并发,因为多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,但是java中提供了一个Con原创 2013-05-12 20:52:57 · 12770 阅读 · 0 评论 -
sql server中datetime类型通过Hibernate与java的映射关系
sqlserver中的datetime类型对应问题,数据库数据如下:name time5555 2000-03-30 10:07:10.01066666 2000-03-20 10:07:10.100Model类字段映射文件结果 Model类字段映射原创 2013-04-12 10:25:13 · 3091 阅读 · 0 评论 -
解密Redis持久化
本文内容来源于Redis作者博文,Redis作者说,他看到的所有针对Redis的讨论中,对Redis持久化的误解是最大的,于是他写了一篇长文来对Redis的持久化进行了系统性的论述。文章非常长,也很值得一看,NoSQLFan将主要内容简述成本文。什么是持久化,简单来讲就是将数据放到断电后数据不会丢失的设备中。也就是我们通常理解的硬盘上。写操作的流程首先我们来看一下数据库在进转载 2013-04-11 14:42:17 · 663 阅读 · 0 评论 -
activemq入门示例
1.JMS介绍 JMS源于企业应用对于消息中间件的需求,使应用程序可以通过消息进行异步处理而互不影响。Sun公司和它的合作伙伴设计的JMS API定义了一组公共的应用程序接口和相应语法,使得Java程序能够和其他消息组件进行通信。JMS有四个组成部分:JMS服务提供者、消息管理对象、消息的生产者消费者和消息本身。 1)JMS服务提供者实现消息队列和通知,同时实现消息管理的API。J转载 2013-04-10 08:52:49 · 797 阅读 · 0 评论 -
JAVA调用EXE/BAT程序
1 .调用exe文件 1.1 使用Runtime类。 try { Runtime rt = Runtime.getRuntime(); rt.exec("C:\\WINDOWS\\NOTEPAD.exe"); } catch (Throwable t){ System.out.print(t.getMessage(转载 2012-11-27 16:15:32 · 850 阅读 · 0 评论 -
ThreadLocal 类用法讲解
首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。 另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每个线程中的new 对象 的操作转载 2012-11-27 15:59:11 · 963 阅读 · 0 评论 -
java网络异常类型
1、EOFException 抛出此类异常,表示连接丢失,也就是说网络连接的另一端非正常关闭连接(可能是主机断电、网线出现故障等导致) 2、ConnectException:connection refused connect. 抛出此类异常,表示无法连接,也就是说当前主机不存在 3、SocketException:socket转载 2012-11-27 16:29:12 · 2093 阅读 · 0 评论 -
java 使用properties文件配置动态信息
Java Properties 类读取配置文件信息在平时写程序的时候,有些参数是经常改变的,而这种改变不是我们预知的。java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式,在properties文件中可以 用"#"来作注释,properties文件在Java编程中用到的地方很多,操作很方便。转载 2012-11-10 09:41:24 · 5688 阅读 · 0 评论 -
java计算时间差
现在是2004-03-26 13:31:40过去是:2004-01-02 11:30:24要获得两个日期差,差的形式为:XX天XX小时XX分XX秒方法一:[java] view plaincopyDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");转载 2012-11-09 21:13:45 · 1128 阅读 · 0 评论 -
path与classpath区别
1.path的作用 path是系统用来指定可执行文件的完整路径,即使不在path中设置JDK的路径也可执行JAVA文件,但必须把完整的路径写出来,如C:\Program Files\Java\jdk1.6.0_10\bin\javac TheClass.java。path是用来搜索所执行的可执行文件路径的,如果执行的可执行文件不在当前目录下,那就会依次搜索path中设置的路径;而ja转载 2012-11-06 22:31:47 · 37430 阅读 · 4 评论 -
win7下安装IIS7
在Windows 7下如何安装IIS7,以及IIS7在安装过程中的一些需要注意的设置,以及在IIS7下配置ASP的正确方法。在Windows 7下面IIS7的安装方法:一、进入Windows 7的 控制面板,选择左侧的打开或关闭Windows功能 。二、打开后可以看到Windows功能的界面,注意选择的项目,我们按需要选择想要的功能,下面这张图片把需要安装的服务都已经选转载 2012-11-04 00:02:15 · 3515 阅读 · 0 评论 -
java filereader读取文件
package com.yourcompany.struts;import java.io.BufferedReader;import java.io.FileReader;public class Stream { /** * @param args */ public static void main(String[] args) { // TODO Auto-原创 2012-04-06 19:16:18 · 1549 阅读 · 0 评论 -
java poi读取word、excel文档
从apache下载poi压缩包后将jar文件都导入。。。读取wordpackage com.yourcompany.struts;import java.io.*;import org.apache.poi.hwpf.*;import org.apache.poi.hwpf.extractor.WordExtractor;public class Word03Test { /**原创 2012-04-06 19:14:14 · 1961 阅读 · 0 评论 -
java实现zip压缩
package org;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.zip.ZipEntry;import java.util.zip.ZipInputStream;import java.util.zip.ZipOutputSt转载 2012-11-16 08:54:26 · 634 阅读 · 0 评论 -
通过Java HTTP连接将网络图片下载到本地
package imageView;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;/**转载 2012-11-16 09:06:19 · 3849 阅读 · 0 评论 -
java socket保持长连接
ServerSocket serverSocket=new ServerSocket(1111);Socket socket=serverSocket.accept();while(true){//保持长连接 try { Thread.sleep(100);//等待时间 } catch (InterruptedException e1) {原创 2012-11-17 17:32:42 · 39621 阅读 · 0 评论 -
RMI网络编程 重启server端程序,client端无法连接
当然,你也许跟我一样,碰到以下RefuseConnection的问题:java.rmi.ConnectException: Connection refused to host: 146.222.94.55; nested exception is:这个在我重启server端的程序以后,client端执行远程访问时产生的。排查原因:1. 有可能是client端对访问转载 2013-03-28 20:07:37 · 1579 阅读 · 0 评论 -
RMI网络编程开发
注意该标题是 “进程”间通信,而并非“线程“之间的通信。线程之间的通信是多线程的讨论范畴。这里我们是要讨论分布式的独立的JAVA程序之间是怎么通信的。当然,大家都会先想到SOCKET。对的,SOCKET在网络编程中是不可以被忽略的。socket是两台主机之间的一个连接,而JAVA中的SOCKET类为不同主机之间的连接提供了功能封装。所以,SOCKET是进程间通信的一种常用方法。转载 2013-03-28 20:01:37 · 772 阅读 · 0 评论 -
java中Object数组不能直接转为对应类型的类数组
大晚上的报这么个错,搞了半天Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [LApple;at ArrayTrans.main(ArrayTrans.java:27)原来java是不可以将object数组直接转化为对应类型的数组的。原创 2013-03-11 21:14:36 · 15585 阅读 · 2 评论