
Java
文章平均质量分 61
Xminyang
LifeVoyage
展开
-
【Java】Collections.shuffle 洗牌方法,随机重排序一组元素
Java Collections shuffle()是一个Java Collections类方法,通过随机化排列指定的列表元素来工作。根据其参数的不同,可以划分为两种不同类型的Java shuffle():1. Java Collections shuffle(list)方法: 使用默认的随机性对指定的列表元素进行随机重新排序。2. Java Collections shuffle(list, random)方法: 使用指定的随机性对列表元素进行随机重排。原创 2022-09-05 00:42:15 · 3753 阅读 · 1 评论 -
【double设置精度】C++/Java中double类型设置显示的精度, setprecision, fixed, setw || String.format
【double设置精度】C++/Java中double类型设置显示的精度, setprecision, fixed, setw || String.format原创 2022-08-13 11:50:36 · 3449 阅读 · 0 评论 -
【源码运行】Java实现集和操作(交集、并集及差集),完整代码可复现,多种方法实现
【源码运行】Java实现集和操作(交集、并集及差集),完整代码可复现,多种方法实现原创 2022-07-10 19:09:20 · 598 阅读 · 0 评论 -
【源码运行】Java Set常见集和操作示例,含完整可复现代码,详细指南,快速理解掌握
【Java Set】常见集和操作示例,含完整可复现代码,详细指南,快速理解掌握原创 2022-07-10 15:08:51 · 500 阅读 · 0 评论 -
【Java 随机整数/小数】Random.nextInt(n)返回随机int数,Random.nextDouble()返回随机double数
【Java 随机整数/小数】Random.nextInt(n)返回随机int数,Random.nextDouble()返回随机double数Random.nextInt(n)方法,生成一个随机的int值,介于``[0,n)``的区间,也即包含0而不包含n。Random.nextDouble()方法会从该随机数生成器的序列返回下一个伪随机数,其值均匀分布在0.0到1.0之间。...原创 2022-06-28 00:11:40 · 975 阅读 · 0 评论 -
VS Code + Java:加载外部jar包,并将整个项目打包
本文的目的:基于VS Code的插件Java Extension Pack中的JAVA PROJECTS来加载外部jar包,然后再将整个Java项目打包。简单示例说明:读取边(src, dst)的文件,然后输出每个顶点对应的邻居顶点。该例子使用了外部jar包fastutil-8.5.8.jar。 1 VS Code添加插件Java Extension Pack 于VS Code的商店中,搜索并安装“Java Extension Pack”。正确安装后,当打开Java项目时,会出现“JAVA P.原创 2022-05-03 17:36:55 · 12372 阅读 · 0 评论 -
Java:多项目管理编译运行(package、jar) 极力推荐
1 Java源代码在目录javaProgram/src中,新建3个Java项目,位置示意图如下:PrintHello.javapackage print;import java.util.*;public class PrintHello { public static void main(String[] args) { System.out.println("Hello World."); }}PrintSum.javapackage print原创 2022-04-30 22:12:40 · 1051 阅读 · 0 评论 -
VS Code:取消 Java 代码中注释行内容的自动换行
VS Code在默认情况下,自动换行处于禁用状态。 Language Support for Java(TM) by Red Hat extension会格式化Java代码,从而导致该自动换行问题。1 问题描述如下图所示,格式化代码后,常会导致本应一行显示的代码 被 分割至多行。2 解决方法在setting.json中,添加如下命令,以禁止Java LS格式化代码。"java.format.enabled": false...原创 2022-04-26 07:37:20 · 1759 阅读 · 0 评论 -
Java:Java Packages(Built-in & User-defined)Java包详解
1 Java Packages 介绍Java 包可划分为两类:Built-in Packages (packages from the Java API)User-defined Packages (create your own packages)1.1 Built-in PackagesJava API 是一个预编写类库,可以免费使用,包含在 Java开发环境中。该库包含用于管理输入,数据库编程等的组件。该库分为包packages和类classes。这意味着可以导入单个类(及其原创 2022-04-22 12:43:50 · 524 阅读 · 0 评论 -
VS Code: [成功解决]中文乱码问题,Java程序无法输出中文情况
1.在使用VS Code编译Java代码时,会出现中文乱码的现象。其原因是该Java文件的保存、编译的编码不同。 2.在VS Code中,常见编码模式为UTF-8。因此,我们将javac以UTF-8的编码形式进行编译即可。示例说明 源代码为:public class test { public static void main(String[] args) { System.out.println("世界,你好!"); }} 编译、运行的结果为:..原创 2022-04-21 19:50:35 · 7819 阅读 · 1 评论 -
Java:“错误: 无法从静态上下文中引用非静态 变量 this”
1 导致该“错误”的示例代码public class test { public static void main(String[] args) { System.out.println("计算加法:"); int a = 10, b = 7; Plus plus = new Plus(); System.out.println(a + " + " + b + " = " + plus.Add(a, b)); }原创 2022-04-21 19:33:48 · 8052 阅读 · 1 评论 -
Linux Java: fastutil之Int2LongOpenHashMap示例程序,利用脚本来编译+运行
Linux Java: fastutil之Int2LongOpenHashMap示例程序,利用脚本来编译+运行1 介绍官网API为【网址】。1.1 构造函数说明1.2 功能函数说明 (部分) 2 代码示例import it.unimi.dsi.fastutil.ints.Int2LongOpenHashMap;import java.util.Random;public class int2LongOpenHashMap {...原创 2022-04-20 22:02:57 · 622 阅读 · 0 评论 -
Java 自定义类数组的初始化
1 简介 若初始化不到位,常遇到“空指针异常”(java.lang.NullPointerException)的问题。 此类解决方案是:在声明自定义类数组后,必须再对每一个数组元素 (自定义类)进行实例化。2 代码示例此处,自定义类为Fruit;类数组名为f,数组元素个数为3;2.1 类数组的声明形式(4种常见形式)://形式1Fruit[] f = new Fruit[3];//形式2Fruit f[] = new Fruit[3]; //形式3Fruit f[];原创 2022-04-08 13:38:06 · 2203 阅读 · 1 评论 -
【源码运行】Stream API 在Java8及以上版本:creation, parallelStream, iterate, filter, map, match, reduce,collect示例
1 简介 在Java8 API中增添了新的抽象类Stream,将待处理的元素集和视作一种流,并在管道中传输,且可在管道的节点上进行多种处理,比如排序、筛选、聚合等。 因此,在Java8及以上版本中,可利用stream().filter来筛选出理想的结果,也即根据条件来查找对象集和。2 代码示例 下面为一个简单的示例:新建了一个类Fruit,包含两个成员变量price和name;使用List来存储Fruit类型的变量,然后由stream().filter来筛选符号条件的集和。import原创 2022-04-06 23:04:10 · 4467 阅读 · 0 评论 -
Linux: 将Java程序打包为jar包--包含多个main函数
1 新建两个均包括main的Java项目 在"com/xminyang/manifest"目录下,新建hello.java、sum.java,其内容分别如下:package com.xminyang.manifest;public class hello{ public static void main(String[] args) { System.out.println("Hello, world."); }}package com.xminyang.m原创 2020-08-17 17:25:26 · 1007 阅读 · 0 评论 -
Linux: 将Java程序打包为jar包--使用参数&package
1 创建package目录 使用"mkdir"命令,在当前目录创建“com/xminyang/manifest”目录:mkdir -vp com/xminyang/manifest2 在manifest目录创建Java项目并编译 在上述创建的manifest目录,新建sum.java文件,其内容为:package com.xminyang.manifest;public class sum{ public static void main(String[] args) {原创 2020-08-17 16:54:21 · 434 阅读 · 0 评论 -
Linux: 将Java程序打包为jar包及运行
1 前提介绍前提介绍:以helloWorld.java为例来说明,它的代码如下:public class helloWorld{ public static void main(String[] args){ System.out.println("Hello, world."); }}使用javac命令编程生成helloWorld.class文件,命令如下:javac helloWorld.java2 打包Java程序2.1 直接打包创建MANIFE原创 2020-08-17 10:39:05 · 13657 阅读 · 4 评论 -
【Java读写文件】Java: read 与 write 文件
【Java读写文件】Java: read 与 write 文件1 代码//import java.io.IOException;import java.io.*;public class fileReadWrite{ public static void main(String[] args) throws IOException{ //paras: inputFile outputPath原创 2020-08-15 11:36:27 · 1341 阅读 · 0 评论 -
Linux Java: fastutil之Int2ObjectOpenHashMap示例程序,利用脚本来编译+运行
Linux Java: fastutil之Int2ObjectOpenHashMap示例程序,利用脚本来编译+运行1 介绍官网API为【网址】。构造函数说明:功能函数说明:2 代码示例import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;import it.unimi.dsi.fastutil.ints.IntOpenHashSet;import java.io.IOException;......原创 2020-08-15 10:30:08 · 1343 阅读 · 0 评论 -
Linux Java: fastutil之Int2DoubleOpenHashMap示例程序,利用脚本来编译+运行
Linux Java: fastutil之Int2DoubleOpenHashMap示例1 介绍官网API为【网址】。构造函数说明:功能函数说明:2 代码示例原创 2020-08-15 10:12:39 · 391 阅读 · 0 评论 -
Java: 引用第三方jar包来运行Java程序
1 格式通用格式为:java -cp 第三方jar包 源Java文件-cp:用于指定第三方jar包所在路径;同时引用多个jar包时,它们之间使用分隔符“:”。2 示例2.1 引用单个jar包java -cp ./pkg.jar test.java 1. pkg.jar为当前目录的第三方jar包;2. test.java为源Java文件。2.2 引用多个jar包 多个jar包之间使用“:”分隔开。java -cp ./pkg1.jar:./pkg2.jar test.原创 2020-08-14 18:51:51 · 3472 阅读 · 0 评论 -
Java:编译&运行(package包)
1 代码注意:文件名要与类名一致!!!public class helloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); }}2 运行java helloWorld.java3 结果原创 2020-08-14 17:52:51 · 268 阅读 · 0 评论 -
编程错误详解(Programming Error Details)
1 语法错误(Syntax Error) 一般由编译器检测,其违反了编程语言的语句形式或使用规则。常见形式比如:遗漏或错用标点符号、错用关键字、分支或循环语句结构缺少;也称为“编译错误”。2 运行时错误(Runtime Error) 一般编译器无法检测指出,常出现在程序运行时,遇到无法继续执行的操作。常见形式比如:整数除以0的操作、打开不存在的文件、内存不足。3 逻辑错误(Logic Error) 编译器无法检测指出,如程序的运行结果与预期的正确结果不一致。常见形式比如:输出两个整数的原创 2020-06-16 09:39:00 · 2490 阅读 · 0 评论 -
Thread类创建线程-Java
一、线程创建的概述Java中创建线程有两种方法:一种是继承Thread类;另一种是实现Runnable接口,并通过Thread和实现Runnable的类来建立线程。其实这两种方法从本质上来说是一种方法,即都是通过Thread类来建立线程,并运行run方法的。它们的区别是通过继承Thread类来建立线程,虽然实现起来更加容易,但由于Java不支持多继承,因此,该线程若继承了Thread,就不能再继承其原创 2016-11-18 14:44:11 · 726 阅读 · 0 评论 -
Runnable接口创建线程-Java
一、Runnable接口介绍该接口中只定义了一个方法,即run方法,需要通过Thread类的start方法启动操作系统对多线程的支持。在Thread类中提供了一个以Runnable类型为参数的构造方法,因此可以先实现Runnable接口,然后再通过Thread(Runnable)构建线程,即通过Thread中的start方法间接启动操作系统对多线程的支持。二、测试package JavaProgra原创 2016-11-18 14:56:27 · 498 阅读 · 0 评论 -
多线程机制-Java
多线程机制 对多线程机制的支持是Java最显著的特点之一,多线程机制允许在程序中并发执行多个指令流,每个指令流都可以称为一个线程,且彼此间相互独立。Java提供同时、独立的处理多个任务的机制。多个线程共存于同一个JVM进程里面,所以共用相同的内存空间,且线程间的通信为轻量级的。 一般情况下,Java的线程可以分为五种状态:新建状态、就绪状态、运行状态、阻塞状态和死亡状态。 1、新原创 2016-11-18 14:14:18 · 502 阅读 · 0 评论 -
一种简单的图形用户界面-Java
图形用户界面(Graphics User Interface GUI)可以使用户和程序之间进行方便的交互。其主要由三个要素组成:组件、布局和事件,即开发人员将不同交互功能的组件按照特定的布局方式来构建用户界面,进而与用户交互。 Java可选的图形用户界面库有三种: 1、AWT(Abstract Window Toolkit,抽象窗口工具集)是Java最早提供的图形用户界面库; 2、Sw原创 2016-11-03 11:22:55 · 3193 阅读 · 0 评论 -
线程的同步机制-synchronized-Java
一、概述Java语言里面使用synchronized关键字给代码段加锁,当它用来修饰一个方法或者一个代码段的时候,能够保证在同一时刻最多只有一个线程执行该代码。 当多个线程访问同一个对象object中的synchronized(this)同步的代码块时,同时只能有一个线程得到执行,其他线程必须等待当前线程执行完这个代码块以后才能执行该代码块。二、访问synchronized(this)代码块pac原创 2016-11-18 15:24:01 · 505 阅读 · 0 评论 -
线程的同步机制2-synchronized-Java
当其中一个线程访问object的一个synchronized(this)同步代码块时,其他线程仍然可以访问该object中的非synchronized(this)同步代码块。测试package JavaPrograms;public class MyThreadSynchronization2 implements Runnable{ public void run(){ s原创 2016-11-18 15:28:46 · 418 阅读 · 0 评论 -
Java:线程同步经典案例-生产者与消费者模型
一、相关知识简介 在生产者-消费者模型中,若只使用synchronized关键字实现对象锁,程序在运行中可能会出现以下两种情况:若生产者的速度大于消费者,那么在消费者来不及取前一个数据之前,生产者又产生了新的数据,于是消费者很可能会跳过前一个数据。若消费者的速度大于生产者,那么消费者可能多次取同一个数据。为了避免上述情况,必须使生产者向object对象中存储数据与消费者从o原创 2016-11-18 15:58:44 · 2813 阅读 · 0 评论 -
从控制台获取输入-Java
获取键盘输入1、必须使用System.in对象来创建一个InputStreamReader对象。 2、创建BufferedReader对象。 3、调用readLine方法,获取键盘输入并将它转换成字符串类型。package原创 2017-06-19 14:48:20 · 604 阅读 · 0 评论 -
从文本文件中获取输入-Java
本程序涉及两部分:一、从控制台处读取文件路径名; 二、读取该文本文件的内容,并逐行输出。InputStreamReader、BufferedReader、FileReader、BufferedReader原创 2017-06-19 15:03:02 · 956 阅读 · 0 评论 -
组播实现-Java
组播概念 多播(Multicast):也称为多播,在一台源主机和一组目的主机之间建立单点对多点的网络连接。如果一台源主机同时给多个目的主机传输相同的数据,也只需发送一份相同数据包,提高了数据传送效率,减少了骨干网络出现拥塞的可能性,较好地解决了单点发送多点接收的问题。多播的工作原理: 1.多播源将数据报发送到特定的多播组,只有属于多播组的成员才能接收到数据报。 2.多播组成员不局限于同一个原创 2017-06-24 14:33:50 · 2135 阅读 · 0 评论 -
Java-volatile关键字
volatile从字面上是理解是易变的、不稳定的。在Java中,它也扮演者类似的角色:告诉编译器,凡是被该关键字声明的变量都是易变的、不稳定的。 因此,试图对该变量使用缓冲等优化机制就毫无意义;应当每次都从内存空间中去读取值。但由于volatile只提供了内存可见性,而没有提供原子性(每次修改完volatile变量后并不一定立即写回内存),所以,若用此关键字做高并发的安全机制是不可靠的。原创 2016-10-29 20:06:34 · 661 阅读 · 0 评论