精华内容
参与话题
问答
  • JAVA 实用的工具类 汇总

    千次阅读 2018-05-30 11:34:41
    字符分隔工具类 java.util.StringTokenizer

    字符分隔工具类

    java.util.StringTokenizer

    展开全文
  • 常用的Java工具类——十六种

    千次阅读 2019-01-16 21:39:23
    在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类。以下工具类、方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码。 一. org.apache.commons.io...

    干货:排名前16的Java工具类

     

    在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类。以下工具类、方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码。

    一. org.apache.commons.io.IOUtils

    closeQuietly:关闭一个IO流、socket、或者selector且不抛出异常,通常放在finally块
    toString:转换IO流、 Uri、 byte[]为String
    copy:IO流数据复制,从输入流写到输出流中,最大支持2GB
    toByteArray:从输入流、URI获取byte[]
    write:把字节. 字符等写入输出流
    toInputStream:把字符转换为输入流
    readLines:从输入流中读取多行数据,返回List<String>
    copyLarge:同copy,支持2GB以上数据的复制
    lineIterator:从输入流返回一个迭代器,根据参数要求读取的数据量,全部读取,如果数据不够,则失败
    

    二. org.apache.commons.io.FileUtils

    deleteDirectory:删除文件夹
    readFileToString:以字符形式读取文件内容
    deleteQueitly:删除文件或文件夹且不会抛出异常
    copyFile:复制文件
    writeStringToFile:把字符写到目标文件,如果文件不存在,则创建
    forceMkdir:强制创建文件夹,如果该文件夹父级目录不存在,则创建父级
    write:把字符写到指定文件中
    listFiles:列举某个目录下的文件(根据过滤器)
    copyDirectory:复制文件夹
    forceDelete:强制删除文件
    

    三. org.apache.commons.lang.StringUtils

    isBlank:字符串是否为空 (trim后判断)
    isEmpty:字符串是否为空 (不trim并判断)
    equals:字符串是否相等
    join:合并数组为单一字符串,可传分隔符
    split:分割字符串
    EMPTY:返回空字符串
    trimToNull:trim后为空字符串则转换为null
    replace:替换字符串
    

    四. org.apache.http.util.EntityUtils

    toString:把Entity转换为字符串
    consume:确保Entity中的内容全部被消费。可以看到源码里又一次消费了Entity的内容,假如用户没有消费,那调用Entity时候将会把它消费掉
    toByteArray:把Entity转换为字节流
    consumeQuietly:和consume一样,但不抛异常
    getContentCharset:获取内容的编码
    

    五. org.apache.commons.lang3.StringUtils

    isBlank:字符串是否为空 (trim后判断)
    isEmpty:字符串是否为空 (不trim并判断)
    equals:字符串是否相等
    join:合并数组为单一字符串,可传分隔符
    split:分割字符串
    EMPTY:返回空字符串
    replace:替换字符串
    capitalize:首字符大写
    

    六. org.apache.commons.io.FilenameUtils

    getExtension:返回文件后缀名
    getBaseName:返回文件名,不包含后缀名
    getName:返回文件全名
    concat:按命令行风格组合文件路径(详见方法注释)
    removeExtension:删除后缀名
    normalize:使路径正常化
    wildcardMatch:匹配通配符
    seperatorToUnix:路径分隔符改成unix系统格式的,即/
    getFullPath:获取文件路径,不包括文件名
    isExtension:检查文件后缀名是不是传入参数(List<String>)中的一个
    

    七. org.springframework.util.StringUtils

    hasText:检查字符串中是否包含文本
    hasLength:检测字符串是否长度大于0
    isEmpty:检测字符串是否为空(若传入为对象,则判断对象是否为null)
    commaDelimitedStringToArray:逗号分隔的String转换为数组
    collectionToDelimitedString:把集合转为CSV格式字符串
    replace 替换字符串
    7. delimitedListToStringArray:相当于split
    uncapitalize:首字母小写
    collectionToDelimitedCommaString:把集合转为CSV格式字符串
    tokenizeToStringArray:和split基本一样,但能自动去掉空白的单词
    

    八. org.apache.commons.lang.ArrayUtils

    contains:是否包含某字符串
    addAll:添加整个数组
    clone:克隆一个数组
    isEmpty:是否空数组
    add:向数组添加元素
    subarray:截取数组
    indexOf:查找某个元素的下标
    isEquals:比较数组是否相等
    toObject:基础类型数据数组转换为对应的Object数组
    

    九. org.apache.commons.lang.StringEscapeUtils

    参考十五:org.apache.commons.lang3.StringEscapeUtils
    

    十. org.apache.http.client.utils.URLEncodedUtils

    format:格式化参数,返回一个HTTP POST或者HTTP PUT可用application/x-www-form-urlencoded字符串
    parse:把String或者URI等转换为List<NameValuePair>
    

    十一. org.apache.commons.codec.digest.DigestUtils

    md5Hex:MD5加密,返回32位字符串
    sha1Hex:SHA-1加密
    sha256Hex:SHA-256加密
    sha512Hex:SHA-512加密
    md5:MD5加密,返回16位字符串
    

    十二. org.apache.commons.collections.CollectionUtils

    isEmpty:是否为空
    select:根据条件筛选集合元素
    transform:根据指定方法处理集合元素,类似List的map()
    filter:过滤元素,雷瑟List的filter()
    find:基本和select一样
    collect:和transform 差不多一样,但是返回新数组
    forAllDo:调用每个元素的指定方法
    isEqualCollection:判断两个集合是否一致
    

    十三. org.apache.commons.lang3.ArrayUtils

    contains:是否包含某个字符串
    addAll:添加整个数组
    clone:克隆一个数组
    isEmpty:是否空数组
    add:向数组添加元素
    subarray:截取数组
    indexOf:查找某个元素的下标
    isEquals:比较数组是否相等
    toObject:基础类型数据数组转换为对应的Object数组
    

    十四. org.apache.commons.beanutils.PropertyUtils

    getProperty:获取对象属性值
    setProperty:设置对象属性值
    getPropertyDiscriptor:获取属性描述器
    isReadable:检查属性是否可访问
    copyProperties:复制属性值,从一个对象到另一个对象
    getPropertyDiscriptors:获取所有属性描述器
    isWriteable:检查属性是否可写
    getPropertyType:获取对象属性类型
    

    十五. org.apache.commons.lang3.StringEscapeUtils

    unescapeHtml4:转义html
    escapeHtml4:反转义html
    escapeXml:转义xml
    unescapeXml:反转义xml
    escapeJava:转义unicode编码
    escapeEcmaScript:转义EcmaScript字符
    unescapeJava:反转义unicode编码
    escapeJson:转义json字符
    escapeXml10:转义Xml10
    

    这个现在已经废弃了,建议使用commons-text包里面的方法。

    十六. org.apache.commons.beanutils.BeanUtils

    copyPeoperties:复制属性值,从一个对象到另一个对象
    getProperty:获取对象属性值
    setProperty:设置对象属性值
    populate:根据Map给属性复制
    copyPeoperty:复制单个值,从一个对象到另一个对象
    cloneBean:克隆bean实例
    

    现在你只要了解了以上16种最流行的工具类方法,你就不必要再自己写工具类了,不必重复造轮子。大部分工具类方法通过其名字就能明白其用途,如果不清楚的,可以看下别人是怎么用的,或者去网上查询其用法。

    根据阿里开发手册,包名如果要使用util不能带s,工具类命名为XxxUtils。

    展开全文
  • 这样才是写工具类

    千次阅读 2019-09-09 16:25:05
    什么是工具类? 这种 低级的问题还问的出来。 最近我发现 好多东西都是一看就懂。然而,自己不知道什么时候就能写出 shi 一样的代码。 这是因为编码时的构思,没有明确下来,构思不清晰,就相当于地基不稳。 ...

    在这里插入图片描述

    文章讲的很浅,道理大家都懂。写出来,是为了更好的贯彻它!
    
    与君共勉
    
    什么是工具类?

    在这里插入图片描述
    这种 低级的问题还问的出来。

    最近我发现 好多东西都是一看就懂。然而,自己不知道什么时候就能写出 shi 一样的代码。
    这是因为编码时的构思,没有明确下来,构思不清晰,就相当于地基不稳。

    接下来,我们以 TimeUtil为例讲解我的思考。


    TimeUtils编码时的考量

    偶然的一次CodeReview,发现TimeUtils竟然不知道什么时候,变乱了。

    我知道 我该重构了。可是在重构之前,我仔细反思了自己对这个类的维护。说到底还是思考不充分导致。

    没有经过思考的代码,是没有灵气的代码。

    大道至简

    我需要一个核心思想。于是,我开始琢磨。。

    思考描述

    及时的记录自己当时的想法,请写进CodeDesc中。

     * 在实际项目中,总可能会出现各种各样的时间格式,花样百出
     * 后端给N种格式,前端再转换再显示。
     * 讲道理,是要统一后端给的格式:时间戳。
     * 这个后端给的时间,是要结合时区的。唯有时间戳不可破。
     * 为了应对这种情况,前端必须适配。
     * 这是一个工具类,要具备通用性。
     * 这个类,应该提供各种类型转换成long的方法
     * 提供,long转换成各种格式的方法。(当然,时间格式,除了通用的都是模块自己提供)
     * 做法:
     * 1. 子模块,可以自己定义TimeConst。
     * 2. 子模块先将后端的返回字段,转换成long的时间戳
     * 2. 根据 子模块自定义的格式,转换成需要的格式。
     * <p>
     * 这个类包括:
     * 1、getTime从String、Date、Time获取时间戳
     * 2、从long时间戳,转化为各种格式
     * 3、String转Date
     * 4、String转Calendar
     * 5、或者你会需要扩展些功能。我建议将公共的部分塞到public里头去,必须做差。
    

    这份描述表达了我编写这个代码时的思考。
    这段文字写出来,这个类就算是实现了一半了;具体的编码实现就是具体的思考。

    思考永远是最重要的

    你的考量会给后面的同事带来很多便捷,节约大量的时间。


    工具类的初始化
        protected TimeUtils() {
            throw new UnsupportedOperationException("u can't instantiate me...");
        }
    
    getTime从String、Date、Time获取时间戳
        /**
         * Formatted time string to the milliseconds.
         *
         * @param time       The formatted time string.
         * @param timeFormat The format.
         * @return the milliseconds
         */
        public static long getTime(final String time, @NonNull final String timeFormat) {
            return getTime(time, new SimpleDateFormat(timeFormat));
        }
    
        /**
         * Formatted time string to the milliseconds.
         *
         * @param time   The formatted time string.
         * @param format The format.
         * @return the milliseconds
         */
        public static long getTime(final String time, @NonNull final DateFormat format) {
            try {
                return format.parse(time).getTime();
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return -1;
        }
    
        /**
         * 从Date转成时间戳
         *
         * @param date
         * @return
         */
        public static long getTime(@NonNull final Date date) {
            return date.getTime();
        }
    
        /**
         * 从Date转成时间戳
         *
         * @param date
         * @return
         */
        public static long getTime(@NonNull final Calendar date) {
            return getTime(date.getTime());
        }
        
        /**
         * 从Date转成时间戳
         *
         * @param date
         * @return
         */
        public static long getTime(@NonNull final Calendar date) {
            return getTime(date.getTime());
        }
    
    从long时间戳,转化为各种格式
    /**
         * Milliseconds to the formatted time string.
         *
         * @param millis     The milliseconds.
         * @param timeFormat The format.
         * @return the formatted time string
         */
        public static String millis2String(final long millis, @NonNull final String timeFormat) {
            return millis2String(millis, new SimpleDateFormat(timeFormat));
        }
    
        /**
         * UTC time to format
         *
         * @param utcTime
         * @param format  yyyy-MM-dd HH:mm:ss
         * @return
         */
        public static String formatTo(String utcTime, String format) {
            if (utcTime == null) {
                return "";
            }
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.SSSZ");
            Date result;
            try {
                result = df.parse(utcTime);
                SimpleDateFormat sdf = new SimpleDateFormat(format);
                sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
                return sdf.format(result);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return utcTime;
        }
    
        /**
         * Milliseconds to the formatted time string.
         *
         * @param millis The milliseconds.
         * @param format The format.
         * @return the formatted time string
         */
        public static String millis2String(final long millis, @NonNull final DateFormat format) {
            return format.format(new Date(millis));
        }
    
    String转Date
    
        /**
         * Formatted time string to the milliseconds.
         *
         * @param time   The formatted time string.
         * @param timeFormat The format.
         * @return the milliseconds
         */
        public static long string2Millis(final String time, @NonNull final String timeFormat) {
            return string2Millis(time, new SimpleDateFormat(timeFormat));
        }
    
        /**
         * Formatted time string to the milliseconds.
         *
         * @param time   The formatted time string.
         * @param format The format.
         * @return the milliseconds
         */
        public static long string2Millis(final String time, @NonNull final DateFormat format) {
            try {
                return format.parse(time).getTime();
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return -1;
        }
    
    String转Calendar
    
        /**
         * Formatted time string to the date.
         *
         * @param time       The formatted time string.
         * @param timeFormat The format.
         * @return the date
         */
        public static Date string2Date(final String time, @NonNull final String timeFormat) {
            return string2Date(time, new SimpleDateFormat(timeFormat));
        }
    
        /**
         * Formatted time string to the date.
         *
         * @param time   The formatted time string.
         * @param format The format.
         * @return the date
         */
        public static Date string2Date(final String time, @NonNull final DateFormat format) {
            try {
                return format.parse(time);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return null;
        }
    
    
        /**
         * Formatted time string to the date.
         *
         * @param time       The formatted time string.
         * @param timeFormat The format.
         * @return the date
         */
        public static Calendar string2Calendar(final String time, @NonNull final String timeFormat) {
            return string2Calendar(time, new SimpleDateFormat(timeFormat));
        }
    
        /**
         * Formatted time string to the date.
         *
         * @param time   The formatted time string.
         * @param format The format.
         * @return the date
         */
        public static Calendar string2Calendar(final String time, @NonNull final DateFormat format) {
            try {
                Calendar calendar = Calendar.getInstance();
                calendar.setTime(format.parse(time));
                return calendar;
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return null;
        }
    
    时间做差
    
    
        /**
         * 获取合适型两个时间差
         *
         * @param millis0   毫秒时间戳1
         * @param millis1   毫秒时间戳2
         * @param precision 精度
         *                  <p>precision = 0,返回null</p>
         *                  <p>precision = 1,返回天</p>
         *                  <p>precision = 2,返回天和小时</p>
         *                  <p>precision = 3,返回天、小时和分钟</p>
         *                  <p>precision = 4,返回天、小时、分钟和秒</p>
         *                  <p>precision &gt;= 5,返回天、小时、分钟、秒和毫秒</p>
         * @return 合适型两个时间差
         */
        public static int getFitTimeSpanV2(long millis0, long millis1, int precision) {
            return millis2FitTimeSpanV2(Math.abs(millis0 - millis1), precision);
        }
    
        @SuppressLint("DefaultLocale")
        public static int millis2FitTimeSpanV2(long millis, int precision) {
            if (millis <= 0) {
                return 0;
            }
            int[] unitLen = {86400000, 3600000, 60000, 1000, 1};
            long mode = 0;
            precision = Math.min(precision, 5);
            mode = millis / unitLen[precision];
            return (int) mode;
        }
    

    小结

    比起迅速开始编码工作,思考构思更重要。
    思考不充分,迟早会给你带来返工。

    程序员这份工作,总算很大的瓶颈。我时长想,这家伙跟我差不多,却为什么工资比我高辣么多。

    是思维决定了你的层次。凡事多思考。方有沉淀。

    这就是好多人常说的。10年经验,是10个1年经验,还是1个10年经验。
    有成长方有沉淀。

    没有经过思考的代码,是没有灵气的代码。

    大道至简,Linux的开创者,当初也只是因为一个想法。

    展开全文
  • 常用工具类(一)

    千次阅读 2018-04-26 21:04:21
    包装: 在Java中,每个基本类型在java.lang包中,都有相应的包装,把基本数据转换为对象,其中包装Integer是Number的直接子类。 基本数据类型: byte short int long float double char boolean 包装: ...

       包装类:

     在Java中,每个基本类型在java.lang包中,都有相应的包装类,把基本数据转换为对象,其中包装类Integer是Number的直接子类。 

        基本数据类型: byte  short   int    long    float  double  char  boolean

        包装类:      Byte  Short  Integer  Long   Float  Double Character  Boolean  
        Number类,从定义可知,它是一个抽象类,主要表示数值。
        子类包括:Byte Short Integer  Long Float  Double Boolean和Character类

        Number 直接父类: Object类

    注意:包装类可以定义属性和方法,属于引用数据类型,默认值为null。

    自动装箱和自动拆箱:

        在JDK1.5更改为自动完成,自动装箱--基本数据类型转变为包装类的过程--例如:Integer i = 5;

                                               自动拆箱--包装类转变为基本数据类型的过程--例如:Int a = new Integer(5);

     为什么要使用包装类,包装类的作用。

    答:因为java语言是面向对象的语言,但是java中的基本数据类型却不是面向对象的,而在实际的使用中经常需要将基本数据转化成对象,便于操作。比如说在集合中存储数据时,只能存储对象
    作用:
    [1]作为和基本数据类型对应的类型存在,方便涉及到对象的操作
    [2]包含每种基本数据类型相关的属性以及相关的操作方法

        String转Int:

    包装类Integer的静态方法可以将字符串类型的数字“123”转换成基本整型变量n,它的实现语句是Interger.parseInt(“123”);

    注意:1.此方法是静态方法,所以允许类名称直接调用。

             2此方法抛出异常,属于运行时异常。出现异常的情况:实参是字符串,此字符串如果包含非数字型字符,则会出现该异常。

    String类型:----是一个表示字符串的类,使用final修饰,不能派生子类。存在很多方法操作字符串。(引用数据类型)

     String s ="a"+”b”+”c” 创建    1       个对象。

    注意:String类使用连接符,如果字符串使用连接符+进行连接时,在JVM进行编译时会自动优化,把多个字符串连接成一个字符串,是在内部完成,并不是产生多个对象。

    1.trim()方法:

      String类的trim()方法作用是去掉字符串左右两端的空格  

                  -----trim()方法,表示只能去掉字符串左右两端的空格,中间部分的空格它无能无力。    

    2.subString(int index, int end)方法:截取字符串,包括index不包括end。

    实例:"hamburger".substring(4, 8) 返回的结果是“urge”//[0,1]取的是h

    3.concat(String)方法:把指定的字符串连接到此字符转的结尾。

        注意:(1)如果字符串长度为0,进行调用此方法,返回的是新字符串。例如:String s =“”;//字符串长度为零--

                     s= s.concat(“abc”); // 连接字符串”abc”,返回的是”abc”

                  (2)如果字符串为null,调用此方法,出现空指针异常。例如String s = null;  s= s.concat(“abc”);//出现异空指针常。

    4.toUpperCase()方法:toUpperCase()方法,把字符串的字母字符全部变为大写

    5.length()方法;求字符串的长度。注意:数组求长度是arr.length,集合求大小是size()方法。

    String类中“==”比较和equals()方法比较:

          (1)如果使用比较运算符”==”比较的是引用数据类型,则他们比较的是对象在内存当中的地址值是否相同;如果比较的是基本数据类型,则他们比较的是各自所代表的具体的值,来判断是否相同。

          (2)equals(Object obj) 方法,String类重写了equals()方法,表示两个对象所包含的内容是否相同;不是比较的地址值

          (3)每通过一个new关键字,创建对象,都会重新在堆内存当中开辟空间,所以分配的引用地址值也不同。

          (4)如果字符串出现了一次之后,会在字符串常量池中进行存储,如果再出现,则字符串常量池中不会再开辟空间,而是引用一下即可。内存分析例子如下两图:

     可变字符串序列StringBuffer/StringBuilder:

        在不改变字符串内存地址的情况下,允许改变字符串的内容,java语言中存在这两个类,StringBuffer和StringBuilder。

    注意:(1)都被final修饰的类,不能派生子类。

               (2)都可以表示字符串,都属于java.lang包中的类。

                (3)直接父类都是Object。

                (4)StringBuffer线程安全,效率低,StringBuilder线程非安全,效率高。

         String、StringBuffer、StringBuilder区别与联系。

    答:联系: (1) 三者之间都可以表示字符串,(2) 三者都使用final修饰,都不能派生子类,同时他们的共同的直接父类:Object(3) StringBuffer和StringBuilder都是可变字符序列,底层数组结构都是char类型的数组,方法功能也很相似。

    区别:

     String表示字符序列不可变,StringBuffer和StringBuilder表示字符序列可变。

    StringBuffer:jdk1.0版,线程安全,但是效率低

    StringBuilder:jdk1.5版,线程不安全,但是效率高

      String str=”bjsxt”;和String str= new String(“bjsxt”);的区别

    答:相同点:两者都可以创建对象。

         不同点:String str = “bjsxt”;首先会在字符串常量池中进行查找,如果有,则不再创建, 反之进行创建,同时它没有在堆内存中进行创建,而是直接在字符串常量池中创建;

          String str = new String(“bjsxt”);它会在堆内存中创建对象,在字符串常量池中进行查找,如果存在直接引用即可。

    日期类:

     Java.util.Date包含一个和它同名的子类,它就是java.sql.Date类。 父类提供了无参构造方法,子类没有无参构造方法。

    DateFormat类:

        日期格式化类,可以实现字符串和日期类型之间的格式转换,其中将日期类型转换为指定字符串格式的方法名是format

      注意:(1)此类是一个抽象类,如果想实例化对象,需要借助子类完成。

         (2)此类只有一个子类,它就是SimpleDateFormat类,根据构造方法,传入日期格式,同时调用format方法,传入Date类型的实参。




    Math类:

    random()方法:

    使用Math.random( )返回带正号的 double值,该值大于等于0.0且小于1.0。使用该函数生成[30,60]之间的随机整数的语句是(int)(Math.random()*31+30);

        随机产生数[a,b]的公式如下: (int)(Math.random()*(b-a+1)+a);注意:random方法的范围[0,1].......

             说明:a b都是整数类型,而且都表示闭区间,也就是包含a和b。

    pow(x,y)方法:求x的y次方。

    Enum类:

       JDK1.5后提供了enum关键字,用以定义枚举类。枚举类是一种特殊的类,可以有自己的属性、方法和构造方法。

       注意:  (1) 枚举类型是JDK1.5之后出现的新特性

                   (2) 对于枚举最大的作用和体现:只能定义全局常量,可以代替接口中定义的常量

                   (3) for-each语句中,数据类型可以是枚举类型

                            实例:for(枚举类型   变量名称:枚举名称.values()){

                                               System.out.println(变量名称);

                                       }

                    (4)枚举是一种特殊的”类”,继承抽象类Enum,父类中存在很多的方法,允许子类 使用,发现父类的方法都是普通方法且使用final修饰。

                     (5)enum不能使用extends继承其他类,因为它默认继承了java.lang.Enum


    展开全文
  • Util工具类

    万次阅读 2017-10-30 14:51:46
    Util工具类
  • 工具类

    2019-12-20 19:59:43
    Collections工具类 在程序中,针对集合的操作非常频繁,。针对这些常见操作,JDK提供了一个工具类专门来操作集合,这个操作类就是Collections,它位于java.util包中。Collections类中提供了大量的方法用来对于集合中...
  • 工具类

    2020-05-19 17:26:31
    一.逻辑 1.加载配置文件创建工厂(实体... (4)在创建EntityManager对象通过配置文件创建数据库表中映射的实体对象 总结:创建EntityManager对象比较浪费资源. 特点:线程安全。 3.开启事务 4.执行sql语句【增
  • 工具类

    2020-07-13 07:15:19
    * 发送邮件工具类 */ public final class MailUtil { /** * 发送邮件 * 参数一:发送邮件给谁 * 参数二:发送邮件的内容 */ public static void sendMail(String toEmail, String emailMsg)
  • 分享几个常用的工具类

    千次阅读 2018-12-05 21:37:57
    几个常用的工具类,照片,文件,时间,网络工具
  • Java工具类合集

    2018-11-28 22:16:53
    java工具类合集,开源框架。
  • 常用工具类

    2020-04-24 16:23:44
    /** * 从url获取ip、port和地址信息 * 例如 入参:rtmp://10.0.0.1:6666/live/a174658f3ba9483e9c597fb7c4d2bd2d_sub * 出参:[10.0.0.1, 6666, /live/a174658f3ba9483e9c597fb7c4d2bd2d_sub] ...
  • 在项目规范中,要求类名以DO为尾的作为数据库层实体bean,类名以MO为尾的作为系统传输层实体bean,类名以VO为尾的作为服务端与前端交互的实体bean。由于以上要求,需要在各个bean直接进行copy数据,除了傻瓜式...
  • Android快速开发系列 10个常用工具类

    万次阅读 多人点赞 2014-09-05 09:27:33
    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38965311,本文出自【张鸿洋的博客】打开大家手上的项目,基本都会有一大批的辅助类,今天特此整理出10个基本每个项目中都会使用的工具类,用于...
  • 人工智能,零基础入门!... 我们知道,在spring项目中,只有都是容器中的bean才可以互取【依赖注入】,比如说userController和userService都是容器中的实例bean,所以在userController中可以注入userService。...
  • /** * @description:驼峰与下划线之间互转工具类 * @author:boob * @since:2020/2/9 */ public class CamelCaseUtil { private static final char SEPARATOR = '_'; public CamelC...
  • 整理收集的一些常用java工具类

    万次阅读 多人点赞 2017-08-20 19:42:14
    整理收集的一些常用java工具类
  • 在项目开发中,经常用调用http接口,下面是封装apache的httpclient工具类。 二、样例代码: package org.egg.utils; import org.apache.http.client.config.RequestConfig; import org.apach...
  • Java之——导出Excel通用工具类

    万次阅读 多人点赞 2018-03-22 21:11:15
    转载请注明出处:... ... 一、概述 相信大家在工作过程中,都会遇到这样一个需求,就是将相关的数据列表导出成excel,那么,有没有通用的导出方式呢,这里,...
  • java工具类(六)根据经纬度计算距离

    万次阅读 2015-08-14 10:21:42
    在项目开发过程中,需要根据两地经纬度坐标计算两地间距离,所用的工具类如下: Demo1: public static double getDistatce(double lat1, double lat2, double lon1, double lon2) { double R = 6371; double ...
  • Java8中的LocalDateTime工具类

    万次阅读 多人点赞 2017-07-22 22:57:14
    网上搜索了半天都没有找到Java8的LocalDateTime的工具类,只好自己写了一个,常用功能基本都有。还在用Date的Java同道该换换了。 个人项目地址:https://github.com/KingBoyWorld/common.git,Common模块中有很多...

空空如也

1 2 3 4 5 ... 20
收藏数 2,089,834
精华内容 835,933
关键字:

工具类