自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘剑峰的博客

一起交流技术,谦虚学习

  • 博客(28)
  • 资源 (4)
  • 收藏
  • 关注

原创 Java IO系列(五):读写对象ObjectOutputStream和ObjectInputStream

转载请注明出处:http://blog.csdn.net/jeffleo/article/details/52266577有必要多看几遍的 关于字符和字节,例如文本文件,XML这些都是用字符流来读取和写入。而如RAR,EXE文件,图片等非文本,则用字节流来读取和写入。读写对象,传输对象在Java中很常使用,在javaBean中就经常用到。一般来说,对象要能被对写,自身要实现特定的接口,Serial

2016-08-21 12:01:57 2093

原创 Java IO系列(四):文件压缩GZIP、Zip

转载请注明出处:http://blog.csdn.net/jeffleo/article/details/52266360有必要多看几遍的 关于字符和字节,例如文本文件,XML这些都是用字符流来读取和写入。而如RAR,EXE文件,图片等非文本,则用字节流来读取和写入。压缩类有关压缩的类如下: DeflaterOutputStream:压缩类的基类 ZipOutputStream:将数据压缩成Z

2016-08-21 11:09:17 1163

原创 Java IO系列(三):DataInputStream,DataOutputStream和RandomAccessFile

转载请注明出:http://blog.csdn.net/jeffleo/article/details/52266200有必要多看几遍的 关于字符和字节,例如文本文件,XML这些都是用字符流来读取和写入。而如RAR,EXE文件,图片等非文本,则用字节流来读取和写入。DataInputStream和DataOutputStream数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中

2016-08-21 10:37:54 1297

原创 Java IO系列(二):文件读取写入

