0%

Java反射

对象在运行时会有两种类型,编译时类型和运行时类型,例如:String a = new Name(),编译时为String,运行时为Name。为了准确知道该对象的类型,可以通过instanceof()方法,但是在什么都不知道的情况下,只能通过反射获取该对象的信息。

阅读全文 »

Java类加载

这部分知识比较深入底层,将重点介绍类加载和反射,会提到JDK动态代理、AOP,反射等诸多知识点。当调用Java命令允许程序时,该命令会启动多个线程,它们都处于该Java虚拟机进程里。所有线程、变量处于同一个进程里,它们都使用JVM进程的内存区。当出现以下情况,进程将终止:

阅读全文 »

Java注解

Java5开始,Java增加对元数据的支持,也就是Annotation,不是一般的注释。这些标记在编译、类加载、运行时被读取,并执行相应处理。通过使用注解,开发人员在源文件中嵌入一些补充信息,进而代码分析和部署工具可以通过这些补充信息进行部署

阅读全文 »

Java泛型

上次讲了集合,就是放对象的容器,但是集合并不知道对象的具体数据类型,所以很容易发生异常。比如:

阅读全文 »

排序操作

Collections提供了如下方法用于对List集合排序:

  • void reverse(List list):反转顺序
  • void shuffle(List list):随机排序
  • void sort(List list):按升序排序
  • void sort(List list ,Comparator):根据Comparator的顺序指定排序
  • void swap(List list,int i,int j):指定元素之间交换
  • void rotate(List list,int d):当d为正时,将集合后d个元素整体移到前面;为负时,将前d个元素整体移到后面
    阅读全文 »

Map集合

Map的key不允许重复,即两个key通过equals方法比较总是返回false。如果把所以的key放在一起来看,它们就是一个Set集合,就是没有顺序,key之间不能重复。而实际上Map确实包含了一个KeySet()方法,用于返回Map集合的所有key组成的Set集合。另外key集与Set集合里的元素的储存形式也很像,Map子类和Set子类在名字上也很相似,比如HashMapHashSet等接口和子类。Map和Set之间的关系非常密切,但如果把key-value中的value当作key的附庸,就可以当Set来看Map。

阅读全文 »

Java集合—List集合

与Set集合不同,List集合是有序,可重复的,而且默认以添加顺序设置索引。List子接口是继承了Collection接口,则可以使用其中的方法。

阅读全文 »

Set集合和Collection基本相同,没有提供额外的方法,主要是行为上的不同,Set不允许包含重复元素,否则add()方法会返回false。接下来将主要介绍四种Set类,HashSet,TreeSet,LinkedHashSet,EnumSet四种集合。

阅读全文 »

集合介绍

Java集合类是一种特别的工具类,可以储存对象,并实现了常用的数据结构,另外还能保存具有映射关系的关联数组。集合大致分为Set,List,Queue,Map四种,其中Set代表无序、不可重复,List代表有序、重复,Map则代表具有映射关系,Java5增加了Queue集合,代表一种队列集合实现。Java集合就像一种容器

阅读全文 »

Java构造器和初始化块

构造器是一个特殊的方法,但定义构造器和普通方法没什么太大区别,该有的都有。不过为了区分还是看看不一样的地方。

阅读全文 »

成员变量和局部变量及运行机制

两者的区别在于定义变量的位置不同,运行的机制也有差异。成员变量定义在类中,局部变量定义在定义在方法中。

阅读全文 »

继承和组合、单例类及不可变类

继承 inheritance:

继承是实现类复用的重要手段,所谓复用,就是可以多次使用,或者再次利用,不用继续重写成员变量和方法。但不代表没有缺点,最不好的地方:破坏封装。子类拓展父类时,若访问权限允许,则可直接访问父类的成员变量和方法,破坏了良好的封装性(Encapsulation) ,造成子类与父类的耦合。

阅读全文 »