java相关
火龙映天
javac MyJava.java↓
java MyJava↓
Hello World!
展开
-
java中使用递归方式删除目录及子文件
/** * 递归删除目录及子文件 * @param file 删除的文件或目录 */public static void deleteFiles(File file) throws Exception{ File[] list = file.listFiles(); if (list != null) { for (File tempFile : list) { deleteFiles(tempFile); // 递归调用 } }原创 2024-08-01 17:36:30 · 402 阅读 · 0 评论 -
解决使用Timer时出现Task already scheduled or cancelled异常的问题
在使用java.util.Timer和java.util.TimerTask执行定时任务时,如果在调用Timer的schedule或scheduleAtFixedRate方法时,报错如下:java.lang.IllegalStateException: Task already scheduled or cancelled说明当前Timer对象已经执行结束或被取消了,通常情况下是执行过Timer或TimerTask的cancel()接口,当前的Timer和TimerTask已经被消耗了,不能继续使用。如原创 2023-07-29 09:53:04 · 1897 阅读 · 0 评论 -
java中执行本地系统命令并获取命令输出
public String execCmd(String cmd) { StringBuilder result = new StringBuilder(); try { Process process = Runtime.getRuntime().exec(cmd); InputStreamReader inputStreamReader = new InputStreamReader(process.getInpu原创 2023-05-23 09:54:35 · 566 阅读 · 0 评论 -
java.util.Arrays类使用简介
java.util.Arrays类包含用来操作数组的各种方法,比如:排序、搜索。此类还包含一个允许将数组作为列表来查看的静态工厂。注意:Arrays类中的所有方法都是静态static的,所以调用的时候直接使用类名调用即可。1.将数组转换为列表public static List asList(T... a)返回一个受指定数组支持的固定大小的列表。对返回列表的更改会“直接写”到数组,同样对数组的更改也会“直接写”到列表。举例:List list = Arrays.原创 2023-03-17 17:54:04 · 1241 阅读 · 0 评论 -
java.lang.Math类使用简介
java.lang.Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。注意:Math类中的所有字段和方法都是静态static的,所以调用的时候直接使用类名调用即可。1.字段常量:1.1 自然对数的底数public static final double E比任何其他值都更接近 e(即自然对数的底数)的 double 值。值为:2.7182818284590451.2 圆周率public static final double PI比任何其他值都更接近 pi(原创 2023-03-17 09:45:11 · 1510 阅读 · 0 评论 -
java中初始化数组的方法
1.一维数组初始化方式一:int[] array = new int[3];array[0] = 1;array[1] = 2;array[2] = 3;注:此种方式创建的数组,如不显式初始化数组元素,则各元素为当前数据类型的默认值。基本数据类型为0,对象类型为null。所以使用前需要将各元素显式赋值。方式二:int[] array = new int[]{1, 2, 3};注:此方式与方式一的结果相同,但是更简便。方式三:int[] array = {1, 2, 3};注:此原创 2023-03-12 21:25:33 · 8768 阅读 · 3 评论 -
算法:列出数组元素的所有排列组合
// 列出数组元素的所有排列组合private void getArrayAllCompose(int[] nums) { arrange(nums, 0);}// 列出数组元素的所有排列组合private void arrange(int[] nums, int first) { int size = nums.length; if (first == size - 1) { operate(nums); return; }原创 2023-03-12 16:52:31 · 317 阅读 · 0 评论 -
力扣算法:6316-重排数组以得到最大前缀分数
6316-重排数组以得到最大前缀分数题目:给你一个下标从 0 开始的整数数组 nums 。你可以将 nums 中的元素按 任意顺序 重排(包括给定顺序)。令 prefix 为一个数组,它包含了 nums 重新排列后的前缀和。换句话说,prefix[i] 是 nums 重新排列后下标从 0 到 i 的元素之和。nums 的 分数 是 prefix 数组中正整数的个数。返回可以得到的最大分数。示例 1:输入:nums = [2,-1,0,1,-3,3,-3]输出:6解释:数组重排为 num原创 2023-03-12 16:16:16 · 103 阅读 · 0 评论 -
java中Lambda表达式的基本语法
从java8开始支持函数式编程,其中Lambda表达式是函数式编程的一种形式。使用Lambda表达式可以简化代码,减少类型和实例的创建消耗。其基本语法如下:Lambda表达式有三部分组成:参数列表,箭头(->),以及一个表达式或语句块。举例说明:1.未使用Lambda表达式之前,在使用Thread时,可以这样写:new Thread(new Runnable() { public void run() { System.out.println("run!");原创 2023-02-05 21:45:23 · 551 阅读 · 0 评论 -
Checkstyle检查规则
Checkstyle是一个检查java文件编码规范的开源工具,最新版本支持184个检查规则。Checkstyle官网如下:https://checkstyle.sourceforge.ioCheckstyle的GitHub地址如下:https://github.com/checkstyle/checkstyle原创 2023-01-05 14:57:47 · 2698 阅读 · 0 评论 -
java中容易产生空指针异常:NullPointerException的场景
分析:基础数据类型:boolean、byte、char、short、int、float、double、long的包装类:Boolean、Byte、Character、Short、Integer、Float、Double、Long在自动拆箱时会有空指针异常风险。分析:字符串为null时,直接调用equals方法就会报空指针异常。分析:集合在判空时与字符串判空类似,如果集合为null,直接调用isEmpty方法会报空指针异常。一种解决方案如上,先判断字符串是否为null,不为null再执行isEmpty方法。原创 2022-11-05 15:07:35 · 2301 阅读 · 0 评论 -
命令行中查看java进程pid的命令:jps
1.jps本身也是一个java程序,所以结果里包含名为Jps的进程,此进程id为5932。由于jps为临时进程,命令执行完后即刻退出,所以再次执行jps命令查看时,此进程id会变化。添加-l参数,表示查看java程序的完整包名+Main Class类名或jar包的完整路径名。2.SnowPad表示java程序Main Class的类名,此进程id为8128。3.SnowPad.jar表示java程序的jar包名称,此进程id为8188。原创 2022-10-03 00:25:52 · 5054 阅读 · 0 评论 -
解决调用BigDecimal的divide方法时出现java.lang.ArithmeticException异常的问题
原因是运算结果是无限循环小数,而调用divide方法时没有指定运算结果的精度所致。所以解决方法就是设置运算结果的精度以及舍入模式。第三个参数表示舍入模式,此处为最常用的BigDecimal.ROUND_HALF_UP,亦即四舍五入。第二个参数表示保留运算结果的小数点后的最大位数,此处为6位。原创 2022-09-25 23:08:37 · 2732 阅读 · 1 评论 -
java中单例模式的推荐写法
java中单例模式的写法有很多,但是有一部分不是线程安全的,其中一种线程安全的推荐写法如下:1.无参单例:public class SingletonTest { private SingletonTest() { } public static SingletonTest getInstance() { return Singleton.INSTANCE; } private static class Singleton {原创 2022-05-01 20:29:48 · 677 阅读 · 0 评论 -
使用Fernflower反编译java项目
Fernflower是IEDA中使用的反编译工具,因此其反编译的准确度还是比较高的,并且是比较活跃的项目。其项目地址如下:https://github.com/fesh0r/fernflower可以克隆或下载项目源码,并导入到IDEA中,生成jar包,比如fernflower.jar。使用方法如下:java -jar fernflower.jar [-<option>=<value>]* [<source>]+ <destination>* m原创 2022-01-29 17:58:22 · 2324 阅读 · 0 评论 -
使用Gradle生成jar包
如果你的java项目是gradle结构,并且要生成jar包的话,方法如下:1.在build.gradle文件中添加一个新任务jar:jar { archiveFileName = 'myproject.jar' manifest { attributes 'Main-Class': 'com.myproject.MyMain' }}其中的archiveFileName表示生成的jar包名称,Main-Class参数表示主类名。2.在命令行中执行命令:./gradlew原创 2022-01-29 17:26:58 · 25398 阅读 · 2 评论 -
IntelliJ IDEA中生成jar包
IntelliJ IDEA中的java项目(比如:myproject),可以生成jar包。本文以IntelliJ IDEA 2018.2.5版本为例进行介绍,方法如下:1.依次选择菜单:File->Project Structure...,打开“Project Structure”界面。2.在打开界面的左侧列表中选择:Artifacts,点击右侧出现的+号。3.在出现的菜单中依次选择:JAR->From modules with dependencies...,打开“Create JAR原创 2021-05-27 09:02:55 · 5440 阅读 · 0 评论 -
IntelliJ IDEA中创建java项目
IntelliJ IDEA支持java、Android、Maven、Gradle、Kotlin等类型的项目,同时Android Studio就是在其基础上二次开发出来的,功能非常强大。本文以IntelliJ IDEA 2018.2.5版本为例介绍如何创建java项目。1.依次选择菜单:File->New->Project...,打开New Project界面。2.在左侧的项目类型里选择:Java,点击Next按钮。3.在出现的界面中选中“Create project from templ原创 2021-05-25 16:38:02 · 1293 阅读 · 0 评论 -
Comparator比较器的基本用法
如果需要为列表进行排序,可以考虑使用java.util.Comparator类来完成。使用方法如下:// 列表元素的定义类class TestObject { private String name; private int age; public TestObject(String name, int age) { this.name = name; thi...原创 2020-04-22 15:21:09 · 1969 阅读 · 0 评论 -
冒泡排序的两种写法
int[] array = new int[]{5,1,3,9,4,8,7,0,6,2};1.普通的冒泡排序for (int i = 0; i < array.length; i++) { for (int j = 0; j < array.length - i - 1; j++) { if (array[j] > array[j+1]) { ...原创 2020-04-21 14:29:55 · 764 阅读 · 0 评论 -
POI读写Excel表格数据
POI是Apache旗下的读写微软Office文档的开源库,包括但不限于:Word、Excel、PowerPoint、Visio。官方声明:从4.0.1版本开始,使用此库需要jdk1.8或更高的版本支持。本文使用的亦即目前最新的版本是:4.1.2。本文仅使用了此库的读写excel表格数据的功能,而且是以xlsx为扩展名的表格文件。private void onOk() { String...原创 2020-03-13 14:05:38 · 241 阅读 · 0 评论 -
java中split方法的特殊用法
在java.lang.String类中有split()方法,返回是一个数组,api文档中的描述如下:public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。1、通常用法如下: String t = "abcdxefg"; String[] arr = t.split("x");最后得到的数组是:"abc原创 2017-08-18 18:45:33 · 582 阅读 · 0 评论 -
用命令行编译java并生成可执行的jar包
如果想用java编写一个可视化小程序,碰巧手头没有IDE的话,可以用命令行来完成编译、打包等工作。拿自己编写的“java记事本”为例,介绍一下这个过程:1.编写源代码。编写源文件:NotePad.java并保存,例如:E:\myApp\NotePad.java。程序结构如下:package test;import java.awt.*;import javax.swing.*原创 2017-08-18 18:48:03 · 343 阅读 · 0 评论 -
Ubuntu 10.10安装与配置jdk
1.下载安装程序。从http://java.sun.com中下载jdk,将下载到的jdk1.5.0_22.bin文件置于随意路径下,并添加可执行权限,在终端中输入:sudo chmod +x jdk1.5.0_22.bin2.安装jdk。现在开始安装,在终端中输入:./jdk1.5.0_22.bin将会出现字幕,持续按空格键,直至屏幕显示要求输入yes/no,此时输入yes原创 2017-10-10 10:53:09 · 282 阅读 · 0 评论 -
原创纯java软件:冰雪记事本-SnowPad
在下常因系统默认的记事本功能太弱,一怒之下,用java开发了一款代替软件:冰雪记事本。欢迎大家下载使用!【同时提供源代码与生成的jar包文件,要运行本程序需要jdk的支持】软件名称:冰雪记事本最新版本:V4.2截屏百度网盘中有各版本的整包下载,地址如下:http://pan.baidu.com/share/link?shareid=254756&uk=1426341332代码...原创 2018-08-02 15:26:10 · 241 阅读 · 0 评论 -
Java中final的用法总结
1.修饰基础数据成员的final这是final的主要用途,其含义相当于C/C++的const,即该成员被修饰为常量,意味着不可修改。如java.lang.Math类中的PI和E是final成员,其值为3.141592653589793和2.718281828459045。2.修饰类或对象引用的final在Java中,我们无法让对象被修饰为final,而只能修饰对象的引用,这意味着即使你...转载 2018-08-03 14:11:21 · 194 阅读 · 0 评论 -
四种获取Class对象的方法-Java反射机制
下面以一个具体的实例来说明。此实例来自《精通Hibernate 3.0 Java数据库持久层开发实践》一书。先在com.hqh.reflect下建一个文件UseInfo.javapackage com.hqh.reflect;public class UseInfo {private Integer id;private String userName;private Str...转载 2018-08-03 14:16:55 · 277 阅读 · 0 评论 -
eclipse用空格代替制表符
如果不习惯在eclipse中执行Format时用制表符作为缩进字符,可以将其设置为空格。设置如下:Window->Preferences...->Java->Code Style->Formatter->New...打开New Profile对话框,输入Profile name为:My-Profile(自定义的名称)Indentation->Tab po...原创 2018-08-08 18:02:17 · 921 阅读 · 0 评论 -
eclipse中禁用javadoc注释的Format功能
在用eclipse进行java开发时,经常需要添加一些必要的javadoc注释。可是每当进行Format操作时(亦即按快捷键:Ctrl+Shift+F时),就会对排版进行自作聪明的调整,但往往这种调整是开发者不愿意看到的。举例如下:程序员希望的注释格式: /** * 根据文件开头的BOM(如果存在的话),判断文件的编码格式。 * 文本文件有各种不同的编码格式,如果判断有误,...原创 2018-08-08 18:04:56 · 693 阅读 · 0 评论 -
Java8 Lambda表达式教程
Java8 Lambda表达式教程1. 什么是λ表达式λ表达式本质上是一个匿名方法。让我们来看下面这个例子: public int add(int x, int y) { return x + y; }转成λ表达式后是这个样子: (int x, int y) -> x + y;参数类型也可以省略,Java编译器会根据上下文推...转载 2018-11-30 13:34:05 · 445 阅读 · 0 评论 -
java内部类实例化时报错的问题
如果有一个类的结构如下:public class Data { public class Item { }};如果需要实例化Item类时,可能会写成:Data.Item item = new Data.Item();但是编译器就会出现一个错误:'com.test.Data.Item' is not an enclosing class其实这种写法是错误的,正确的方式为:Da...原创 2018-11-27 10:59:46 · 2366 阅读 · 0 评论 -
java生成随机UUID
import java.util.UUID;String uuid = UUID.randomUUID().toString().replace("-", "").toLowerCase();原创 2019-10-11 16:13:27 · 239 阅读 · 0 评论 -
用javadoc命令生成api帮助文档
最近想学习一下swt的相关内容,于是就到http://www.eclipse.org/swt下载了最新的swt包。可惜包里只有源码,没有api帮助文档。如果要学习的话,少了帮助文档哪能行,于是就用javadoc命令自己制作了一个。具体操作如下:1.准备工作。将下载到的swt-3.5.2-win32-win32-x86.zip里的src.zip经两次解压到本地目录。如成功解压后的目录结构原创 2017-08-18 18:40:21 · 1009 阅读 · 0 评论