/**
* 将某个日期以固定格式转化成字符串
*
* @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);
分享到:
相关推荐
4. **多线程**:线程的创建方式(Thread类和Runnable接口),线程同步(synchronized,volatile,Lock等),并发工具类(ExecutorService,Semaphore,CyclicBarrier等)。 5. **内存管理与垃圾回收**:Java内存...
`google-java-format` 是一款强大的工具,专门用于自动格式化Java源代码,使其遵循Google制定的Java编程风格指南,即`Google Java Style Guide`。这款工具旨在提高代码的可读性和一致性,减少因代码格式问题引发的...
6. **持续维护**:随着项目的进展,可能需要继续添加新的C代码并进行转换,同时对已转换的代码进行维护和更新。 总的来说,"C转Java工具"为开发者提供了一种便捷的方式,帮助他们将现有的C代码迁移到Java平台,减少...
这份"java-senior-development-engineer-interview-notes-master.zip"压缩包显然是为了帮助准备这类面试而精心整理的资源。以下是基于这个主题可能涉及的一些核心知识点的详细解释: 1. **Java基础知识**:理解Java...
Awesome Java是一个精心整理的、包含大量高质量Java项目的列表,这些项目涵盖了各种类别,如框架、库、工具、教程、文章等,旨在为Java开发者提供一个一站式的学习和实践平台。"master"通常代表这是该项目的主分支,...
这里提到的"这些年整理的一些常用Utils工具类"是一份集合了多种功能的Java工具库,旨在为开发人员提供便利。以下将详细介绍其中可能包含的知识点: 1. **Utils工具类的设计理念**: - 工具类通常设计为静态方法...
3. 代码备份的重要性:备份工具类可以防止代码丢失,便于恢复和持续开发,也是知识积累的一种方式。 4. 个人备忘录的价值:记录个人技术解决方案,方便回顾和分享,促进技术成长。 5. 服务端工具类的特点:可能包含...
Java虚拟机(JVM)是Java程序运行的核心组件,它负责解释执行字节码并管理内存。本篇文章将深入探讨JVM的一些常见问题,这些内容对于理解和优化Java应用程序至关重要,同时也是面试中的高频考察点。 一、JVM内存...
### ToastUtil工具类详解 #### 一、简介 在Android开发过程中,经常需要用到Toast来向用户展示短暂的信息提示。为了方便地使用Toast功能,并避免代码重复编写,本篇将介绍一个自定义的Toast工具类——`ToastUtil`...
4. **多线程**:Java提供了丰富的多线程支持,如Thread类、Runnable接口、synchronized关键字、volatile、ThreadLocal等,以及并发工具类如Semaphore、CyclicBarrier、CountDownLatch。 5. **内存管理与垃圾回收**...
- **持续集成与部署(CI/CD)**:利用Maven自动构建项目,并配合持续集成工具实现自动化部署。 #### 七、总结 “高校教师教研信息填报系统”是一款集成了现代信息技术的高效管理工具,不仅解决了传统管理方式中存在的...
- **并发工具类**:如CountDownLatch、CyclicBarrier、Semaphore等。 7. **反射** - **Class对象**:获取类的信息,动态创建对象和调用方法。 - **方法反射**:运行时动态调用方法,处理方法的参数和返回值。 -...
Java项目上线过程中,Class导出工具是开发人员和运维团队常用的一种实用程序,它能够帮助开发者将编译后的Java类文件(.class)打包、整理并进行必要的处理,以便于项目的部署和运行。随着技术的发展和用户需求的...
15. **单元测试与持续集成**:JUnit和Mockito等工具的使用,以及持续集成工具如Jenkins的配置和使用,有助于确保代码质量。 通过深入学习这些Java核心知识点,并结合实践,开发者不仅可以提升个人技能,也能更好地...
在Java中,可以通过关键字synchronized和java.util.concurrent包中的工具类如ReentrantLock来实现线程同步。Java的多线程并发模型基于线程和锁的机制,以及引入了volatile关键字、CAS操作(Compare-And-Swap)、原子...
了解线程同步机制,如synchronized关键字、wait/notify机制、Lock锁、ReentrantLock等,以及并发工具类如ExecutorService、Semaphore、CyclicBarrier等,都是面试中的常见问题。 3. **内存管理与垃圾收集**:Java的...
这份呕心沥血整理的资料库,不仅包含了基础理论,还涵盖了实践应用,是Java学习者的宝贵财富。 一、Java入门基础 在学习Java之初,首先要掌握基础语法,包括变量、数据类型、运算符、流程控制(如if语句、switch、...
收录了「IT无知君」CSDN博客中涉及的项目源码,新技术论证,还有许多的开发工具类,本仓库在持续更新中,敬请期待... 功能 daily-demos 模块 收录了我日常的练习代码,里面多一些新技术,新插件的测试,验证没问题后...
2. **多线程**:Java中的线程创建与管理,线程同步机制(如synchronized关键字,wait()和notify()方法),以及并发工具类如Semaphore、CountDownLatch等。 3. **集合框架**:List、Set、Queue和Map接口的实现类,...
J2SE是基础,提供了Java开发工具包(JDK);而J2EE则针对企业级应用,涵盖了J2ME和J2SE的特性。 对于初学者,首先要扎实掌握J2SE的基础知识,包括语法、面向对象编程、集合框架、IO流、多线程等核心概念。理解Java...