`
dada_fangfang
  • 浏览: 146234 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java工具类--整理(持续更新)

阅读更多
    /**
     * 将某个日期以固定格式转化成字符串
     * 
     * @param date
     * @return String
     */
    public static String dateToStr(java.util.Date date)
    {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String str = sdf.format(date);
        return str;
    }

    /**
     * 判断任意一个整数是否素数
     * 
     * @param n
     * @return boolean
     */
    public static boolean isPrimes(int n)
    {
        for (int i = 2; i <= Math.sqrt(n); i++)
        {
            if (n % i == 0)
            {
                return false;
            }
        }
        return true;
    }

    /**
     * 将指定byte数组以16进制的形式打印到控制台
     * 
     * @param hint
     *            String
     * @param b
     *            byte[]
     * @return void
     */
    public static void printHexString(String hint, byte[] b)
    {
        System.out.print(hint);
        for (int i = 0; i < b.length; i++)
        {
            String hex = Integer.toHexString(b[i] & 0xFF);
            if (hex.length() == 1)
            {
                hex = '0' + hex;
            }
            System.out.print(hex.toUpperCase() + " ");
        }
        System.out.println("");
    }


/**
     * 人民币转成大写
     * 
     * @param value
     * @return String
     */
    public static String hangeToBig(double value)
    {
        char[] hunit = { '拾', '佰', '仟' }; // 段内位置表示
        char[] vunit = { '万', '亿' }; // 段名表示
        char[] digit = { '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' }; // 数字表示
        long midVal = (long) (value * 100); // 转化成整形
        String valStr = String.valueOf(midVal); // 转化成字符串

        String head = valStr.substring(0, valStr.length() - 2); // 取整数部分
        String rail = valStr.substring(valStr.length() - 2); // 取小数部分

        String prefix = ""; // 整数部分转化的结果
        String suffix = ""; // 小数部分转化的结果
        // 处理小数点后面的数
        if (rail.equals("00"))
        { // 如果小数部分为0
            suffix = "整";
        }
        else
        {
            suffix = digit[rail.charAt(0) - '0'] + "角" + digit[rail.charAt(1) - '0'] + "分"; // 否则把角分转化出来
        }
        // 处理小数点前面的数
        char[] chDig = head.toCharArray(); // 把整数部分转化成字符数组
        char zero = '0'; // 标志'0'表示出现过0
        byte zeroSerNum = 0; // 连续出现0的次数
        for (int i = 0; i < chDig.length; i++)
        { // 循环处理每个数字
            int idx = (chDig.length - i - 1) % 4; // 取段内位置
            int vidx = (chDig.length - i - 1) / 4; // 取段位置
            if (chDig[i] == '0')
            { // 如果当前字符是0
                zeroSerNum++; // 连续0次数递增
                if (zero == '0')
                { // 标志
                    zero = digit[0];
                }
                else if (idx == 0 && vidx > 0 && zeroSerNum < 4)
                {
                    prefix += vunit[vidx - 1];
                    zero = '0';
                }
                continue;
            }
            zeroSerNum = 0; // 连续0次数清零
            if (zero != '0')
            { // 如果标志不为0,则加上,例如万,亿什么的
                prefix += zero;
                zero = '0';
            }
            prefix += digit[chDig[i] - '0']; // 转化该数字表示
            if (idx > 0)
                prefix += hunit[idx - 1];
            if (idx == 0 && vidx > 0)
            {
                prefix += vunit[vidx - 1]; // 段结束位置应该加上段名如万,亿
            }
        }

        if (prefix.length() > 0)
            prefix += '圆'; // 如果整数部分存在,则有圆的字样
        return prefix + suffix; // 返回正确表示
    }


    /**
     * 全角字符转半角字符
     * 
     * @param QJStr
     * @return String
     */
    public static final String QJToBJChange(String QJStr)
    {
        char[] chr = QJStr.toCharArray();
        String str = "";
        for (int i = 0; i < chr.length; i++)
        {
            chr[i] = (char) ((int) chr[i] - 65248);
            str += chr[i];
        }
        return str;
    }


    /**   
     * 根据指定方法的参数去构造一个新的对象的拷贝并将他返回
     * @param obj 原始对象
     * @return 新对象
     * @throws NoSuchMethodException    
     * @throws InvocationTargetException    
     * @throws IllegalAccessException    
     * @throws InstantiationException    
     * @throws SecurityException    
     * @throws IllegalArgumentException    
     */
    @SuppressWarnings("unchecked")
    public static Object copy(Object obj) throws IllegalArgumentException, SecurityException, InstantiationException, IllegalAccessException,
                    InvocationTargetException, NoSuchMethodException
    {
        //获得对象的类型    
        Class classType = obj.getClass();

        //通过默认构造方法去创建一个新的对象,getConstructor的视其参数决定调用哪个构造方法    
        Object objectCopy = classType.getConstructor(new Class[]{}).newInstance(new Object[]{});

        //获得对象的所有属性    
        Field[] fields = classType.getDeclaredFields();

        for(int i = 0; i < fields.length; i++)
        {
            //获取数组中对应的属性    
            Field field = fields[i];

            String fieldName = field.getName();
            String stringLetter = fieldName.substring(0, 1).toUpperCase();

            //获得相应属性的getXXX和setXXX方法名称    
            String getName = "get" + stringLetter + fieldName.substring(1);
            String setName = "set" + stringLetter + fieldName.substring(1);

            //获取相应的方法    
            Method getMethod = classType.getMethod(getName, new Class[]{});
            Method setMethod = classType.getMethod(setName, new Class[]{field.getType()});

            //调用源对象的getXXX()方法    
            Object value = getMethod.invoke(obj, new Object[]{});

            //调用拷贝对象的setXXX()方法    
            setMethod.invoke(objectCopy, new Object[]{value});
        }

        return objectCopy;
    }


MySQL:    
    String Driver="com.mysql.jdbc.Driver";    //驱动程序
    String URL="jdbc:mysql://localhost:3306/db_name";    //连接的URL,db_name为数据库名    
    String Username="username";    //用户名
    String Password="password";    //密码
    Class.forName(Driver).new Instance();
    Connection con=DriverManager.getConnection(URL,Username,Password);
Microsoft SQL Server 2.0驱动(3个jar的那个):
    String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";    //连接SQL数据库的方法
    String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name";    //db_name为数据库名
    String Username="username";    //用户名
    String Password="password";    //密码
    Class.forName(Driver).new Instance();    //加载数据可驱动
    Connection con=DriverManager.getConnection(URL,UserName,Password);    //
Microsoft SQL Server 3.0驱动(1个jar的那个): // 老紫竹完善
    String Driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";    //连接SQL数据库的方法
    String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name";    //db_name为数据库名
    String Username="username";    //用户名
    String Password="password";    //密码
    Class.forName(Driver).new Instance();    //加载数据可驱动
    Connection con=DriverManager.getConnection(URL,UserName,Password);    //
Sysbase:
    String Driver="com.sybase.jdbc.SybDriver";    //驱动程序
    String URL="jdbc:Sysbase://localhost:5007/db_name";    //db_name为数据可名
    String Username="username";    //用户名
    String Password="password";    //密码
    Class.forName(Driver).newInstance();    
    Connection con=DriverManager.getConnection(URL,Username,Password);
Oracle(用thin模式):
    String Driver="oracle.jdbc.driver.OracleDriver";    //连接数据库的方法
    String URL="jdbc:oracle:thin:@loaclhost:1521:orcl";    //orcl为数据库的SID
    String Username="username";    //用户名
    String Password="password";    //密码
    Class.forName(Driver).newInstance();    //加载数据库驱动
    Connection con=DriverManager.getConnection(URL,Username,Password);    
PostgreSQL:
    String Driver="org.postgresql.Driver";    //连接数据库的方法
    String URL="jdbc:postgresql://localhost/db_name";    //db_name为数据可名
    String Username="username";    //用户名
    String Password="password";    //密码
    Class.forName(Driver).newInstance();    
    Connection con=DriverManager.getConnection(URL,Username,Password);
DB2:
    String Driver="com.ibm.db2.jdbc.app.DB2.Driver";    //连接具有DB2客户端的Provider实例
    //String Driver="com.ibm.db2.jdbc.net.DB2.Driver";    //连接不具有DB2客户端的Provider实例
    String URL="jdbc:db2://localhost:5000/db_name";    //db_name为数据可名
    String Username="username";    //用户名
    String Password="password";    //密码
    Class.forName(Driver).newInstance();    
    Connection con=DriverManager.getConnection(URL,Username,Password);
Informix:
    String Driver="com.informix.jdbc.IfxDriver";    
    String URL="jdbc:Informix-sqli://localhost:1533/db_name:INFORMIXSER=myserver";    //db_name为数据可名
    String Username="username";    //用户名
    String Password="password";    //密码
    Class.forName(Driver).newInstance();    
    Connection con=DriverManager.getConnection(URL,Username,Password);
JDBC-ODBC:
    String Driver="sun.jdbc.odbc.JdbcOdbcDriver";
    String URL="jdbc:odbc:dbsource";    //dbsource为数据源名
    String Username="username";    //用户名
    String Password="password";    //密码
    Class.forName(Driver).newInstance();    
    Connection con=DriverManager.getConnection(URL,Username,Password);

分享到:
评论

相关推荐

    全网最齐全的Java面试题库-附答案-持续更新.zip

    4. **多线程**:线程的创建方式(Thread类和Runnable接口),线程同步(synchronized,volatile,Lock等),并发工具类(ExecutorService,Semaphore,CyclicBarrier等)。 5. **内存管理与垃圾回收**:Java内存...

    google-java-format一个重新格式化Java源代码以符合GoogleJavaStyle的程序

    `google-java-format` 是一款强大的工具,专门用于自动格式化Java源代码,使其遵循Google制定的Java编程风格指南,即`Google Java Style Guide`。这款工具旨在提高代码的可读性和一致性,减少因代码格式问题引发的...

    C转java工具

    6. **持续维护**:随着项目的进展,可能需要继续添加新的C代码并进行转换,同时对已转换的代码进行维护和更新。 总的来说,"C转Java工具"为开发者提供了一种便捷的方式,帮助他们将现有的C代码迁移到Java平台,减少...

    java-senior-development-engineer-interview-notes-master.zip

    这份"java-senior-development-engineer-interview-notes-master.zip"压缩包显然是为了帮助准备这类面试而精心整理的资源。以下是基于这个主题可能涉及的一些核心知识点的详细解释: 1. **Java基础知识**:理解Java...

    Java开发-awesome-java-master.zip

    Awesome Java是一个精心整理的、包含大量高质量Java项目的列表,这些项目涵盖了各种类别,如框架、库、工具、教程、文章等,旨在为Java开发者提供一个一站式的学习和实践平台。"master"通常代表这是该项目的主分支,...

    这些年整理的一些常用Utils工具类 , 希望对大家开发有所裨益

    这里提到的"这些年整理的一些常用Utils工具类"是一份集合了多种功能的Java工具库,旨在为开发人员提供便利。以下将详细介绍其中可能包含的知识点: 1. **Utils工具类的设计理念**: - 工具类通常设计为静态方法...

    自己用的工具类,自己写的

    3. 代码备份的重要性:备份工具类可以防止代码丢失,便于恢复和持续开发,也是知识积累的一种方式。 4. 个人备忘录的价值:记录个人技术解决方案,方便回顾和分享,促进技术成长。 5. 服务端工具类的特点:可能包含...

    2015-09-12-Java虚拟机详解----JVM常见问题总结【面试必问】

    Java虚拟机(JVM)是Java程序运行的核心组件,它负责解释执行字节码并管理内存。本篇文章将深入探讨JVM的一些常见问题,这些内容对于理解和优化Java应用程序至关重要,同时也是面试中的高频考察点。 一、JVM内存...

    自己整理的Toast(吐司)工具类.txt

    ### ToastUtil工具类详解 #### 一、简介 在Android开发过程中,经常需要用到Toast来向用户展示短暂的信息提示。为了方便地使用Toast功能,并避免代码重复编写,本篇将介绍一个自定义的Toast工具类——`ToastUtil`...

    java面试题-外企软件工程师面试题大全

    4. **多线程**:Java提供了丰富的多线程支持,如Thread类、Runnable接口、synchronized关键字、volatile、ThreadLocal等,以及并发工具类如Semaphore、CyclicBarrier、CountDownLatch。 5. **内存管理与垃圾回收**...

    高校教师教研信息填报系统论文-java-文档-高校教师教研信息填报系统文档

    - **持续集成与部署(CI/CD)**:利用Maven自动构建项目,并配合持续集成工具实现自动化部署。 #### 七、总结 “高校教师教研信息填报系统”是一款集成了现代信息技术的高效管理工具,不仅解决了传统管理方式中存在的...

    java面试题整理集合

    - **并发工具类**:如CountDownLatch、CyclicBarrier、Semaphore等。 7. **反射** - **Class对象**:获取类的信息,动态创建对象和调用方法。 - **方法反射**:运行时动态调用方法,处理方法的参数和返回值。 -...

    Java项目上线Class导出工具 更新版本V2.0

    Java项目上线过程中,Class导出工具是开发人员和运维团队常用的一种实用程序,它能够帮助开发者将编译后的Java类文件(.class)打包、整理并进行必要的处理,以便于项目的部署和运行。随着技术的发展和用户需求的...

    JAVA核心知识点整理——java自学资料.rar

    15. **单元测试与持续集成**:JUnit和Mockito等工具的使用,以及持续集成工具如Jenkins的配置和使用,有助于确保代码质量。 通过深入学习这些Java核心知识点,并结合实践,开发者不仅可以提升个人技能,也能更好地...

    JAVA核心知识点整理.pdf

    在Java中,可以通过关键字synchronized和java.util.concurrent包中的工具类如ReentrantLock来实现线程同步。Java的多线程并发模型基于线程和锁的机制,以及引入了volatile关键字、CAS操作(Compare-And-Swap)、原子...

    java面试——深圳-商汤科技-Java高级.zip

    了解线程同步机制,如synchronized关键字、wait/notify机制、Lock锁、ReentrantLock等,以及并发工具类如ExecutorService、Semaphore、CyclicBarrier等,都是面试中的常见问题。 3. **内存管理与垃圾收集**:Java的...

    JAVA教程集合汇总-从入门到入土【汇总多年-史上最详细】呕心沥血整理

    这份呕心沥血整理的资料库,不仅包含了基础理论,还涵盖了实践应用,是Java学习者的宝贵财富。 一、Java入门基础 在学习Java之初,首先要掌握基础语法,包括变量、数据类型、运算符、流程控制(如if语句、switch、...

    java类源码-JavaDemos-1::rainbow:收录了「IT无知君」CSDN博客中涉及的Java项目源码,还有许多的开发工具类,都是我自己在用在不断

    收录了「IT无知君」CSDN博客中涉及的项目源码,新技术论证,还有许多的开发工具类,本仓库在持续更新中,敬请期待... 功能 daily-demos 模块 收录了我日常的练习代码,里面多一些新技术,新插件的测试,验证没问题后...

    Java Knowledge - Miscelaneous

    2. **多线程**:Java中的线程创建与管理,线程同步机制(如synchronized关键字,wait()和notify()方法),以及并发工具类如Semaphore、CountDownLatch等。 3. **集合框架**:List、Set、Queue和Map接口的实现类,...

    如何学习java--(牛人指点路线)

    J2SE是基础,提供了Java开发工具包(JDK);而J2EE则针对企业级应用,涵盖了J2ME和J2SE的特性。 对于初学者,首先要扎实掌握J2SE的基础知识,包括语法、面向对象编程、集合框架、IO流、多线程等核心概念。理解Java...

Global site tag (gtag.js) - Google Analytics