
java应用技巧
java中实战与应用技巧总结.
gao_chun
这个作者很懒,什么都没留下…
展开
-
Android中读取图片EXIF元数据之metadata-extractor的使用
首先介绍一下什么是EXIF,EXIF是 Exchangeable Image File 的缩写,这是一种专门为数码相机照片设定的格式。这种格式可以用来记录数字照片的属性信息,如相机的品牌及型号、相片的拍摄时间、拍摄时所设置的光圈大小、快门速度、ISO等信息。除此之外它还能够记录拍摄数据,以及图片格式化方式,这样就可以输出到兼容EXIF格式的外设上,如照片打印机等。目前最常见的支持EXIF信息的图片格式是JPG,很多的图像工具都可以直接显示图片的EXIF信息,包括现在的一些著名的相册网站也提供页面用于显示原创 2015-07-30 16:42:02 · 10591 阅读 · 8 评论 -
java多线程之 ---- 线程同步
java多线程之线程同步线程同步定义:同步是指在同一时间段内只能运行一个线程。分类:同步方法、同步块。作用:安全解决共享问题。 同步块: 语法: synchronized (同步对象) { 需要同步的代码; }例子: public class ThreadDemo implements Runnable{ private int ticket = 5; p原创 2015-08-01 18:06:25 · 2247 阅读 · 0 评论 -
java多线程之 ---- 线程死锁
java多线程之线程死锁产生死锁的主要原因:因为系统资源不足。 进程运行推进的顺序不合适。 资源分配不当等。 如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。 产生死锁的四个必要条件: 互斥条件:一个资源每次只能被一个进程使用。 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保原创 2015-08-01 17:12:34 · 2305 阅读 · 0 评论 -
java并发编程中常用的工具类 Executor
深入理解java执行器相关的类有:Executor ,Executors,ExecutorService。Executor分析Executor是一个接口,是用来执行 Runnable 任务的;它只定义一个方法- execute(Runnable command);执行 Ruannable 类型的任务。通过 Executor 管理 Thread 对象,可以简化编程。Executor在客户单和任务执行之间提供了一个中介层,通过中介来执行任务。Executor执行任务而无须管理任务的生命周期。因此,Exec原创 2015-04-17 13:29:25 · 7218 阅读 · 0 评论 -
java中String对象的长度
java中String的长度使用 Integer.MAX_VALUEInteger.MAX_VALUE = 2147483647 : String 和 StringBuffer 获得长度的方法: public int length() Returns the length of this string原创 2015-05-04 16:08:53 · 17785 阅读 · 0 评论 -
java中volatile关键字
synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synchronized 和 块语句,在多线程访问的时候,同一时刻只能有一个线程能够用synchronized 修饰的方法 或者 代码块。volatile用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的最的值。volatile很容易被误用,用来进行原子性操作。原创 2015-04-17 14:10:35 · 6793 阅读 · 1 评论 -
java中对象的引用(强引用、软引用、弱引用、虚引用)
java中是JVM负责内存的分配和回收,这是它的优点(使用方便,程序不用再像使用c那样操心内存),但同时也是它的缺点(不够灵活)。为了解决内存操作不灵活这个问题,可以采用软引用等方法。 在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直原创 2015-04-08 14:31:03 · 6183 阅读 · 0 评论 -
为什么在重写了equals()方法之后也必须重写hashCode()方法
我们都知道Java语言是完全面向对象的,在java中,所有的对象都是继承于Object类。Ojbect类中有两个方法equals、hashCode,这两个方法都是用来比较两个对象是否相等的。 对于值对象,==比较的是两个对象的值,对于引用对象,比较的是两个对象的地址。默认的equals方法同==,一般来说我们的对象都是引用对象,要重写equals方法。再举一个例子,现在有一个原创 2015-04-02 17:15:20 · 8569 阅读 · 0 评论 -
浅谈newInstance()方法和new关键字
网上看到了一段工厂类是这么写的: public class SimpleFactory { @SuppressWarnings({ "unchecked", "rawtypes" }) public T getInstance(Class clazz) { try { return (T) clazz.newInstance(); } catch (Instanti原创 2015-04-02 17:12:23 · 10567 阅读 · 0 评论 -
new一个Object对象占用多少内存?
/*************************************************** * TODO: description . * @author: gao_chun * @since: 2015-4-2 * @version: 1.0.0 * @remark: 转载请注明出处 ************************原创 2015-04-02 17:01:47 · 6716 阅读 · 0 评论 -
java.lang.Class.getDeclaredMethod()方法详解
java.lang.Class.getDeclaredMethod()方法用法注:方法返回一个Method对象,它反映此Class对象所表示的类或接口的指定已声明方法。描述java.lang.Class.getDeclaredMethod()方法返回一个Method对象,它反映此Class对象所表示的类或接口的指定已声明方法。name 参数是一个字符串,指定所需原创 2015-01-19 17:14:20 · 68487 阅读 · 5 评论 -
java测试方法运行时间 System.currentTimeMillis();
测试:效果:System.currentTimeMillis();currentTimeMillis()返回以毫秒为单位的当前时间,返回的是当前时间与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位测量)。注意,当返回值的时间单位是毫秒时,值的粒度取决于基础操作系统,并且粒度可能更大。例如,许多操作系统以几十毫秒为单位测原创 2015-01-16 16:46:20 · 73607 阅读 · 0 评论 -
java抽象类 与 接口
Java接口和Java抽象类的认识很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,可一个只有方法名,没有方法体的东西,我实现它又有什么用呢?我从它那什么也得不到,除了一些方法名,我直接在具体类里加入这些方法不就行了吗? 为什么一定要有抽象类这个概念?为什么就不能把这个父类写成一个具体的类,子类再继承它不就可以了吗?何必弄一个抽象类出来,还要弄一些没有方法体的抽象方法,弄原创 2015-01-12 16:13:39 · 7177 阅读 · 0 评论 -
java中transient关键字简介
java中 transien 关键字我们都知道一个对象只要实现了 Serilizable 接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个的所有属性和方法都会自动序列化。 然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序原创 2015-01-12 15:56:18 · 5002 阅读 · 1 评论 -
关于java方法中Object... args参数的含义
关于java方法中Object... args参数的含义在阅读google发布的volley源码时,突然看到一个方法中存在这样的写法,如 :v(String format, Object... args)不明白什么意思,琢磨着为什么要这样写呢,跟Object[] args是一个意思吗?为什么用三个点代替呢?后来查阅了下文档,原来这是JDK1.5新增语法,新特性,动态参数或者是可变参数的原创 2014-12-31 14:01:24 · 26948 阅读 · 8 评论 -
native关键字
今日在项目交接中,遇到了native关键词,又熟悉又陌生的感觉,反正以前是没常用到过这玩意。就查了点资料,对native是什么东西有了那么一点了解,总结下。native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中。Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他原创 2014-10-30 10:11:05 · 2165 阅读 · 0 评论 -
java 正则表达式验证
package com.fsti.icop.util.regexp;import java.util.regex.Matcher;import java.util.regex.Pattern;public final class RegExpValidatorUtils {/*** 验证邮箱* * @param 待验证的字符串* @return 如果是符合的字符串,返回 tru原创 2014-09-28 16:54:51 · 1852 阅读 · 0 评论 -
java中String的21种用法
(构造函数必须new出来) * public String (char[] vaue) 将一个字符数组变成字符串(构造函数) * public String (char[] vaue,int offset,int count) 将制定范围内的字符数组变为字符串(构造函数) * public String (byte[],bytes)原创 2014-07-31 17:43:54 · 4884 阅读 · 0 评论 -
Java接口回调
java的接口回调,在android下用的是越来越多了,到底该怎么理解他呢? 好比是一个领导和一个下属,还有一个下属间谍三个人之间不清不楚的关系 1、下属有一个吃饭的事情……(定义接口)2、领导发表申明,说对下属的吃饭这件事感兴趣,并说了如果下属吃饭,他就怎么样怎么样,但是老板就是老板,总不能一直盯着下属所以……(实现接口,并实现处理监听事件的方法)原创 2014-07-18 15:18:26 · 7697 阅读 · 0 评论 -
java中去重机制
要了解更详细的原理,可以去了解Java中集合的机制,这里的主要原因就是要复写hashCode()方法和equals()方法贴下代码:原创 2014-07-15 17:50:07 · 5540 阅读 · 0 评论 -
java中使用poi导出Excel详解
java当初把核心处理设成Unicode,带来的好处是代码适应了多语言环境。 然而由于老外的英语只有26个字母,有些情况下,一些程序员用8 位的byte处理, 一不小心就去掉了CJK的高位。或者是由于习惯在程序中采用硬编码,还有多种原因,使得许 多java应用在CJK的处理上很烦恼。还好 在POI HSSF中考虑到这个问题,可以设置encoding为双字节。 POI可以到www.a原创 2014-07-10 11:07:39 · 17920 阅读 · 1 评论 -
java中的这几个问题你是否知道
问题一:我声明了什么! String s = "Hello world!"; 许多人都做过这样的事情,但是,我们到底声明了什么?回答通常是:一个String,内容是“Hello world!”。这样模糊的回答通常是概念不清的根源。如果要准确的回答,一半的人大概会回答错误。 这个语句声明的是一个指向对象的引用,名为“s”,可以指向类型为String的任何对象,目前指向"Hello world!"这个String类型的对象。这就是真正发生的事情。我们并没有声明一个String对象,我们只是声明了一个只原创 2014-06-04 10:19:51 · 2852 阅读 · 0 评论 -
java回调函数机制
一、 概述软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调、异步调用 。同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用; 回调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口; 异步调用:一种类似消息或事件的机制,解决了同步阻塞的问题,它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。原创 2015-07-15 23:19:01 · 5697 阅读 · 4 评论