Java
luohai859
这个作者很懒,什么都没留下…
展开
-
Java获取主机Mac地址
import java.io.*;public class GetMacAddressTool { /** * 获取当前操作系统名称. return 操作系统名称 例如:windows xp,linux 等. */ public static String getOSName() { return System.getProperty("os.name").toLowerCase()原创 2011-06-14 13:10:00 · 1956 阅读 · 0 评论 -
单例在多线程下的问题: "懒汉"初始化的线程安全
单例的多线程线程安全问题的描述通常的多线程的线程安全问题,往往被描述成"多线程共享线程实例变量"但多线程下的实例变量如果是单例的话,本来就是该共享的,因为单例在同一JVM下只有一个所以平常的线程安全问题,在这里正好相反,如果多线程不共享单例的实例变量,才是真正的线程安全问题这也证明了线程安全的本质是"实际值和理论值不符",而不能简单的描述为"多线程共享线程实例变量就是线原创 2014-08-14 09:46:50 · 1005 阅读 · 0 评论 -
Java——同步
在多线程程序中,同步修饰符用来控制对临界区代码的访问。其中一种方式是用synchronized关键字来保证代码的线程安全性。在Java中,synchronized修饰的代码块或方法不会被多个线程并发访问。它强制要求线程在进入一个方法之前获得一个锁,在离开方法时释放该锁。它保证了在同一时刻只有一个线程能执行被其修饰的方法。如果我们把一个方法或代码块定义为同步的,就意味着在同一个对象中,只会有转载 2014-09-23 20:22:05 · 635 阅读 · 0 评论 -
LinkedList基本用法
LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用.LinkedList的构造函数如下1. public LinkedList(): ——生成空的链表2. public LinkedList(Collection col): 复制构造函数1、获取链表的第一个和最后一个元素[java] view plaincopy转载 2014-12-26 09:47:14 · 729 阅读 · 0 评论 -
Java开发者易犯错误Top10
Top1. 数组转换为数组列表将数组转换为数组列表,开发者经常会这样做:[java] view plaincopyList list = Arrays.asList(arr); Arrays.asList()将返回一个数组内部是私有静态类的ArrayList,这不是java.util.ArrayList类,jav转载 2015-02-13 15:50:44 · 1042 阅读 · 0 评论 -
正则中需要转义的特殊字符小结
正则表达式中的特殊字符,就是一些有特殊含义的字符,如“*.txt”中的*,简单的说就是表示任何字符串的意思如果要查找文件名中有*的文件,则需要对*进行转义,即在其前加一个\。ls \*.txt。正则表达式有以下特殊字符。需要转义 特别字符说明$匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性原创 2015-05-27 14:55:21 · 491 阅读 · 0 评论 -
java使double保留两位小数的多方法 java保留两位小数
这篇文章主要介绍了java使double类型保留两位小数的方法,大家参考使用吧代码如下:mport java.text.DecimalFormat; DecimalFormat df = new DecimalFormat(“######0.00”); double d1 = 3.23456 double d2 = 0.0; double d3 = 2.0; df.format转载 2015-12-07 18:40:28 · 389 阅读 · 0 评论 -
解析json之com.google.gson.Gson
需要导入的架包[java] view plaincopygson-2.2.4.jar JSON与数组互转[java] view plaincopypackage com.itlwc.text; import com.google.gson.Gson; p转载 2016-01-13 10:13:28 · 2706 阅读 · 0 评论 -
java 浅堆和深堆
浅堆和深堆浅堆(Shallow Heap)和深堆(Retained Heap)是两个非常重要的概念,它们分别表示一个对象结构所占用的内存大小和一个对象被GC回收后,可以真实释放的内存大小。浅堆(Shallow Heap)是指一个对象所消耗的内存。在32位系统中,一个对象引用会占据4个字节,一个int类型会占据4个字节,long型变量会占据8个字节,每个对象头需要占用8个字节。转载 2016-02-29 16:47:25 · 3419 阅读 · 0 评论 -
java对象和json对象之间互相转换
import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class MainClass { p转载 2016-08-05 13:30:22 · 298 阅读 · 0 评论 -
Java多线程(五)、多线程其他知识简要介绍
一、线程组[java] view plaincopy/** * A thread group represents a set of threads. In addition, a thread * group can also include other thread groups. The thread groups form原创 2014-08-06 16:37:19 · 529 阅读 · 0 评论 -
ava多线程(四)、线程池
系统启动一个新线程的成本是比较高的,因为它涉及到与操作系统的交互。在这种情况下,使用线程池可以很好的提供性能,尤其是当程序中需要创建大量生存期很短暂的线程时,更应该考虑使用线程池。与数据库连接池类似的是,线程池在系统启动时即创建大量空闲的线程,程序将一个Runnable对象传给线程池,线程池就会启动一条线程来执行该对象的run方法,当run方法执行结束后,该线程并不会死亡,而是再次返回线程原创 2014-08-06 16:36:53 · 851 阅读 · 0 评论 -
map,set,list,等JAVA中集合解析
map,set,list,等JAVA中集合解析 在JAVA的util包中有两个所有集合的父接口Collection和Map,它们的父子关系: java.util +Collection 这个接口extends自 --java.la原创 2011-08-10 09:59:11 · 794 阅读 · 0 评论 -
Java IO
什么是流: 流是一个抽象的概念。当Java程序需要从数据源读取数据时,会开启一个到数据源的流。数据源可以是文件,内存或者网络等。同样,当程序需要输出数据到目的地时也一样会开启一个流,数据目的地也可以是文件、内存或者网络等。流的创建是为了更方便地处理数据的输入输出。流分为字节流和字符流。字节流也称为原始数据,需要用户读入后进行相应的编码转换。而字符流的实现是基于自动转换的,读取数据时转载 2012-03-01 16:32:53 · 406 阅读 · 0 评论 -
java操作office和pdf文件
(一)java读取word,excel和pdf文档内容 在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中。所以今天我们就简单来看一下java对word、excel、pdf文件的读取。本篇博客只是讲解简单应用。如果想深入了解原理。请读者自行研究一些相关源码。首先我们来认识一下读取相关文档的jar包:转载 2012-11-09 17:23:30 · 813 阅读 · 0 评论 -
Java 8 简明教程
Java 8已于2014年3月18日正式发布了,新版本带来了诸多改进,包括Lambda表达式、Streams、日期时间API等等。本文就带你领略Java 8的全新特性。 本文由 ImportNew网站的黄小非 翻译自 winterbe。原文作者Benjamin是Pondus软件公司的总工程师,原文内容如下。 引用Java并没有没落,人们很快就会发现这一点转载 2014-04-11 09:23:35 · 871 阅读 · 0 评论 -
Java反射教程
什么是反射?反射有什么用处?1. 什么是反射?“反射(Reflection)能够让运行于JVM中的程序检测和修改运行时的行为。”这个概念常常会和内省(Introspection)混淆,以下是这两个术语在Wikipedia中的解释:内省用于在运行时检测某个对象的类型和其包含的属性;反射用于在运行时检测和修改某个对象的结构及其行为。从它们的定义可以看出,内省是反原创 2014-04-11 09:30:58 · 568 阅读 · 0 评论 -
Java enum的用法详解
用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switchJDK1.6之前的switch语原创 2014-07-10 14:10:11 · 580 阅读 · 0 评论 -
Java多线程(二)、线程的生命周期和状态控制
一、线程的生命周期线程状态转换图:1、新建状态用new关键字和Thread类或其子类建立一个线程对象后,该线程对象就处于新生状态。处于新生状态的线程有自己的内存空间,通过调用start方法进入就绪状态(runnable)。注意:不能对已经启动的线程再次调用start()方法,否则会出现java.lang.IllegalThreadStateExcep原创 2014-08-06 16:34:55 · 755 阅读 · 0 评论 -
Java多线程(三)、线程同步
在之前,已经学习到了线程的创建和状态控制,但是每个线程之间几乎都没有什么太大的联系。可是有的时候,可能存在多个线程多同一个数据进行操作,这样,可能就会引用各种奇怪的问题。现在就来学习多线程对数据访问的控制吧。 由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访原创 2014-08-06 16:33:35 · 603 阅读 · 0 评论 -
Java多线程(一)、多线程的基本概念和使用
一、进程和线程的基础知识1、进程和线程的概念进程:运行中的应用程序称为进程,拥有系统资源(cpu、内存)线程:进程中的一段代码,一个进程中可以有多段代码。本身不拥有资源(共享所在进程的资源)在java中,程序入口被自动创建为主线程,在主线程中可以创建多个子线程。区别: 1、是否占有资源问题 2、创建或撤销一个进程所需要的开销比创建或撤销一原创 2014-08-06 16:34:18 · 529 阅读 · 0 评论 -
深入理解Java:注解(Annotation)自定义注解
要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解: 1.@Target,原创 2017-02-05 18:00:10 · 286 阅读 · 0 评论