java
文章平均质量分 92
booooooooooooooooooo
这个作者很懒,什么都没留下…
展开
-
java产生随机数的几种方式
转载自:http://www.blogjava.net/cool2009/archive/2009/03/15/259882.html一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有。 二.在java.util这个包里面提转载 2012-11-28 11:55:35 · 582 阅读 · 0 评论 -
将java的console日志写入文件
FileOutputStream bos = new FileOutputStream("output.txt"); System.setOut(new PrintStream(bos)); System.out.println("output to output.txt");这样,console的输出全部写入文件output.txt,但是控制台不会有输出信息。如果希望转载 2014-05-18 12:36:20 · 3564 阅读 · 0 评论 -
java类加载器
Java虚拟机中可以安装多个类加载器,系统默认主要有三个类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader,AppClassLoader。当然也可以自定义类加载器,自定义的加载器必须继承ClassLoader。类加载器也是Java类,因为其它Java类的类加载器本身也要被类加载器加载,显然必须有第一个类加载器不是java类,这个就是BootStrap。B转载 2013-06-30 23:59:54 · 865 阅读 · 0 评论 -
java取得泛型的参数类型(Gson通过借助TypeToken获取泛型参数的类型的方法)
最近在使用Google的Gson包进行Json和Java对象之间的转化,对于包含泛型的类的序列化和反序列化Gson也提供了很好的支持,感觉有点意思,就花时间研究了一下。由于Java泛型的实现机制,使用了泛型的代码在运行期间相关的泛型参数的类型会被擦除,我们无法在运行期间获知泛型参数的具体类型(所有的泛型类型在运行时都是Object类型)。但是有的时候,我们确实需要获知泛型参数的类型转载 2014-06-08 20:26:34 · 1418 阅读 · 0 评论 -
java高cpu的排查方法
解决过程:1,根据top命令,发现PID为2633的Java进程占用CPU高达300%,出现故障。2,找到该进程后,如何定位具体线程或代码呢,首先显示线程列表,并按照CPU占用高的线程排序:[root@localhost logs]# ps -mp 2633 -o THREAD,tid,time | sort -rn显示结果如下:USER %CPU PRI SC转载 2014-06-23 10:38:21 · 779 阅读 · 0 评论 -
Java8 Stream
JDK8不久前正式发布了,这一次更新为我们带来了相当多的东西,其中一个非常庞大也是非常复杂的框架Stream,特别值得一提,他可以将一些让人烦躁的事情变得简洁,好,进入正题。 现在需要除去一个无序数组中大于800的数 传统方法:Java代码 for(int i = 0; i if(list.get(i) > 800) {转载 2014-07-31 12:27:22 · 836 阅读 · 0 评论 -
深入理解Java:SimpleDateFormat安全的时间格式化
想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题。下面我们通过一转载 2014-10-20 13:48:59 · 682 阅读 · 0 评论 -
Web项目乱码的原因
Charset编码基础 Charset全称Character Encoding或字符集编码。Charset是将字符(characters)转换成字节(bytes)或者将字节转换成字符的算法。Java内部采用unicode来表示一个字符。将unicode字符转换成字节的过程,称为“编码”;将字节恢复成unicode字符的过程,称为“解码”。浏览器发送给WEB应用的request参原创 2014-11-29 15:07:43 · 857 阅读 · 0 评论 -
Spring与JMX集成
ref:http://blog.csdn.net/shirdrn/article/details/6358688Spring与JMX集成,实现方式灵活而且简单,主要体现在:1、可以自动探测实现MBean接口的MBean对象,而且可以将一个普通的Spring Bean注册为MBean;2、定制管理MBean的接口,根据需要暴露特定管理MBean的操作;3、使用注解定义转载 2014-12-29 22:55:59 · 616 阅读 · 0 评论 -
java中时区的时令问题
线上出一个特别神奇的bug原创 2014-09-20 01:51:01 · 1291 阅读 · 0 评论 -
一次使用Eclipse MAT分析java内存溢出
本来要写一篇文章,发现该博主的内容太好了,就直接黏贴过来了。前言在平时开发、测试过程中、甚至是生产环境中,有时会遇到OutOfMemoryError,Java堆溢出了,这表明程序有严重的问题。我们需要找造成OutOfMemoryError原因。一般有两种情况:1、内存泄露,对象已经死了,无法通过垃圾收集器进行自动回收,通过找出泄露的代码位置和原因,才好确定解决方案;转载 2015-03-29 15:33:35 · 968 阅读 · 0 评论 -
java父子进程之间继承了哪些信息?
由于测试环境在linux下,linux环境下变量的共享机制:关于export1.一个shell中的系统环境变量会被复制到子shell中(用export定义的变量);2.一个shell中的系统环境变量只对该shell或者它的子shell有效,该shell结束时变量消失(并不能返回到父shell中)。3.不用export定义的变量只对该shell有效,对子shell也是无效的。原创 2015-04-03 00:33:17 · 1723 阅读 · 0 评论 -
Java JUC之Atomic系列12大类实例讲解和原理分解
在java6以后我们不但接触到了Lock相关的锁,也接触到了很多更加乐观的原子修改操作,也就是在修改时我们只需要保证它的那个瞬间是安全的即可,经过相应的包装后可以再处理对象的并发修改,以及并发中的ABA问题,本文讲述Atomic系列的类的实现以及使用方法,其中包含:基本类:AtomicInteger、AtomicLong、AtomicBoolean;引用类型:AtomicRefer转载 2015-08-16 23:26:08 · 616 阅读 · 0 评论 -
JVM常用参数设置
ref:http://www.cnblogs.com/mazj611/p/3482429.html堆内存设置示例: java -Xmx4550m -Xms4550m -Xss128k -XX:NewRatio=5 -XX:SurvivorRatio=5-Xmx4550m:设置JVM最大可用内存为4550M。 -Xms4550m:设置JVM促使内存为4550m。此值可以设置与转载 2014-01-19 23:09:00 · 712 阅读 · 0 评论 -
java线程安全总结
最近想将java基础的一些东西都整理整理,写下来,这是对知识的总结,也是一种乐趣。已经拟好了提纲,大概分为这几个主题: java线程安全,java垃圾收集,java并发包详细介绍,java profile和jvm性能调优 。慢慢写吧。本人jameswxx原创文章,转载请注明出处,我费了很多心血,多谢了。关于java线 程安全,网上有很多资料,我只想从自己的角度总结对这方面的考虑,有时候写东西是转载 2014-01-17 00:27:21 · 733 阅读 · 0 评论 -
jps、jinfo、jstat、jstack、jmap、jconsole等命令简介
ref:http://blog.csdn.net/caihaijiang/article/details/6084325JDK提供了几个很实用的工具,如下:jinfo:观察运行中的java程序的运行环境参数:参数包括Java System属性和JVM命令行参数,java class path等信息。命令格式:jinfo 进程pidjps:用来显示本地的java进程,可以查看本地转载 2014-01-16 17:12:07 · 1135 阅读 · 0 评论 -
java map双括号初始化方式的问题
关于双括号的初始化凡是确实很方便,特别是在常量文件中,无可替代。如下所示:Map map = new HashMap() { { put("Name", "Unmi"); put("QQ", "1125535"); } }; 好处很明显就是一目了然。这里来罗列下此种方法的坏处,如果这个对象要串行化,可能会导致串行化失败。原创 2013-02-19 17:43:42 · 15531 阅读 · 4 评论 -
java基于反射机制动态导出excel
项目中经常需要导出对象列表。每次都觉得每次手工写太麻烦了,今天基于java反射机制和泛型完成了对象的excel导出。可灵活配置表头。当然功能非常简陋还,会接着完善。 包含四个文件: PrintConstant.java 常量信息 ExcelSheet.java excel实体类 ExcelColumn.java e原创 2013-02-28 18:20:22 · 2154 阅读 · 2 评论 -
从Decorator,Adapter模式看Java/IO库
我想任何一本介绍模式的书在讲到Decorator模式的时候不能不提到它的实际应用--在Java/IO库里面的应用,>这本书也不例外,有点不一样的是,这本书在介绍的时候有个专题,是从两个模式来看Java/IO库,完这个专题后,个人感觉对Java/IO库有了全新的认识同时也加深了Decorator模式跟Adapter适配器模式的理解,现和大家分享下这个在我看来很伟大的成果,同时说明下,以下大部分文字跟转载 2013-04-04 15:08:57 · 1056 阅读 · 0 评论 -
深入理解java的多态性
ref:http://developer.51cto.com/art/200906/130414.htm看过一些关于Java多态性的文章,参考了很多人的理解,加入了一些自己的看法,整理出来供大家参考,不一定完全正确,欢迎大家批评指正。(一)相关类class A ...{ public String show(D obj)...{转载 2013-04-16 11:07:19 · 793 阅读 · 0 评论 -
java http协议 多线程断点续传
ref:http://blog.csdn.net/zhuhuiby/article/details/6725951最近研究了一下关于文件下载的相关内容,觉得还是写些东西记下来比较好。起初只是想研究研究,但后来发现写个可重用性比较高的模块还是很有必要的,我想这也是大多数开发人员的习惯吧。对于HTTP协议,向服务器请求某个文件时,只要发送类似如下的请求即可: GET /Path/F转载 2013-05-16 00:53:00 · 1547 阅读 · 0 评论 -
java多线程的问题
ref:http://www.csdn.net/article/2012-05-28/28060460.Java 中多线程同步是什么?在多线程程序下,同步能控制对共享资源的访问。如果没有同步,当一个 Java 线程在修改一个共享变量时,另外一个线程正在使用或者更新同一个变量,这样容易导致程序出现错误的结果。1.解释实现多线程的几种方法?一 Java 线程可以实现 R转载 2013-05-13 00:29:40 · 827 阅读 · 0 评论 -
java类的初始化时机
Java类和接口的初始化只有在特定的时机才会发生,这些时机包括:创建一个Java类的实例。如MyClass obj = new MyClass()调用一个Java类中的静态方法。如MyClass.sayHello()给Java类或接口中声明的静态域赋值或读取。如MyClass.value = 10在顶层Java类中执行assert语句。通过J原创 2013-06-29 22:28:59 · 1101 阅读 · 0 评论 -
Java类的加载、链接和初始化
ref:http://www.infoq.com/cn/articles/cf-Java-class-loaderJava字节代码的表现形式是字节数组(byte[]),而Java类在JVM中的表现形式是java.lang.Class类的对象。一个Java类从字节代码到能够在JVM中被使用,需要经过加载、链接和初始化这三个步骤。这三个步骤中,对开发人员直接可见的是Java类的加载,通过使用J转载 2013-06-29 21:38:37 · 751 阅读 · 0 评论 -
servlet线程安全的解决办法
Servlet体系结构是建立在Java多线程机制之上的,它的生命周期是由Web容器负责的。当客户端第一次请求某个Servlet时,Servlet容器将会根据web.xml配置文件实例化这个Servlet类。当有新的客户端请求该Servlet时,一般不会再实例化该Servlet类,也就是有多个线程在使用这个实例。这样的话,当两个或多个线程同时访问同一个Servlet时,可能会发生多个转载 2013-10-04 20:01:34 · 747 阅读 · 0 评论 -
linux下java证书错误
在windows环境下运行正常,移植到linux环境下,报如下错误0sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust a原创 2013-10-11 17:23:52 · 2606 阅读 · 0 评论 -
java多线程通信方法
进程间通信的方法主要有以下几种: (1)管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。 (2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关 系 进程间的通信。命名管道在文件系统中有对应的文件名。命名管道通过命令mkfifo或系统调用mkfifo来创建转载 2013-12-04 01:04:24 · 771 阅读 · 0 评论 -
JVM的DirectMemory设置
几台服务器的JVM占用内存总是持续增长,大大超过-Xmx设定的值,服务器物理内存几乎被耗尽。使用jmap查看JVM的内存使用,发现jvm的堆大小完全在-Xmx参数设定的范围之内,那问题只能处在别的地方了。JVM除了堆内存之外,就只有栈内存和DirectMemory了。栈空间每个线程是固定的,线程数也没可能多到可以占用这么多内存的程序,所以怀疑的目标就在DirectMemory上了。转载 2013-12-31 00:24:43 · 2044 阅读 · 0 评论 -
适配器Adapter(视图View):HashMap中entrySet实现
关于Java的HashMap.entrySet(),文档是这样描述的:这个方法返回一个Set,这个Set是HashMap的视图,对Map的操作会在Set上反映出来,反过来也是。原文是Returns a Set view of the mappings contained in this map. The set is backed by the map, so changes to the转载 2015-09-06 00:17:42 · 999 阅读 · 0 评论