java基础

动态代理

枚举  (Enum类)

反射

多线程(Thread和Runnable的区别

构造方法

java的main方法

java中static ,final

synchronized--多线程中的同步  - 在编写一个类时,如果该类中的代码可能运行与多线程环境下,就要考虑同步问题了。会同时被多个线程访问的资源,就是竞争资源,也称为竞争条件。对于多线程共享的资源我们必须进行同步,以避免一个线程的改动被另一个线程所覆盖。

成员变量与局部变量:

                        1、成员变量:在类体中定义的变量为成员变量,作用范围(scope)是整个类,只要在这个类中都可以访问到它。

                        2、局部变量:在一个方法或方法中的代码块(code block)中定义的变量。局部变量是在方法或代码块被执行的时候被创建,在方法或代码块结束时被销毁。局部变量在进行取值操作前必须被初始化或赋值,否则出现编译错误。

对象---“按照通俗的说法,每个对象都是某个类(class)的一个实例(instance),这里,‘类’就是‘类型’的同义词。”

       从这一句话就可以理解到对象的本质,简而言之,它就是类的实例,比如所有的人统称为“人类”,这里的“人类”就是一个类(物种的一种类型),而具体到每个人,比如张三这个人,它就是对象,就是“人类”的实例。

Java类和对象 详解(一)---https://blog.csdn.net/wei_zhi/article/details/52745268

Spring实战】----spring security4.1.3配置以及踩过的坑------https://blog.csdn.net/honghailiang888/article/details/53520557

Re:从零开始的Spring Security Oauth2(一)-----https://blog.csdn.net/u013815546/article/details/76898524

《Java编程思想》阅读笔记一----https://www.cnblogs.com/cpacm/p/5568405.html

再读《Java编程思想 》--https://blog.csdn.net/honghailiang888/article/details/70310887

java动态代理实现与原理详细分析------https://www.cnblogs.com/gonjan-blog/p/6685611.html

深入理解Java并发之synchronized实现原理--------https://blog.csdn.net/javazejian/article/details/72828483

详解Java反射各种应用----------https://www.cnblogs.com/qifengshi/p/6267511.html

synchronized作用范围及用法-------https://www.cnblogs.com/welcoming/p/3375664.html

java线程(上)Thread和Runnable的区别------https://www.cnblogs.com/yangdy/p/5274455.html

java中为什么需要public static void main(String[] args)这个方法------https://blog.csdn.net/aym_fuhong/article/details/52437740

Java基础之构造方法及其应用-----https://www.cnblogs.com/feia1236/p/5913991.html

Java Static和Final使用总结----https://www.cnblogs.com/panning/p/5686605.html

Java 枚举(enum) 详解7种常见的用法----https://blog.csdn.net/qq_27093465/article/details/52180865

JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。

大师兄我又加上自己的理解,来帮助各位理解一下。

用法一:常量

在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 

Java代码 
  1. public enum Color {  
  2.   RED, GREEN, BLANK, YELLOW  
  3. }  

用法二:switch

JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。 

Java代码 
  1. enum Signal {  
  2.     GREEN, YELLOW, RED  
  3. }  
  4. public class TrafficLight {  
  5.     Signal color = Signal.RED;  
  6.     public void change() {  
  7.         switch (color) {  
  8.         case RED:  
  9.             color = Signal.GREEN;  
  10.             break;  
  11.         case YELLOW:  
  12.             color = Signal.RED;  
  13.             break;  
  14.         case GREEN:  
  15.             color = Signal.YELLOW;  
  16.             break;  
  17.         }  
  18.     }  
  19. }  

用法三:向枚举中添加新方法

如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。 

Java代码 
  1. public enum Color {  
  2.     RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);  
  3.     // 成员变量  
  4.     private String name;  
  5.     private int index;  
  6.     // 构造方法  
  7.     private Color(String name, int index) {  
  8.         this.name = name;  
  9.         this.index = index;  
  10.     }  
  11.     // 普通方法  
  12.     public static String getName(int index) {  
  13.         for (Color c : Color.values()) {  
  14.             if (c.getIndex() == index) {  
  15.                 return c.name;  
  16.             }  
  17.         }  
  18.         return null;  
  19.     }  
  20.     // get set 方法  
  21.     public String getName() {  
  22.         return name;  
  23.     }  
  24.     public void setName(String name) {  
  25.         this.name = name;  
  26.     }  
  27.     public int getIndex() {  
  28.         return index;  
  29.     }  
  30.     public void setIndex(int index) {  
  31.         this.index = index;  
  32.     }  
  33. }  

用法四:覆盖枚举的方法

下面给出一个toString()方法覆盖的例子。 

Java代码 
  1. public enum Color {  
  2.     RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);  
  3.     // 成员变量  
  4.     private String name;  
  5.     private int index;  
  6.     // 构造方法  
  7.     private Color(String name, int index) {  
  8.         this.name = name;  
  9.         this.index = index;  
  10.     }  
  11.     //覆盖方法  
  12.     @Override  
  13.     public String toString() {  
  14.         return this.index+"_"+this.name;  
  15.     }  
  16. }  

用法五:实现接口

所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。 

Java代码 
  1. public interface Behaviour {  
  2.     void print();  
  3.     String getInfo();  
  4. }  
  5. public enum Color implements Behaviour{  
  6.     RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);  
  7.     // 成员变量  
  8.     private String name;  
  9.     private int index;  
  10.     // 构造方法  
  11.     private Color(String name, int index) {  
  12.         this.name = name;  
  13.         this.index = index;  
  14.     }  
  15. //接口方法  
  16.     @Override  
  17.     public String getInfo() {  
  18.         return this.name;  
  19.     }  
  20.     //接口方法  
  21.     @Override  
  22.     public void print() {  
  23.         System.out.println(this.index+":"+this.name);  
  24.     }  
  25. }  

用法六:使用接口组织枚举

 Java代码 

  1. public interface Food {  
  2.     enum Coffee implements Food{  
  3.         BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO  
  4.     }  
  5.     enum Dessert implements Food{  
  6.         FRUIT, CAKE, GELATO  
  7.     }  
  8. }  
    1.  
      /**
    2.  
      * 测试继承接口的枚举的使用(by 大师兄 or 大湿胸。)
    3.  
      */
    4.  
      private static void testImplementsInterface() {
    5.  
      for (Food.DessertEnum dessertEnum : Food.DessertEnum.values()) {
    6.  
      System.out.print(dessertEnum + " ");
    7.  
      }
    8.  
      System.out.println();
    9.  
      //我这地方这么写,是因为我在自己测试的时候,把这个coffee单独到一个文件去实现那个food接口,而不是在那个接口的内部。
    10.  
      for (CoffeeEnum coffee : CoffeeEnum.values()) {
    11.  
      System.out.print(coffee + " ");
    12.  
      }
    13.  
      System.out.println();
    14.  
      //搞个实现接口,来组织枚举,简单讲,就是分类吧。如果大量使用枚举的话,这么干,在写代码的时候,就很方便调用啦。
    15.  
      //还有就是个“多态”的功能吧,
    16.  
      Food food = Food.DessertEnum.CAKE;
    17.  
      System.out.println(food);
    18.  
      food = CoffeeEnum.BLACK_COFFEE;
    19.  
      System.out.println(food);
    20.  
原文地址:https://www.cnblogs.com/czlovezmt/p/9296792.html