写在前面 关于字符和字节,例如文本文件,XML这些都是用字符流来读取和写入。而如RAR,EXE文件,图片等非文本,则用字节流来读取和写入。读取文件文件读取,用到BufferdReader和FileReader,BufferdReader用于缓存加速,FileReader用于读取文件。public class BufferInputFile { public static void main(

2016-08-20 23:19:01 943

原创 Java IO系列(一):File类

File类是一切IO之基础,要想学好IO,File类是一定要学好的,API一定要滚瓜烂熟得调用。接下来,将以项目实战中的经验来进行API的操作,这样会让各API的串联度更高。(为了更清晰得理解使用,所有的Exception将throw,不在代码列出)一:常规创建文件在路径“F:/io/hello.txt”创建名为hello的txt文件。File file = new File("F:" + File

2016-08-20 21:37:41 551

原创 泛型超详细解读(二):super和extend

一:擦除要理解super和extends的边界问题,首先要理解消除。 先看一个有趣的例子:public class Abrasion { public static void main(String[] args) { Class a = new ArrayList<Integer>().getClass(); Class b = new ArrayList

2016-08-19 14:58:14 27242 30

原创 泛型超详细解读(一):泛型基础

一:什么是泛型泛型是jdk5才引进的,泛型其实指得就是参数化类型,使得代码可以适应多种类型。像容器,List< T >,大量使用了泛型,它的主要目的之一就是用来指定容器要持有什么类型的对象。我认为,泛型的好处很多:1.保证了类型安全当没有使用泛型的情况下,创建了一个狗的列表,List dogs = new ArrayList,每次要往狗列表添加时,都要我们程序员去确定所添加的是不是狗。但是使用了泛型

2016-08-19 14:56:17 10301 2

原创 Java反射(Reflection)详解

认识反射前面说到,反射相对于RTTI的区别就是,反射是运行时发现和使用类的信息。 当我们使用一个位置类型的对象进行操作时,我们必须先加载那个类的Class对象,因此那个类的对象对于JVM来说,必须是可获取的,可以从本地,也可以从网络。然而,对于反射机制,.class在编译器是不可获得的,因此反射只能在运行时打开.class文件。所以,反射和Class是不可分割的。置于Class是什么,怎么获取,请看

2016-08-17 12:37:11 1459

原创 Class对象

RTTI我们要知道,Java让我们在运行时识别对象和类信息,主要通过两种方式,一种就是传统的RTTI,另一种是反射(Reflection)。两者的区别是,RTTI是在编译时就获得了所有类型信息,而反射是在运行时发现和使用类的信息。 RTTI分为三种形式: 1:传统的类型转换,例如经典的Animal的子类上转时类型转换。 2:Class对象,通过查询Class对象可以获得运行时所需的信息。 3

2016-08-17 10:52:29 676

原创 Java设计模式之—静态代理和动态代理

代理从字面意思来看就是,替代XX去做某事,在我们的程序中,一般替代实际对象去进行操作,扮演着中间人的角色: 客户端 –> 业务类 客户端 –> 代理 –>业务类(代理)代理接口interface Operation{ void download();}实际对象(业务类)class RealObject implements Operation{ @Override

2016-08-17 00:08:35 2697

原创 Java容器(二):强大的LinkedList

前言——容器的类型容器从最大的概念来分:分为Collection和Map,区别就是Collection是一个槽的,Map是两个槽的(键值对) Collection划分为:List,Set,Queue List一般使用:ArrayList,LinkedListSet一般使用:HashSet,TreeSet,LinkedHashSetQueue一般使用:Queue,PriorityQueue

2016-08-16 13:20:07 1994

原创 深入理解 内部类

问题引出public class Outter{ private int a = 0; private class Inner{ public int getA(){ return ++a; } } private Inner getInner(){ return new Inner(); }

2016-08-15 13:23:43 711

原创 Java设计模式—工厂方法

什么是工厂我们的日常理解,例如电子制造厂,工厂的作用就是制造我们需要的产品,例如手机,平板,电脑等。再用面向对象来理解,手机,平板,电脑就是对象,也就是说,工厂是用来生产对象的,我们需要什么就跟工厂拿。假如没有工厂的情况下,我们要什么就得自己做,因此工厂为我们提供了便利。工厂方法联系生活假如你开了一家公司,你一个合作的客户需要一大批的手机,假如你公司没有下属工厂,那你得自己做。假如你有工厂,你可以把

2016-08-14 22:49:51 537

原创 Java设计模式—策略

什么是策略设计模式创建一个能够根据所传递的参数对象的不同而具有不同行为的方法,被称为策略设计模式,策略其实就是传递到方法中的参数对象,它的核心思想是把算法抽取出来放到一个独立的对象中。策略使用步骤: - 定义策略接口 - 定义策略类 - 使用策略 //定义策略接口interface Strategy{ void operate();}//定义策略类1class Strate

2016-08-13 20:20:48 359

原创 深入理解 抽象类和接口

使用场景当需要使得多个类看起来一样时,使用接口或者抽象类。 例如:当有四个类,分别为Basketball,Football,Baseball,Badminton。这四个类都有的方法为play(),stop(),pause(),这时可以把这些方法抽象出来,在抽象类中或者接口中声明,再让这四个类继承或实现。这样这四个类看起来就一样了。抽象类首先记住一句话,抽象类的存在是为了被继承,如果没有类继承它,它

2016-08-13 18:54:18 769

原创 String详解(三):正则表达式Pattern和Matcher详解

(一)利用String的split()对字符串进行切割String text = "Hello, my name is liujianfeng";System.out.println(Arrays.toString(text.split("\\s")));//以空格为切割符System.out.println(Arrays.toString(text.split("\\W+")));//以

2016-08-12 23:19:38 15766 3

原创 String详解(二):StringBuilder和StringBuffer的区别

问题引出:String,StringBuffer和StringBuilder的区分和使用场景?速度区别一般来说,三者的速度是:StringBuilder > StringBuffer > String。但是,在String a = "how" + "old" + "are" + "you"。这种直接拼接的情况下,String速度最高。这是因为jvm的优化问题,jvm会自动识别,把"

2016-08-12 19:07:17 793

原创 String详解(一):如何理解String

引入问题:1. String和基本数据类型的区别:首先要理解String是一个对象,而不是基本数据类型。String是存放在char[]中的,char[]跟所有的对象一样存放在堆,而基本数据类型存放于堆栈中。2. 理解String不可变:String q = "hello";println(q);String qq = upcase(q);println(

2016-08-12 18:08:48 1966 2

原创 Java获取时间差(天数差,小时差,分钟差)

网上有很多博文是讲如何获取时间差的,我看了一下,多数是使用Calendar类来实现,但是都讲得比较乱,在这里我用SimpleDateFormat来实现,比较简单,我认为比较适合拿来用。首先我们先初始化我们的SimpleDateFormatSimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm");//如2

2016-08-10 20:51:17 116855 11

原创 为Button设置选择器

2016-08-10 18:28:40 955

转载 让多个Fragment 切换时不重新实例化

在项目中需要进行Fragment的切换,一直都是用replace()方法来替换Fragment:123456789public void switchContent(Fragment fragment) { if(mContent != fragment) { mContent = fragment; mFragmentMan.

2016-08-10 18:17:20 571

转载 Android 软键盘遮挡的四种解决方案

在编辑框输入内容时会弹出软键盘,而手机屏幕区域有限往往会遮住输入界面,我们先看一下问题效果图:                                         输入用户名和密码时,系统会弹出键盘,造成系统键盘会挡住文本框的问题,如图所示:                                          输入密码时输入框被系统键盘遮挡

2016-08-10 18:15:46 773

转载 ListView的动态刷新问题——用notifyDataSetChanged没作用

也许很多开发的朋友,尤其是Android初学者,在动态刷新ListView时,使用notifyDataSetChanged并没有起到作用。有时会被困扰得很痛苦。其实,在使用notifyDataSetChanged过程中,还是有细节需要注意的。举个例子:我的ListView使用的数据源是来自ArrayList。通常我们的做法是创建一个已经有我们想要提供给ListView的数据的Arr

2016-08-10 18:08:38 697

原创 Android设置EditText只能输入字母和数字

一般来说当需要输入账号密码时,便限定只能输入字母和数字。那可以对EditText进行设置:android:inputType="number"android:digits="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"在xml中对EditText进行设置一般来说就可以了

2016-08-10 18:00:22 7201

原创 Android版本检测更新

最近看到有一篇文章,主要写Android如何检测版本更新,但有点无语,其实挺简单的问题,被说的如此复杂。于是想记录下来,希望能帮到需要的人。检测版本更新的思路:1.首先获取现app的versionCode,然后跟服务器返回的versionCode对比,若小于服务器的versionCode,则说明有新版本了,需要更新了。2.服务器提供新版本的apk地址,共客户端进行下载安装。

2016-08-10 17:53:04 801

原创 android上传图片至服务器

android上传图片到服务器很常用到,例如上传头像,发表带照片的帖子之类。首先讲服务器端,服务器端用java,只上传头像在此只用Servlet说明,暂不使用框架。public class UpLoadImage extends HttpServlet { private static final long serialVersionUID = 1L; protected v

2016-08-10 17:28:45 749

原创 Glide加载圆形image第一次显示占位图的原因

一些解决方案1.如果你刚好使用了这个圆形Imageview库或者其他的一些自定义的圆形Imageview,而你又刚好设置了占位的话,那么,你就会遇到第一个问题。如何解决呢?方案一: 不设置占位;方案二:使用Glide的Transformation API自定义圆形Bitmap的转换。这里是一个已有的例子;方案三:使用下面的代码加载图片:Glide.with(mConte

2016-08-02 19:23:19 8803 4

原创 eclipse配置上传文件的虚拟路径(多坑版)

最近在用写android客户端的服务器,文件上传。出现了很多问题,这些问题估计是我今天百度谷歌的综合版了。从头说起:1. 一开始我把文件的上传路径设置在WEB-INF下,原因为了安全,不易被攻击。但是重启eclipse,发现文件没了。查 阅资料,最好设置在webapp之外的文件夹,即设置虚拟路径。好,我就定我的文件路径为E:\NewsData;2.设置虚拟路径方法:   打开ecl

2016-08-02 18:43:39 6202 1

java爬虫完整代码

java爬虫完整代码,数据挖掘

2016-11-12

java爬虫代码

java爬虫代码

2016-11-11

android java日期计算工具

android java日期计算工具

2016-08-11

安卓版本检测工具类

用于检测版本是否需要更新,换掉url地址直接可以用

2016-08-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除