java基础

作者: 齐_33e8 | 来源:发表于2018-11-09 10:50 被阅读0次

数组与List之间的转换

数组—>List
  1. 引用类型数组可以直接使用 Arrays.asList()

     String[] strings = {"1", "2", "3"};    
     List<String> list4 = Arrays.asList(strings);
    

    或者

     List<String> list4 = Arrays.asList("1", "2", "3");
    
  2. 基本类型数组转换不能使用Arrays.asList()

     List<Integer> list = Arrays.asList(intarray); 
    

    上面代码编译通不过,因为asList接受的参数是一个泛型的变长参数,而基本数据类型是无法泛型化的。使用:

    List<Integer> lsit5 = Arrays.asList(1,2,3);
    

    或者

    List<int[]> list = Arrays.asList(intarray);
    

    可以通过,那么对于基本类型数组转换,可以使用guava类库或者其他库的工具方法如:

    Ints.asList(intarray);
    
  3. 说明:asList方法返回的是数组的一个视图,视图意味着,对这个list的操作都会反映在原数组上,而且这个list是定长的,不支持add、remove等改变长度的方法。

list—>array
  1. 列表转换为数组的方法

     list.toArray()
     list.toArray(T[] t)
    

java注解

三个内置注解
  1. @Override : 重写父类方法
  2. @Deprecated : 弃置或者不建议使用的方法
  3. @SuppressWarnings: 释放警告,可以去除一些编译器的警告
四个元注解(注解的注解):
  1. @Retention: 定义注解的保留周期,其包含三个不同的值

    @Retention(RetentionPolicy.SOURCE) // 注解仅仅存在于源码中,不存在与字节码中
    @Retention(RetentionPolicy.CLASS) // 默认周期, 字节码中存在,运行时不存在
    @Retention(RetentionPolicy.RUNTIME) // 运行时存在
    
  2. @Target: 定义注解的作用目标

    @Target(ElementType.TYPE)   //接口、类、枚举、注解
    @Target(ElementType.FIELD) //字段、枚举的常量
    @Target(ElementType.METHOD) //方法
    @Target(ElementType.CONSTRUCTOR)  //构造函数
    @Target(ElementType.ANNOTATION_TYPE)//注解
    @Target(ElementType.PACKAGE) ///包  
    @Target(ElementType.LOCAL_VARIABLE)//局部变量
    @Target(ElementType.PARAMETER) //方法参数
    
  3. @Document:说明该注解将被包含在javadoc中

  4. @Inherited:说明子类可以继承父类中的该注解

注解的属性
  1. 注解属性的定义

    • 注解的属性的定义方式与类的定义有所区别,类似于一个无参的抽象方法

      @Target(ElementType.TYPE)
      @Retention(RetentionPolicy.RUNTIME)
      public @Interface Test{
          int type();  
          String value() default "1";
      }
      
  2. 注解属性的赋值

      @Test(type = 1, value = "2")
      public Class TestTemp{
       }
    

       @Test(type = 1)
      public Class TestTemp{  由于value存在默认值,所以可以不用再次赋值
       }
    

BigDecimal的equal()方法与compareTo方法

  • 代码展示:
    BigDecimal bigDecimal = new BigDecimal("100.0");
    BigDecimal bigDecimal2 = new BigDecimal("100.0000");
    System.out.println(bigDecimal.equals(bigDecimal2)); // false
    System.out.println(bigDecimal.compareTo(bigDecimal2) == 0);// true
    
  • 原因:
    • equals(): 不仅会比较值的大小,还会比较两个对象的精确度
    • compareTo() 不会比较精确度,只比较数值的大小
  • 建议: 在对象的设计时,尽量保证equals()与compareTo() 方法保持一致。

相关文章

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

  • 技术体系

    一,java核心 java基础,jvm,算法,多线程,设计模式 Java基础:java基础相关,全栈java基础 ...

  • 面试题汇总

    1.Java基础面试问题 Java基础之基础问题 Java基础之面向对象 Java基础之数据结构 Java基础之I...

  • 【Android】知识点汇总,坚持原创ing

    Android基础 Java基础 Java基础——Java内存模型和垃圾回收机制 语法基础 语法基础——C语法基础...

  • Java基础:反射

    反射注解动态代理相关阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 ...

  • Java基础:注解

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 概述 注解...

  • Java基础:动态代理

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 概述 在运行时,...

  • Java 集合类原理

    Java基础——HashMap源码分析 Java基础——HashSet源码分析 Java基础——HashTable...

  • Java基础:类加载器

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 什么是类加...

  • java基础(一)-String、StringBuffer、St

    java基础-String、StringBuffer、StringBuilder java基础小白,初学java,...

网友评论

    本文标题:java基础

    本文链接:https://www.haomeiwen.com/subject/japnxqtx.html