
Java系列教程
文章平均质量分 91
涵盖Java基础知识和高级知识,解析了平时没有注意到的细节问题和面试常考知识点
JeffCoding
热爱移动互联网,热爱安卓,热爱Java
展开
-
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 · 2139 阅读 · 2 评论 -
String详解(二):StringBuilder和StringBuffer的区别
问题引出:String,StringBuffer和StringBuilder的区分和使用场景?速度区别一般来说,三者的速度是:StringBuilder > StringBuffer > String。但是,在String a = "how" + "old" + "are" + "you"。这种直接拼接的情况下,String速度最高。这是因为jvm的优化问题,jvm会自动识别,把"原创 2016-08-12 19:07:17 · 850 阅读 · 0 评论 -
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 · 16033 阅读 · 3 评论 -
深入理解 抽象类和接口
使用场景当需要使得多个类看起来一样时,使用接口或者抽象类。 例如:当有四个类,分别为Basketball,Football,Baseball,Badminton。这四个类都有的方法为play(),stop(),pause(),这时可以把这些方法抽象出来,在抽象类中或者接口中声明,再让这四个类继承或实现。这样这四个类看起来就一样了。抽象类首先记住一句话,抽象类的存在是为了被继承,如果没有类继承它,它原创 2016-08-13 18:54:18 · 841 阅读 · 0 评论 -
深入理解 内部类
问题引出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 · 799 阅读 · 0 评论 -
Java容器(二):强大的LinkedList
前言——容器的类型容器从最大的概念来分:分为Collection和Map,区别就是Collection是一个槽的,Map是两个槽的(键值对) Collection划分为:List,Set,Queue List一般使用:ArrayList,LinkedListSet一般使用:HashSet,TreeSet,LinkedHashSetQueue一般使用:Queue,PriorityQueue原创 2016-08-16 13:20:07 · 2130 阅读 · 0 评论 -
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 · 587 阅读 · 0 评论 -
Java IO系列(二):文件读取写入
写在前面 关于字符和字节,例如文本文件,XML这些都是用字符流来读取和写入。而如RAR,EXE文件,图片等非文本,则用字节流来读取和写入。读取文件文件读取,用到BufferdReader和FileReader,BufferdReader用于缓存加速,FileReader用于读取文件。public class BufferInputFile { public static void main(原创 2016-08-20 23:19:01 · 980 阅读 · 0 评论 -
Java IO系列(三):DataInputStream,DataOutputStream和RandomAccessFile
转载请注明出:http://blog.youkuaiyun.com/jeffleo/article/details/52266200有必要多看几遍的 关于字符和字节,例如文本文件,XML这些都是用字符流来读取和写入。而如RAR,EXE文件,图片等非文本,则用字节流来读取和写入。DataInputStream和DataOutputStream数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中原创 2016-08-21 10:37:54 · 1366 阅读 · 0 评论 -
Java IO系列(四):文件压缩GZIP、Zip
转载请注明出处:http://blog.youkuaiyun.com/jeffleo/article/details/52266360有必要多看几遍的 关于字符和字节,例如文本文件,XML这些都是用字符流来读取和写入。而如RAR,EXE文件,图片等非文本,则用字节流来读取和写入。压缩类有关压缩的类如下: DeflaterOutputStream:压缩类的基类 ZipOutputStream:将数据压缩成Z原创 2016-08-21 11:09:17 · 1234 阅读 · 0 评论 -
Java IO系列(五):读写对象ObjectOutputStream和ObjectInputStream
转载请注明出处:http://blog.youkuaiyun.com/jeffleo/article/details/52266577有必要多看几遍的 关于字符和字节,例如文本文件,XML这些都是用字符流来读取和写入。而如RAR,EXE文件,图片等非文本,则用字节流来读取和写入。读写对象,传输对象在Java中很常使用,在javaBean中就经常用到。一般来说,对象要能被对写,自身要实现特定的接口,Serial原创 2016-08-21 12:01:57 · 2164 阅读 · 0 评论 -
Class对象
RTTI我们要知道,Java让我们在运行时识别对象和类信息,主要通过两种方式,一种就是传统的RTTI,另一种是反射(Reflection)。两者的区别是,RTTI是在编译时就获得了所有类型信息,而反射是在运行时发现和使用类的信息。 RTTI分为三种形式: 1:传统的类型转换,例如经典的Animal的子类上转时类型转换。 2:Class对象,通过查询Class对象可以获得运行时所需的信息。 3原创 2016-08-17 10:52:29 · 719 阅读 · 0 评论 -
Java反射(Reflection)详解
认识反射前面说到,反射相对于RTTI的区别就是,反射是运行时发现和使用类的信息。 当我们使用一个位置类型的对象进行操作时,我们必须先加载那个类的Class对象,因此那个类的对象对于JVM来说,必须是可获取的,可以从本地,也可以从网络。然而,对于反射机制,.class在编译器是不可获得的,因此反射只能在运行时打开.class文件。所以,反射和Class是不可分割的。置于Class是什么,怎么获取,请看原创 2016-08-17 12:37:11 · 1560 阅读 · 0 评论 -
泛型超详细解读(一):泛型基础
一:什么是泛型泛型是jdk5才引进的,泛型其实指得就是参数化类型,使得代码可以适应多种类型。像容器,List< T >,大量使用了泛型,它的主要目的之一就是用来指定容器要持有什么类型的对象。我认为,泛型的好处很多:1.保证了类型安全当没有使用泛型的情况下,创建了一个狗的列表,List dogs = new ArrayList,每次要往狗列表添加时,都要我们程序员去确定所添加的是不是狗。但是使用了泛型原创 2016-08-19 14:56:17 · 10413 阅读 · 2 评论 -
泛型超详细解读(二):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 · 27933 阅读 · 33 评论