zoukankan      html  css  js  c++  java
  • 每日记载内容总结50

    1. Maven中的dependencyManagement 意义【原文链接
      在Maven中dependencyManagement的作用其实相当于一个对所依赖jar包进行版本管理的管理器。
      pom.xml文件中,jar的版本判断的两种途径:
      (1):如果dependencies里的dependency自己没有声明version元素,那么maven就
      会到dependencyManagement里面去找有没有对该artifactId和groupId进行过版本声明,如果有,就继承它,如果没有就会报错,告诉你必须为dependency声明一个version 。
      (2):如果dependencies中的dependency声明了version,那么无论dependencyManagement中有无对该jar的version声明,都以dependency里的version为准。

       //只是对版本进行管理,不会实际引入jar  
       <dependencyManagement>  
             <dependencies>  
                   <dependency>  
                       <groupId>org.springframework</groupId>  
                       <artifactId>spring-core</artifactId>  
                       <version>3.2.7</version>  
                   </dependency>  
           </dependencies>  
       </dependencyManagement>  
         
       //会实际下载jar包  
       <dependencies>  
              <dependency>  
                       <groupId>org.springframework</groupId>  
                       <artifactId>spring-core</artifactId>  
              </dependency>  
       </dependencies>  
      
    2. StringUtils部分用法【原文链接

       /*替换字符串:把text中的searchString替换成replacement,max是最大替换次数,默认是替换所有*/
       StringUtils.replaceOnce("sshhhss","ss","p");//只替换一次-->结果是:phhhss
       StringUtils.replace("sshhhs","ss","p");//全部替换--->结果是:phhhs
       StringUtils.replace("sshhhsshss","ss","7777",2);//max:最大替换次数-->结果是:7777hhh7777hss
       StringUtils.replaceChars("sshhhs","ss","p");//替换所有字符,区别于replace--->结果是:pphhhp而不是pphhhs
      
    3. ManagementFactory
      ManagementFactory是一个为我们提供各种获取JVM信息的工厂类,使用ManagementFactory可以获取大量的运行时JVM信息,比如JVM堆的使用情况,以及GC情况,线程信息等,通过这些数据项我们可以了解正在运行的JVM的情况,以便我们可以做出相应的调整。

       RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
       String pid = runtimeMXBean.getSystemProperties().get("PID");
      
    4. SpringApplication配置项
      RegisterShutdownHook : Spring在非web应用中关闭IoC容
      setSources(Set sources) : 设置要加载的配置文件
      setWebEnvironment() : 改变webEnvironment 变量从而改变ApplicationContext的具体类型。当然,我们还可以通过setApplicationContextClass()方法来完全定制ApplicationContext。

    5. System.arraycopy()和Arrays.copyOf() (来源)

      System.arraycopy()#####
       public static native void arraycopy(Object src,int srcPos, Object dest, int destPos,int length);
      

      src - 源数组。
      srcPos - 源数组中的起始位置。
      dest - 目标数组。
      destPos - 目标数据中的起始位置。
      length - 要复制的数组元素的数量。

      该方法用了native关键字,说明调用的是其他语言写的底层函数。

      Arrays.copyOf()#####
       public static <T,U> T[] copyOf(U[] original, int newLength, Class<? extends T[]> newType) {
          @SuppressWarnings("unchecked")    
          T[] copy = ((Object)newType == (Object)Object[].class)?(T[]) new Object[newLength]:(T[])    
          Array.newInstance(newType.getComponentType(), newLength);System.arraycopy(original,0, copy,0,                       
          Math.min(original.length, newLength));    
          return copy;
       }
      

      该方法对应不同的数据类型都有各自的重载方法
      original - 要复制的数组
      newLength - 要返回的副本的长度
      newType - 要返回的副本的类型
      仔细观察发现,copyOf()内部调用了System.arraycopy()方法

      区别在于:

      arraycopy()需要目标数组,将原数组拷贝到你自己定义的数组里,而且可以选择拷贝的起点和长度以及放入新数组中的位置
      copyOf()是系统自动在内部新建一个数组,调用arraycopy()将original内容复制到copy中去,并且长度为newLength。返回copy; 即将原数组拷贝到一个长度为newLength的新数组中,并返回该数组。

      **
      Array.copyOf()可以看作是受限的System.arraycopy(),它主要是用来将原数组全部拷贝到一个新长度的数组,适用于数组扩容。
      如果是数组比较大,那么使用System.arraycopy会比较有优势:因为其使用的是内存复制,省去了大量的数组寻址访问等时间。**

    6. JDBC Type

    7. JDBC Type Java Type
      CHAR String
      VARCHAR String
      LONGVARCHAR String
      NUMERIC java.math.BigDecimal
      DECIMAL java.math.BigDecimal
      BIT boolean
      BOOLEAN boolean
      TINYINT byte
      SMALLINT short
      INTEGER INTEGER
      BIGINT long
      REAL float
      FLOAT double
      DOUBLE double
      BINARY byte[]
      VARBINARY byte[]
      LONGVARBINARY byte[]
      DATE java.sql.Date
      TIME java.sql.Time
      TIMESTAMP java.sql.Timestamp
      CLOB Clob
      BLOB Blob
      ARRAY Array
      DISTINCT mapping of underlying type
      STRUCT Struct
      REF Ref
      DATALINK java.net.URL

      MySQL的整型类型有这样几种:

      类型 占用字节
      tinyint 1
      smallint 2
      mediumint 3
      int 4
      bigint 8
    8. 相关阅读:
      Spring Boot 打包插件,真是太有用了!
      java高级应用:线程池全面解析
      漫画:HTTP 协议极简教程,傻瓜都能看懂!
      Tomcat 连接数与线程池详解
      Intellij IDEA Debug 调试技巧
      Java 程序员必须掌握的 5 个注解!
      如何优雅地终止一个线程?
      springmvc实现REST中的GET、POST、PUT和DELETE
      @Resource 和 @Autowired注解的异同
      SpringMVC的各种参数绑定方式
    9. 原文地址:https://www.cnblogs.com/cuiyf/p/10452399.html
    10. Copyright © 2011-2022 走看看