java
Java日期工具类?
一、Java日期工具类?
Java日期工具类:可以进行日期转化、今天日期、昨天日期、明天日期、指定日期,非常实用。
想必程序员在开发过程中,遇到日期转化肯定避免不了的。它让人爱恨不已,而有些又记不住,每次遇到都得问度娘。我最近在开发过程中亦是如此。
为了让自己更好的记忆,方便以后遇到日期类型转化相关开发。因此,自己作了适当的整理,编写了一个Java日期工具类,包括获得今天日期、昨天日期、明天日期、日期和字符串之间转化等相关转化。希望这个日期工具类,也能提高你对日期转化的开发效率。
日期工具类:DateTools.java
package com.geshanzsq;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* 日期工具类
* @author 格姗知识圈
*/
public class DateTools {
/**
* 日期转化为指定日期格式类型
* @param date 日期
* @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss
* @return
*/
public static String dateToString(Date date,String pattern){
SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式
String date_str = sdf.format(date);//日期转化为指定格式
return date_str;
}
/**
* 日期字符串转化为指定日期格式类型
* @param date_str 日期字符串
* @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss
* @return
* @throws ParseException
*/
public static Date stringToDate(String date_str,String pattern) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式
Date date = sdf.parse(date_str);//日期转化为指定格式
return date;
}
/**
* 获得今天日期
* @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss
* @return
*/
public static String getToday(String pattern){
Date date = new Date();//今天日期
SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式
String today = sdf.format(date);//日期转化为指定格式
return today;
}
/**
* 获得明天日期
* @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss
* @return
*/
public static String getTomorrow(String pattern){
Date date = new Date();//今天日期
Calendar cal = new GregorianCalendar();
cal.setTime(date);//设置时间
cal.add(Calendar.DATE,1);//把日期往后增加一天.整数往后推,负数往前移动
date = cal.getTime();//这个时间就是日期往后推一天的日期结果,即明天日期
SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式
String tommorrow = sdf.format(date);//明天日期
return tommorrow;
}
/**
* 获得昨天日期
* @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss
* @return
*/
public static String getYesterday(String pattern){
Date date = new Date();//今天日期
Calendar cal = new GregorianCalendar();
cal.setTime(date);//设置时间
cal.add(Calendar.DATE,-1);//把日期往后增加一天.整数往后推,负数往前移动
date = cal.getTime();//这个时间就是日期往前推一天的日期结果,即昨天日期
SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式
String yesterday = sdf.format(date);//昨天日期
return yesterday;
}
/**
* 获得指定日期的后一天
* @param date 指定日期
* @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss
* @return
* @throws ParseException
*/
public static Date getAfterDay(Date date,String pattern) throws ParseException {
Calendar cal = new GregorianCalendar();
cal.setTime(date);//设置时间
cal.add(Calendar.DATE,1);//把日期往后增加一天.整数往后推,负数往前移动
date = cal.getTime();//这个时间就是日期往后推一天的日期结果,即后一天日期
SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式
String next_date_str = sdf.format(date);//后一天日期
//将日期字符串转化为指定日期格式类型
Date after_date = stringToDate(next_date_str,pattern);
return after_date;
}
/**
* 获得指定日期的后一天
* @param date_str 指定日期字符串
* @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss
* @return
* @throws ParseException
*/
public static String getAfterDay(String date_str,String pattern) throws ParseException {
//将日期字符串转化为指定日期格式类型
Date date = stringToDate(date_str,pattern);
Calendar cal = new GregorianCalendar();
cal.setTime(date);//设置时间
cal.add(Calendar.DATE,1);//把日期往后增加一天.整数往后推,负数往前移动
date = cal.getTime();//这个时间就是日期往后推一天的日期结果,即后一天日期
SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式
String after_date_str = sdf.format(date);//后一天日期
return after_date_str;
}
/**
* 获得指定日期的前一天
* @param date 指定日期
* @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss
* @return
* @throws ParseException
*/
public static Date getBeforetDay(Date date,String pattern) throws ParseException {
Calendar cal = new GregorianCalendar();
cal.setTime(date);//设置时间
cal.add(Calendar.DATE,-1);//把日期往后增加一天.整数往后推,负数往前移动
date = cal.getTime();//这个时间就是日期往后推一天的日期结果,即前一天日期
SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式
String before_date_str = sdf.format(date);//前一天日期
//将日期字符串转化为指定日期格式类型
Date before_date = stringToDate(before_date_str,pattern);
return before_date;
}
/**
* 获得指定日期的前一天
* @param date_str 指定日期字符串
* @param pattern 日期格式类型,如yyyy-MM-dd,yyyy年MM月dd日 HH:mm:ss
* @return
* @throws ParseException
*/
public static String getBreforeDay(String date_str,String pattern) throws ParseException {
//将日期字符串转化为指定日期格式类型
Date date = stringToDate(date_str,pattern);
Calendar cal = new GregorianCalendar();
cal.setTime(date);//设置时间
cal.add(Calendar.DATE,-1);//把日期往后增加一天.整数往后推,负数往前移动
date = cal.getTime();//这个时间就是日期往后推一天的日期结果,即前一天日期
SimpleDateFormat sdf = new SimpleDateFormat(pattern);//日期格式
String before_date_str = sdf.format(date);//前一天日期
return before_date_str;
}
}
测试类:Test.java
package com.hrg;
import java.text.ParseException;
/**
* 测试类
* @author 格姗知识圈
*/
public class Test {
public static void main(String[] args) throws ParseException {
//日期格式类型
String pattern = "yyyy-MM-dd";
//获得今天日期
System.out.println("---------获得今天日期---------");
String today = DateTools.getToday(pattern);
System.out.println("今天日期:"+today);
//获得明天日期
System.out.println("---------获得明天日期---------");
String tomorrow = DateTools.getTomorrow(pattern);
System.out.println("明天日期:"+tomorrow);
//获得昨天日期
System.out.println("---------获得昨天日期---------");
String yesterday = DateTools.getYesterday(pattern);
System.out.println("昨天日期:"+yesterday);
//获得指定日期的后一天
System.out.println("---------获得指定日期的后一天---------");
String date_str = "2018-10-03";
System.out.println("指定日期:"+date_str);
String after_date = DateTools.getAfterDay(date_str,pattern);
System.out.println("指定日期的后一天:"+after_date);
//获得指定日期的后一天
System.out.println("---------获得指定日期的前一天---------");
System.out.println("指定日期:"+date_str);
String before_date = DateTools.getBreforeDay(date_str,pattern);
System.out.println("指定日期的前一天:"+before_date);
}
}
运行结果:
---------获得今天日期---------
今天日期:2018-11-20
---------获得明天日期---------
明天日期:2018-11-21
---------获得昨天日期---------
昨天日期:2018-11-19
---------获得指定日期的后一天---------
指定日期:2018-10-03
指定日期的后一天:2018-10-04
---------获得指定日期的前一天---------
指定日期:2018-10-03
指定日期的前一天:2018-10-02
你看完之后,相信对日期转化有了更好的了解。当然,代码里面有部分是冗余的,主要是为了方便让大家清晰看懂。你看懂理解后,可以根据业务需要进行适当的修改。
二、txt如何变成java?
直接把 .txt后缀改为 .java (是不是你那没有文件后缀啊,选择窗口上面【工具】-【文件夹选项】-【查看】(勾选“隐藏已知文件类型的扩展名)我不知道是不是你问的意思一般记事本里面编完就是改后缀即可 在doc cmd 里面运行用NetBeans 或Eclipse啥的打开
三、java最好的开发工具?
IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn、github等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的
四、java什么叫工具类?
我觉得这个问题好像一句话就能概括,Java工具类就是可以实现某个特定功能的类。
当然这个类必须具有一个特点,就是可重用性。如果一段代码仅仅在程序中使用一次,那么抽取出来的意义就不大。只有当某段代码需要在多个地方使用时,就可以考虑对这段代码进行抽取。
Java中的工具类大概分两种:已有的和自己编写的。由于Java已经存在了十几年,且一直很火。除了JDK自带的一些工具类外,现在还有不少由别的企业或组织写的工具类。比如:Apache的各种XXUtils, Hutool的各种utils等。如果有现成的工具类,我们还是直接引用就好。但是,有时候网上的工具类并无法满足我们的业务需求,这时候就需要自己编写。
五、jar变成java
将jar变成java:Java 程序如何转换
在软件开发的过程中,我们经常会遇到将 .jar 文件转换为 .java 源代码的需求。这种情况下,我们需要从已编译的 Java 存档文件中还原代码,以便查看或进行进一步的分析。虽然 .jar 文件包含了编译后的 Java 字节码,并非所有工具都能够完全将其转换回 .java 源文件。本文将介绍一些方法和工具,帮助您将 .jar 文件转换为可读的 .java 源代码。
使用 Decompilers 还原 .jar 文件
一种常见的方法是使用 Decompilers 工具,这些工具可以将 .jar 文件还原成近似的 .java 源代码。常用的反编译工具包括 JD-GUI、JAD 和 Procyon。这些工具可以帮助开发人员快速且相对准确地将 .jar 文件转换为可读的 .java 源代码。
JD-GUI:强大的 Decompiler 工具
JD-GUI 是一款免费的 Java 反编译工具,可用于将 .jar 文件还原成 .java 源代码。它提供了直观的用户界面,支持对类、方法和字段进行导航,使得反编译过程更加便捷。开发人员可以使用 JD-GUI 快速地查看 .jar 文件的源代码,以帮助理解和调试程序。
JAD:快速的反编译工具
JAD 是另一款常用的反编译工具,它可以快速地将 .jar 文件转换为 .java 源代码。JAD 的优点在于速度快,适合对小型 .jar 文件进行快速的反编译操作。虽然 JAD 在精确性和功能上可能不如其他工具,但其快速的反编译速度使其成为一款值得尝试的工具。
Procyon:高质量的反编译工具
Procyon 是另一款高质量的反编译工具,它提供了优秀的反编译性能和精确的源代码还原能力。Procyon 支持多种 Java 版本,能够处理复杂的 .jar 文件结构,并生成具有良好格式的 .java 源代码。开发人员可以依赖 Procyon 进行高质量的 .jar 文件反编译操作。
注意事项
在进行 .jar 文件到 .java 源代码的转换过程中,需要注意以下几点:
- 反编译工具的选择会影响到转换结果的准确性和可读性,建议根据需求选择合适的工具。
- 部分 .jar 文件可能由于编译优化等原因无法完全还原为可读的 .java 源代码。
- 转换后的 .java 源代码可能会存在命名不规范或格式不整齐的情况,需要进行进一步的调整和美化。
结语
将 .jar 文件转换为可读的 .java 源代码是开发过程中常见的需求,通过使用适合的反编译工具,开发人员可以快速地实现这一转换过程。无论是使用 JD-GUI、JAD 还是 Procyon,都可以为您提供转换 .jar 文件的便利性和可行性。在进行源代码反编译时,务必注意选择合适的工具以及对结果进行进一步的检查和修正,以确保转换结果的准确性和可读性。
六、java byte变成float
在Java编程中,经常会遇到需要将byte
类型转换为float
类型的情况。在进行数据类型转换时,我们需要注意不同数据类型之间的精度和范围。本文将介绍如何将byte
类型转换为float
类型,并讨论可能遇到的一些问题和解决方案。
1. 数据类型转换
在Java中,数据类型之间的转换可以分为隐式转换和显式转换两种。当我们将较小范围的数据类型转换为较大范围的数据类型时,会发生隐式转换。而当我们将较大范围的数据类型转换为较小范围的数据类型时,就需要进行显式转换。
2. 将byte转换为float
在将byte
类型转换为float
类型时,我们需要考虑数据范围和精度的差异。在Java中,byte
类型是8位有符号整数,范围为-128到127,而float
类型是32位单精度浮点数,范围为大约1.4E-45到3.4E+38。
由于float
类型的范围更大,可以表示更广泛的数值,因此将byte
转换为float
是一个安全的操作。在进行转换时,可以直接使用强制类型转换符进行显式转换。
byte b = 10;
float f = (float) b;
在上面的示例中,我们将byte
类型的变量b
转换为float
类型的变量f
。通过在b
前面加上强制类型转换符(float)
,即可实现数据类型的转换。
3. 可能出现的问题
在将byte
类型转换为float
类型时,可能会遇到一些问题,特别是在数据精度方面。由于float
类型是浮点数,存在精度损失的情况。
当将byte
类型中的整数转换为float
类型时,可能会出现四舍五入或精度丢失的情况。这是因为float
类型只能精确表示一定范围内的小数,而byte
类型是整数,两者的精度不同。
4. 解决方案
为了解决在将byte
转换为float
过程中可能出现的精度问题,可以采取以下几种方法:
- 将
byte
类型转换为double
类型,再将double
转换为float
类型,可以提高精度。 - 使用
BigDecimal
类进行精确计算,避免浮点数计算可能出现的误差。 - 在转换时考虑数据范围和精度,确保转换后的数据符合要求。
通过以上方法,可以有效解决byte
转换为float
可能出现的精度问题,确保数据转换的准确性和稳定性。
5. 总结
在Java编程中,将byte
类型转换为float
类型是一种常见的操作。在进行转换时,需要注意数据范围和精度的差异,以及可能出现的精度问题。
通过本文的介绍和解决方案,相信读者对如何将byte
转换为float
有了更深入的了解。在实际开发中,根据具体情况选择合适的转换方法,可以更好地应对不同数据类型间的转换需求。
七、word全变成java
word全变成java对于许多编程初学者来说,可能是一个充满挑战的过程。不过,通过认真学习和练习,逐渐掌握这些概念并不是不可能的。
word全变成java的重要性
在当今数字化时代,掌握编程语言已经变得至关重要。而将所有的word全变成java,是一个很好的开始。Java作为一种跨平台的编程语言,被广泛应用于各种领域,包括软件开发、移动应用开发等。
从基础开始
要想将所有的word全变成java,首先需要从Java的基础知识开始。理解变量、数据类型、运算符等基本概念是非常重要的。只有打牢基础,才能更好地理解后续的高级概念。
深入学习
一旦掌握了基础知识,就可以深入学习Java的各种高级特性,比如面向对象编程、异常处理、多线程编程等。这些知识将帮助你写出更高效、更健壮的Java程序。
实践是最好的老师
除了理论知识,实践也是学习编程的重要部分。尝试编写各种不同的Java程序,从简单的Hello World到复杂的应用程序,逐渐提升自己的编程技能。
与社区互动
在学习的过程中,加入Java开发者社区可以帮助你更快速地成长。在社区中,你可以向他人请教问题、分享经验,并结识志同道合的伙伴。
持之以恒
学习编程是一个持久的过程,需要不断地学习和实践。坚持不懈,每天都花一些时间学习,你将会看到自己的进步。
结语
将所有的word全变成java,是一个需要耐心和毅力的过程。但只要你坚持下去,相信自己,你一定会成功的。加油!
八、文件全部变成java
如何将文件全部变成java代码?
当我们在进行软件开发的过程中,经常会遇到需要将一些特定格式的文件转换成Java代码的情况。这类文件可能包括配置文件、数据文件、甚至是其他编程语言的代码文件。在本文中,我们将讨论如何有效地将文件全部变成Java代码,以便在Java项目中使用。
1. 了解文件格式
首先,要将文件转换成Java代码,我们需要充分了解这些文件的格式和内容。不同类型的文件有不同的结构和语法规则,因此在转换过程中必须对文件进行仔细分析,确保转换后的Java代码能够正确表达文件的含义。
2. 使用工具辅助转换
为了提高转换效率和准确性,我们可以借助一些工具来帮助我们将文件变成Java代码。有些工具可以根据文件类型自动进行转换,而有些工具则需要我们提供一些配置信息来指导转换过程。无论使用哪种工具,都可以大大简化我们的工作流程。
3. 编写转换脚本
对于一些特定类型的文件,可能无法找到现成的工具来进行转换。这时,我们可以考虑编写自己的转换脚本,通过编程的方式将文件内容转换成Java代码。这种方式需要一定的编程知识,但可以实现高度定制化的转换过程。
4. 测试和调试
在完成文件转换后,我们必须进行测试和调试工作,确保转换后的Java代码能够正常运行并达到预期的效果。这一步至关重要,可以帮助我们发现并解决转换中可能出现的问题和错误。
5. 针对特定需求优化
在将文件全部变成Java代码的过程中,我们可能会遇到一些特定的需求和挑战。这时,我们可以针对这些需求进行优化,比如提高转换效率、优化代码结构等,以使转换结果更符合我们的预期。
结论
将文件全部变成Java代码是一项常见的任务,对于软件开发来说具有重要意义。通过了解文件格式、使用工具辅助转换、编写转换脚本、测试和调试以及针对特定需求优化等步骤,我们可以高效地完成这一任务,为项目的顺利进行提供有力支持。
九、最好的java反编译工具是哪个?
Java反编译工具使用对比,最好用的Java反编译工具 --- JD-GUI、XJad
一、前言
1、什么是反编译?
大家都知道,将源代码转换成二进制执行代码的过程叫“编译”,比如将C源代码编译成.exe可执行文件;那么把二进制执行代码转换成源代码的过程就叫“反编译”,比如把exe转换为C源代码就叫“反编译”。
由于主流的C的编译器都进行了代码的优化,因此把C编译生成的exe文件反编译成C代码非常困难。但是像Java、.net这样基于虚拟机技术的编程语言则反编译非常容易,Java平台下有Jad、Jode、JD等反编译器,.net平台下则有Reflector等反编译器,他们的反编译质量非常高,甚至和源代码几乎没什么差别。
2、反编译得到的是源代码吗?
反编译得到的代码是非常接近于源代码,但是或多或少与源代码有一些差异的,比如一些表达式被优化掉了,比如,下面的源代码:
int i=1+1;
学过《编译原理》的同学知道有“常量优化”这个编译优化算法,因此上边的源代码一般会被优化为:int i=2;
由于在编译过程中已经进行了优化,把“1+1”这个原始的信息丢掉了,因此反编译出来的代码只能是:
int i=2;
可以看到反编译得到的代码和源代码是有区别的。
比如:andriod中
download = (Button)findViewById(R.id.xiaz);
被优化成了download = (Button)findViewById(0x7f070018);
3、程序可以反编译岂不是很不安全?
可以采用代码混淆等技术来加大反编译的难度,和降低反编译代码的可读性,但是完全避免反编译是不可能的。
4、反编译器的原理是什么?
由于Java、.net这样的基于虚拟机技术的语言平台,都是采用了Byte Code的二进制结构,因此很容易将ByteCode转化为“抽象语法树”(简称AST,《编译原理》这门课中的概念),然后采用反编译器就可以将AST转换为代码了。
另外,一线大厂非常重视基础技术水平,面试的时候如果连基础问题都回答不上来将直接被淘汰!给大家分享一份Java必备面试题及答案,很多小伙伴靠它顺利进入一线大厂!
码农面试资料君:Java面试题及答案:基础知识+算法+思维导图,助你快速准备Java面试问题,顺利进入大厂!二、反编译工具和插件有哪些?
1、 JD-GUI【推荐】
JD-GUI是属于Java Decompiler项目(JD项目)下个的图形化运行方式的反编译器。
JD-Eclipse属于Java Decompiler项目(JD项目)下个Eclipse插件化运行方式的反编译插件。
JD-IntelliJ属于Java Decompiler项目(JD项目)下个Intellij插件化的运行方式的反编译插件。
JD-GUI 是一个用 C++ 开发的 Java 反编译工具,由 Pavel Kouznetsov开发,支持Windows、Linux和苹果Mac Os三个平台。而且提供了Eclipse平台下的插件JD-Eclipse,Intellij平台下的插件JD-Intellij。JD-GUI不需要安装,直接点击运行,可以反编译jar,class文件。
支持jar包级的反编译,可将整个jar包直接保存为*.src.zip源代码包,反编译迅速,错误率极少。
JD分为JD-GUI、JD-Eclipse/JD-Intellij两种运行方式,JD-GUI是以单独的程序的方式运行,JD-Eclipse/JD-Intellji则是以一个Eclipse/IDEA插件的方式运行。
Java Decompiler项目”旨在开发一些工具,以便反编译和分析Java 5以及更高本的Java的“字节代码”。
JD-Core是一个库,是一个从一个或多个“.class”文件中重建Java源代码的库。JD-Core可用于恢复丢失的源代码并探索运行时Java的源代码。支持Java 5的新功能,例如注释,泛型或类型“枚举”。JD-GUI和JD-Eclipse包括JD-Core库。
2、Jad
jad是一款使用非常广泛地Java反编译工具,Jadclipse就是基于jad的反编译插件,JAD 文件包含 MIDlet 套件的标题信息,例如开发应用程序的公司、应用程序名称和大小。
3、XJad
(比较好用,不过目前版本是2.2,是2006发布的了,一直没更新了,而且有bug,不推荐了)
XJad是基于Jad核心的Java源程序反编译软件,内置Jad1.5.8e2;
可处理多个*.class文件,可以处理文件夹内的所有文件,甚至可以处理*.jar文件;
带有多页面文本编辑器,也可集成在资源管理器中,随时点击右键都可进行操作;
支持java语法的高亮显示;
4、Luyten
比较精准的一个java反编译工具,没用过,用的人比较少。
......
还有很多反编译工具,但是主要推荐JD-GUI,其次是XJad。
----------------------
反编译工具下载:
1、JD-GUI(Java反编译工具) 0.3.6 绿色免费版.zip 【免安装,直接解压运行】-CSDN下载 JD-GUI(Java反编译工具)0.3.6绿色免费版.zip-Java工具类资源-CSDN下载
2、Java反编译工具(XJad) v2.2 中文绿色版.zip 【免安装,直接解压运行】-CSDN下载 Java反编译工具(XJad)v2.2中文绿色版.zip【免安装,直接解压运行】-Java代码类资源-CSDN下载
三、反编译工具JD-GUI的使用
作为一个软件开发人员,在自学的成长道路上,不可避免的会借鉴别人开发完成的功能实现方法,js/css/html可以通过浏览器直接捕获,没有源码的能拿到calss文件也是一件幸事,那么如何查看class文件呢?这就要用到反编译工具了。
1. JD-GUI这款Java反编译工具是纯绿色,完全免费的,非常适合开发者,其界面也简洁大方
2. 鼠标单击“file”从中选择“Open File ...“选项,弹出一个文件选择框,可以选择要打开的文件,或者直接单击文件夹图标,直接弹出文件选择框
3. 从打开的文件的左侧可以看到文件的保存位置,类及方法,右侧显示类的具体内容,注释不会显示,同时它会把这个类所在的包下的其他类也反编译成源码:
如需将预览的.class文件转换成.java文件,只需点击File菜单里的save即可。
4. 还有一种方法是直接打开jar包,鼠标单击文件夹图标,弹出文件选择框,选择一个jar包,单击‘确定’
5. 从打开的界面中可以看到整个jar包中的.class文件的反编译结果
另外,想要跳槽进大厂的同学,一定要好好学算法,这是面试必备的。这里准备了一份 BAT 大佬总结的 LeetCode 刷题宝典,很多人靠它们进了大厂。
码农面试资料君:leetcode刷题指南:中文题库+答案题解+刷题笔记,妈妈再也不用担心我不懂怎么刷题啦~顺便说一下XJad 的使用(使用方法和JD-GUI都差不多),虽然版本比较老,且官方10多年没更新了,算是已经放弃了。
不过也可以可用:
使用说明:
========
1、打开一个或者多个*.class文件,XJad反编译后,重命名为*.java文件,
保存至当前文件夹,并在编辑器中打开查看;
2、打开一个文件夹,XJad将该文件夹下所有*.class文件进行反编译,并保存至该文件夹下,
依据包路径信息生成文件夹路径,如com.spring.framework.*,
将建立com\spring\framework的文件夹结构;
3、打开一个*.jar文件,XJad将该Jar文件中的所有*.class文件解压缩到临时目录并进行反编译,
并将源文件带包路径信息保存至当前文件夹下名称为“~” + *.jar 的文件夹中;
1. 单个文件反编译
反编译好之后,会在原来的.class所在文件夹下生成一个同名的.java源码文件:
且XJad会自动打开反编译后生成的源码文件:
2. 整个文件夹反编译,可以选择一个文件夹,XJad会把该文件夹下的所有.class文件全部反编译好。
比如,我的D盘新建一个文件夹,FindPassword,里面只有个FindPasswordController.class文件
然后选择 反编译文件夹:
确定之后:
提示已经反编译成功,我们现在到 D:\FindPassword 里查看,里面已经生成了一个按层次结构排行的源码文件包了
点进去看一下,文件夹里有刚反编译好的源码文件了:
记事本打开看一下,源码正常,只是没有了注释了
3. jar包反编译
确定之后
反编译之后,会在jar包所在的文件下,生成一个以“~”开头的源码文件夹:
打开进去看一下:
好了,JD-GUI 和 XJad的使用介绍到此介绍了。
----------------------
工具下载:
1、JD-GUI(Java反编译工具) 0.3.6 绿色免费版.zip-CSDN下载 JD-GUI(Java反编译工具)0.3.6绿色免费版.zip-Java工具类资源-CSDN下载
2、Java反编译工具(XJad) v2.2 中文绿色版.zip 【免安装,直接解压运行】-CSDN下载 Java反编译工具(XJad)v2.2中文绿色版.zip【免安装,直接解压运行】-Java代码类资源-CSDN下载
————————————————
版权声明:本文为CSDN博主「有范管理美学」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:Java反编译工具使用对比,最好用的Java反编译工具 --- JD-GUI、XJad
很多读者朋友也经常找我要一些算法资料,于是我找来了 BAT 大神要了让他们顺利进大厂的资料。
这些资料不仅包含了所有题目的解答,还提供了完整思路!并且也对各种常见题型进行归纳总结,还有多语言版本的题解,对新手朋友简直是个大大的福利!
码农面试资料君已经将资料打包好了,获取方式如下↓↓↓
程序员进阶架构师必备资源免费送另外,强烈再推荐三份资料:
Java面试题及答案:基础知识+算法+思维导图SpringBoot教程:学习路线+面试题Java进阶视频教程:面试题+路线
十、java.utli有哪些工具类?
纠正一下,是java.util不是java.utli。java.util 中包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。集合类、时间处理模式、日期时间工具等各类常用工具包。 你可以参照java.util 。
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...