java(高级)特性

轻松学,浅析依赖倒置(DIP)、控制反转(IOC)和依赖注入(DI)- http://blog.csdn.net/briblue/article/details/75093382
Java基础与提升- http://blog.csdn.net/SEU_Calvin/article/category/6226468
java基础相关- https://github.com/aalansehaiyang/technology-talk/blob/master/basic-knowledge/java.md
【java并发】- http://blog.csdn.net/a910626/article/category/6270651
【java提高】- http://blog.csdn.net/a910626/article/category/1255980
Java反射- http://blog.csdn.net/a396901990/article/category/2302221
什么时候要重写toString()方法-> 自定义输出信息必须重写toString()方法.hash呢? 二叉树可以用数组或线性表来存储.
  在NIO中有几个比较关键的概念:Channel(通道),Buffer(缓冲区),Selector(选择器)。
java的文件IO编程知识总结- http://blog.csdn.net/qq_30567891/article/details/60743646?ref=myread
Java中的数据存储(堆及堆栈)- http://blog.csdn.net/qq_35101189/article/details/60566189?ref=myread
164个完整的Java源程序代码- http://download.csdn.net/detail/wujilang/9733140
[Java]Stack栈和Heap堆的区别(终结篇)-- http://android.blog.51cto.com/268543/50100/
java.util.Stack(LIFO)类简介 -- http://blog.csdn.net/a19881029/article/details/9408649
java.util.Queue(FIFO)用法-- http://www.cnblogs.com/linjiqin/archive/2013/05/30/3107656.html
Java多线程总结之线程安全队列Queue -- http://blog.csdn.net/madun/article/details/20313269
Java集合的Stack、Queue、Map的遍历 http://lavasoft.blog.51cto.com/62575/181781/
   在遍历集合时候,优先考虑使用foreach语句来做,这样代码更简洁些。
hibernate 值类型的set、bag、list和map (非实体bean类型的)--http://blog.csdn.net/partner4java/article/details/6888626
Java中 四种引用(强引用 软引用 弱引用 虚引用)- http://blog.csdn.net/zheng548/article/details/54577993
Java transient关键字使用小记- http://blog.csdn.net/qq_35101189/article/details/54572969?ref=myread
Java transient关键字使用方法- http://blog.csdn.net/qq_35101189/article/details/57074914
Java高级- http://blog.csdn.net/liuxian13183/article/category/1221047
Java 序列化的高级认识- http://blog.csdn.net/dlutbrucezhang/article/details/8761663
Java并发编程:性能、扩展性和响应- http://www.banzg.com/archives/825.html?ref=myread
Java正则表达式去掉Double类型的数据后面多余的0,使用BigDecimal保留double、float运算精度、保留指定位数有效数字、四舍五入-http://blog.csdn.net/q4878802/article/category/5817387

  Java有一个非常好的底层特性,叫做ClassLoader, 它可以让运行时路径分得更开。通常情况下,所有类都是由系统ClassLoader装载的;可是有些系统使用不同的ClassLoader将其运行时空间 进行了划分。Tomacat(或者其他Servlet引擎)就是一个很好的例子,每个Web应用都有一个ClassLoader。这样Web应用就不必去管(无论有意与否)在同一JVM中其他Web应用所定义的类。

> break、continue、return的区别:-- http://blog.csdn.net/makunyuan123/article/details/10276215
每一层中的break语句强制退出当前所在的循环;
  “continue + 标签  =  break”; return明确地从一个方法返回,即返回到调用该方法入口。
  break跳出循环,比如说,判断一个长度为20的数组中是否存在为0的值,在遍历的时候,找到第5个发现值是0,这时就可以跳出循环了,去说明结果,数组中存
在为0的值,没有必要去检查剩下15个是否有为0的。
  结束当前循环,continue,比如说求一个长度为20的所有正数的和,加到第8个数的时候,发现是它是负数,怎么办呢?跳出这一次循环,不求它的和,直接执
行后面的数的求和过程,这个时候就需要用continue,因为后面的数有可能有的是正数呀,必须得全部遍历完。

 指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能调用它的任意一个方法.这种动态获取信息,以及动态调用对象方
法的功能叫java语言的反射机制.
 final可以让你控制你的成员、方法或者是一个类是否可被覆写或继承等功能,
 注解(Annotation)是JDK1.5引入的新特性,包含在Java.lang.annotation包中。一个Annotation类型可以说是一个特殊的java接口。Annotations仅仅是元数据
,和业务逻辑无关。

-- 枚举、注解、反射、拦截器等。高并发,缓存,搜索,分布式等。
Java自定义注解的定义与使用(枚举、注解、反射)-- http://www.cnblogs.com/icerainsoft/p/3471749.html
  
> 1. public class HelloParent {
  public HelloParent() {
    System.out.println("Construction HelloParent ");
  }
  {
    System.out.println("Anonymous HelloParent ");
  }
  static {
    System.out.println("static HelloParent ");
  }
}
public class HelloSun extends HelloParent{
  public HelloSun() {
    System.out.println("Construction HelloSun ");
  }
 {
    System.out.println("Anonymous HelloSun ");
  }
  static {
     System.out.println("static HelloSun ");
  }
}

public class FunctionExeOrder {
  public static void main(String[] args) {
    new HelloSun();
  }
}
执行顺序及结果为:父类的静态方法 -> 子类的静态方法 -> 父类的匿名方法 -> 父类的构造方法 -> 子类的匿名方法 -> 子类的构造方法
 static HelloParent ;
 static HelloSun ;
 Anonymous HelloParent ;
 Construction HelloParent ;
 Anonymous HelloSun ;
 Construction HelloSun ;

2. public class TestStaitc {
  private static int aInt = 1;
  private static String bStr = "desaco";
  public static void main(String[] args) {
    staticMethod();
  }
  private static void staticMethod() {
    for (int i = 0; i <= 5; i++) {
       aInt = aInt + i;
       bStr = bStr + i;
       System.out.println("aInt="+aInt+",,,,,bStr="+bStr);
     }
  }
}
aInt=1,,,,,bStr=desaco0
aInt=2,,,,,bStr=desaco01
aInt=4,,,,,bStr=desaco012
aInt=7,,,,,bStr=desaco0123
aInt=11,,,,,bStr=desaco01234
aInt=16,,,,,bStr=desaco012345

-- 泛型:
extends 适用于get()方法 , 用来限制返回值类型;
super 适用于set()方法 , 用来限制参数类型。
public class Box {
        private T data;
        public T getData() {
            return data;
        }
        public void setData(T data) {
            this.data = data;
        }
    }

你可能感兴趣的:(Java,base)