Java基础之常用对象(一)

Educoder/头歌JAVA——JAVA面向对象:常用类 本实训项目的主要内容是介绍 Java 类库所提供的常用类及类的常用方法, Java 中常用的类有: Object类; Java 基础类型包装类; String&StringBuilder&StringBuffer类; Random类; Date类; SimpleDateFormat类; Math类。 在前面的实训中,我们已经学习了 Java 基础类型包装类和String类,接下来我们将学习其他 4 种 Java 常见的类. 阅读详情

1.Date

1.Date概述

在Java中,Date类表示特定的瞬间,可以精确到毫秒。一般需要配合SimpleDateFormat 类进行格式化输出。

2.相关方法

构造方法:

Date()
分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
Date(long date)
分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

特有方法:

boolean after(Date when)
测试此日期是否在指定日期之后。
boolean before(Date when)
测试此日期是否在指定日期之前。
int compareTo(Date anotherDate)
比较两个日期的顺序。
boolean equals(Object obj)
比较两个日期的相等性。
Object clone()
返回此对象的副本。

3.按照指定格式输出日期

需要借助SimpleDateFormat类中的方法:

SimpleDateFormat
构造方法

SimpleDateFormat(String pattern)
用给定的模式和默认语言环境的日期格式符号构造
SimpleDateFormat()
用默认的模式和默认语言环境的日期格式符号构造

使用SimpleDateFormat格式化输出日期需要传入一个pattern字符串,用来规定日期的输出格式。以下为pattern的常用对照表。

Patern表

字母日期或时间元素表示示例
y年Year1996; 96
M年中的月份MonthJuly; Jul; 07
w年中的周数Number27
W月份中的周数Number2
D年中的天数Number189
d月份中的天数Number10
F月份中的星期Number2
E星期中的天数TextTuesday; Tue
aAm/pm 标记TextPM
H一天中的小时数(0-23)Number0
k一天中的小时数(1-24)Number24
Kam/pm 中的小时数(0-11)Number0
ham/pm 中的小时数(1-12)Number12
m小时中的分钟数Number30
s分钟中的秒数Number55
S毫秒数Number978

示例表:

日期和时间模式结果
“yyyy.MM.dd ‘at’ HH:mm:ss”2001.07.04 at 12:08:56
“EEE, MMM d, ”yy”Wed, Jul 4, ‘01
“h:mm a”12:08 PM

用到的方法:

String format(Date date)
将一个 Date 格式化为日期/时间字符串。

StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition pos)
将给定的 Date 格式化为日期/时间字符串,并将结果添加到给定的 StringBuffer。

需求描述:按照一般格式输出当前系统日期。

示例代码:

import java.text.SimpleDateFormat;
import java.util.Date;

    public class DateDemo {

        public static void main(String[] args) {
            //新建Date日期类
            Date date=new Date();
            //实例化格式类
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
            String formatStr=sdf.format(date);
            System.out.println(formatStr);
        }

    }

程序运行结果:

当前日期:2015-12-29 20:16:14


2.Runtime

1.Runtime概述

每个 Java 应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。

Runtime无法通过构造方法进行实例化,但可以通过Runtime的静态方法getRuntime()获得一个实例对象。这也是单例设计模式的一处体现。

方法如下:

static Runtime getRuntime()
返回与当前 Java 应用程序相关的运行时对象。

2.相关方法

Process exec(String command)
在单独的进程中执行指定的字符串命令。
Process exec(String[] cmdarray)
在单独的进程中执行指定命令和变量。

Process exec(String[] cmdarray, String[] envp)
在指定环境的独立进程中执行指定命令和变量。
Process exec(String[] cmdarray, String[] envp, File dir)
在指定环境和工作目录的独立进程中执行指定的命令和变量。
Process exec(String command, String[] envp)
在指定环境的单独进程中执行指定的字符串命令。
Process exec(String command, String[] envp, File dir)
在有指定环境和工作目录的独立进程中执行指定的字符串命令。


static Runtime getRuntime()
返回与当前 Java 应用程序相关的运行时对象。

void exit(int status)
通过启动虚拟机的关闭序列,终止当前正在运行的 Java 虚拟机。

int availableProcessors()
向 Java 虚拟机返回可用处理器的数目。


long freeMemory()
返回 Java 虚拟机中的空闲内存量。
void gc()
运行垃圾回收器。
void halt(int status)
强行终止目前正在运行的 Java 虚拟机。
long axMemory()
返回 Java 虚拟机试图使用的最大内存量。
void runFinalization()
运行挂起 finalization 的所有对象的终止方法。
long totalMemory()
返回 Java 虚拟机中的内存总量。

3.使用Runtime打开其他程序

相关方法:

Process exec(String command)
在单独的进程中执行指定的字符串命令。

说明:参数command可以是一个可执行程序的详细路径,若目标程序属于系统程序,则不用加详细路径。本方法返回一个Process实例对象,该实例可用来控制进程并获得相关信息。此外,本方法可能抛出IOException异常。

Process相关方法:

abstract void destroy()
杀掉子进程。

abstract InputStream getErrorStream()
获取子进程的错误流。
abstract InputStream getInputStream()
获取子进程的输入流。
abstract OutputStream getOutputStream()
获取子进程的输出流。
abstract int waitFor()
导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。

示例代码:

import java.io.IOException;

public class RuntimeDemo {

    public static void main(String[] args) {
        //获取一个Runtime示例
        Runtime runtime=Runtime.getRuntime();
        //调用exec方法时可能抛出异常
        try {
            //调用exec方法执行指定路径下的程序
            Process ps=runtime.exec("D:\\专用工具\\KuGou\\KuGou.exe");
            //程序休眠两秒
            Thread.sleep(2000);
            //关闭打开的目标程序
            ps.destroy();

        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

说明:通过该示程序,即可成功运行指定路径下的程序。并且,该程序会在两秒后被关闭。

3.通过Runtime使用其他程序打开文件

格式:

runtime.exex(“程序名(具体路径) 文件名”);

示例代码:

import java.io.IOException;

public class RuntimeDemo {

    public static void main(String[] args) {
        //获取一个Runtime示例
        Runtime runtime=Runtime.getRuntime();
        //调用exec方法时可能抛出异常
        try {
            //调用exec方法执行指定路径下的程序
            Process ps=runtime.exec("notepad.exe D:\\1024test.txt");

        } catch (IOException e) {
            e.printStackTrace();
        } 
    }

}

说明:通过该程序。就可以实现通过记事本打开指定路径下的文本文件


3.System

1.相关方法

该类无法被实例化,因为该类未向外提供构造方法。此外,该类中的属性和方法都是静态成员,可以直接使用。

特有字段:

out:标准输出,默认为控制台输出
in:标准输入,默认为键盘输入
err:标准错误输出流。

相关方法:

static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。

static long currentTimeMillis()
返回以毫秒为单位的当前时间。

static long nanoTime()
返回最准确的可用系统计时器的当前值,以毫微秒为单位。

static void exit(int status)
终止当前正在运行的 Java 虚拟机。


static String clearProperty(String key)
移除指定键指示的系统属性。

static Properties getProperties()
确定当前的系统属性。
static String getProperty(String key)
获取指定键指示的系统属性。
static String getProperty(String key, String def)
获取用指定键描述的系统属性。

static void setProperties(Properties props)
将系统属性设置为 Properties 参数。
static String setProperty(String key, String value)
设置指定键指示的系统属性。


static Console console()
返回与当前 Java 虚拟机关联的唯一 Console 对象(如果有)。

static void gc()
运行垃圾回收器。
static Map<String,String> getenv()
返回一个不能修改的当前系统环境的字符串映射视图。
static String getenv(String name)
获取指定的环境变量值。

static int identityHashCode(Object x)
返回给定对象的哈希码,该代码与默认的方法 hashCode() 返回的代码一样,无论给定对象的类是否重写 hashCode()。

static void runFinalization()
运行处于挂起终止状态的所有对象的终止方法。

2.系统属性信息

1.获取系统属性

a.取出该属性类所有信息:

static Properties getProperties()
确定当前的系统属性。 该方法将获取一个属性类Properties

1.Properties是Hashtable的子类,也就是Map集合的一个子类对象,因此可以通过Map的方法取出Properties中的元素。并且该集合中存储的都是字符串对象,没有泛型定义。

2.使用Properties类中的特有方法可以返回一个Set集合进行操作。使用到的方法如下:

Set<String> stringPropertyNames()
返回此属性列表中的键集,其中该键及其对应值是字符串,如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键。

示例代码:

    //部分代码
    public static void main(String[] args) {
        //获取储存系统属性信息的Properties对象
        Properties pro=System.getProperties();

        //通过Properties对象的特有方法返回键的Set集合
        //或:Set<String> infoSet=pro.keySet();
        Set<String> infoSet=pro.stringPropertyNames();

        //输出所有系统属性信息
        Iterator<String> it=infoSet.iterator();
        while(it.hasNext()){
            String info=it.next();
            System.out.println(info+":"+pro.get(info));
        }
    }

部分程序运行结果:

java.runtime.name:Java(TM) SE Runtime Environment
sun.boot.library.path:C:\Program Files (x86)\Java\jre1.8.0_60\bin
java.vm.version:25.60-b23
java.vm.vendor:Oracle Corporation
java.vendor.url:http://java.oracle.com/
path.separator:;
java.vm.name:Java HotSpot(TM) Client VM
file.encoding.pkg:sun.io
user.script:
user.country:CN

b.获取指定系统属性:

static String getProperty(String key)
获取指定键指示的系统属性。

示例代码:

        //部分代码
        //通过指定键的形式获取指定系统信息
        String osName=System.getProperty("os.name");        
        //输出当前操作系统 
        System.out.println("osname::"+osName);

程序运行结果:

osname::Windows 8

2.自定义系统特有信息

static String setProperty(String key, String value)
设置指定键指示的系统属性。

说明:该方法以键值对的形式设置特有属性,且下次启动Java虚拟机时该属性依旧会存在。

示例代码:

        //部分代码
        //自定义特性的系统属性信息      
        System.setProperty("myInfo","这是一条自定义的属性");  
        //读取指定系统信息
        String myInfo=System.getProperty("myInfo");
        System.out.println("myInfo::"+myInfo);

程序运行结果:

myInfo::这是一条自定义的属性

java面向对象程序设计 通过继承 Exception 或 RuntimeException 类来创建自定义异常,满足特定业务需求。// 自定义用户不存在异常// 自定义密码错误异常if (!// 抛出用户不存在异常throw new UserNotFoundException("用户不存在");if (!// 抛出密码错误异常throw new PasswordWrongException("密码错误");System.out.println("登录成功");try {// 调用登录方法,可能抛出异常。 阅读详情

相关推荐

头歌--Java面向对象 - 常用类

头歌--Java面向对象 - 常用类

m0_56638814的博客 1万+

第五章:Java常用对象

Java常用对象

weixin_43766651的博客 768

从虚拟机到双系统:手把手教你为Gromacs搭建最强Linux环境(含WSL2、Ubuntu22.04配置)

本文详细指导如何在Windows系统下为Gromacs分子动力学模拟搭建高性能Linux环境,涵盖WSL2和Ubuntu22.04双系统配置。通过对比虚拟机、WSL2和原生Linux的性能数据,提供GPU加速、内存优化等实用技巧,帮助科研人员提升计算效率。

weixin_30861797的博客 271

Java学习之常见对象

A:Scanner的概述B:Scanner的构造方法原理System类下有一个静态的字段:标准的输入流,对应着键盘录入。C:一般方法hasNextXxx() 判断是否还有下一个输入项,其中Xxx可以是Int,Double等。如果需要判断是否包含下一个字符串,则可以省略XxxnextXxx() 获取下一个输入项。Xxx的含义和上个方法中的Xxx相同,默认情况下,Scanner使用空格,回车等作为分隔符A:String类的概述通过JDK提供的API,查看String类的说明。

wchg21131的博客 524

飞牛NAS+Docker打造私人IPTV直播源:手把手教你部署iptv-api

本文详细介绍了如何在飞牛NAS上通过Docker部署iptv-api,打造私人IPTV直播源。从SSH配置到Docker容器部署,手把手教你实现自动更新直播源、多终端支持的解决方案,适用于Kodi、PotPlayer等播放器,提升家庭娱乐体验。

earth的博客 5626

双硬盘下Ubuntu 16.04与Win10双系统的安装

之前写过一个双系统安装过程,今天再次整理的原因是想重点强调双硬盘的区别。标红的一定要注意看,那就是我自己一步一步踏出来的坑啊...   基础步骤就不再重复,重点讲区别,需要看详细步骤的童鞋(或者你只有一个硬盘)请看我上一篇博客https://blog.youkuaiyun.com/weixin_40308540/article/details/80157444   区别:双硬盘和单硬盘的区别是什么呢?...

不吃包子 1126

java 常用类和对象

java常用类和对象

vbspjava的博客 137

基于C#的机器人控制框架:如何将ROS与硬件集成

本文探讨了如何利用C#与ROS(Robot Operating System)集成开发机器人控制系统。通过ROSSharp库和rosbridge中间件,实现了C#与ROS的WebSocket通信,并展示了硬件控制模块的设计方法。文章详细介绍了电机控制的串口通信实现、ROS消息订阅机制,以及性能优化和容错处理策略,最终构建了一个智能小车控制框架的案例。这种C#与ROS的集成方案为机器人开发提供了跨平台支持,同时兼顾了系统的高效性和可靠性。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1143

String、StringBuffer与StringBuilder的区别

对于三者使用的总结:如果要操作少量的数据用 = String单线程操作字符串缓冲区 下操作大量数据 = StringBuilder多线程操作字符串缓冲区 下操作大量数据 = StringBuffer1. 在执行速度方面的比较:StringBuilder &gt; StringBuffer2. StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字...

发呆中! 241

【GameFramework框架】三、快速启动

这篇文章就带领大家如何快速启动GameFramework框架。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 4435

Android 14安装的APK默认允许运行时权限

本文介绍了在Android系统中实现安装应用后自动授予运行时权限的方法。通过在安装完成广播中检测应用安装状态,调用新增的DefaultPermissionGrantPolicy.grantAppRuntimePermissions()函数来授予常规权限,并使用allowSpecialPermission()处理特殊权限(如安装未知应用和悬浮窗权限)。文章详细说明了如何修改DefaultPermissionGrantPolicy类,添加grantAppRuntimePermissions和grantRunti

热衷于Android Framework和系统APP的修改经验分享 686

java常用的集合对象_java常用集合

java常用集合简介Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是Map(Map),存储键/值对映射。Collection 接口又有 3 种子类型,List、Set 和 Queue,再下面是一些抽象类,最后是具体实现类,常用的有ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、Linke...

weixin_39786155的博客 753

医图论文 Arxiv‘24 | 自我先验引导的 Mamba-UNet 网络在医学图像超分辨率中的应用

作者提出了一种自我先验引导的 Mamba-UNet 网络(简称 SMamba-UNet)用于医学图像超分辨率。现有方法主要基于卷积神经网络(CNNs)或 Transformer。基于 CNN 的方法无法捕捉长距离依赖关系,而基于 Transformer 的方法由于其二阶计算复杂度,面临沉重的计算挑战。最近,状态空间模型(SSMs)尤其是 Mamba 出现了,它能够以线性计算复杂度建模长距离依赖。

小白学视觉 263

Java基础视频教程第18天_其他常用对象、IO流一

一、其他对象—— System  java.lang.System  public final class System extends Object  System: 不能实例化,其方法都是静态的。 out: 标准输出,默认是控制台。 in: 标准输入,默认是键盘。

yc081216的专栏 603

YOLOv5算法改进(22)— 更换主干网络MobileNetv3 + 添加CA注意力机制

本节课就让我们结合论文来对YOLOv5进行组合改进(更换主干网络MobileNetv3 + 添加CA注意力机制),小白必学~!🌈

小哥谈 2819

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java基础——常用对象API(一)String类和StringBuffer类

String 一、特点 字符串是一个特殊的对象。 字符串一旦初始化就不可被改变。 问:String str = "abc" 和 String str1 = new String("abc") 有什么区别? new出来的对象在堆内存中,产生两个对象但都在堆内存中; 直接赋值对象在字符串常量池中,由String类来维护,可以被共享。  equals方法:就是比较两个字符串是否一样 二...

狄利克雷的博客 391

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Java语言基础-常用对象API(一)String、StringBuffer

String类-常见功能 字符串是一个特殊的对象;字符串一旦初始化就不可以被改变; package cn.itcast.p1.stirng.demo; public class StringDemo { /** * @param args */ public static void main(String[] args) { ...

weixin_30912051的博客 133

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Java基础(一):编译和解释、数据类型、变量作用域、String常用方法、数组、面向对象、异常

Java基础(一):编译和解释、数据类型、变量作用域、String常用方法、数组、面向对象、异常

鸢尾_的博客 405

Java基础(一)- 数据类型、运算符、数组、面向对象、常用API、JDK8、正则表达式

​ 字面量 告诉程序员:数据在程序中的书写形式整数型字面量:1 、2、 3 、100、 -100、 -20 … 浮点型字面量:1.3 、1.2、 3.14… 布尔型字面量:true、false没有其它值了,表示真和假,true表示真,false表示假 字符型字面量:‘a’、‘b’、‘中’ 字符串型字面量:“abc”、“a”、“b”、“中国”所有的字符型只能使用单引号括起来。 所有的字符串型只能使用双引号括起来Java语言中已经赋予了特定含义的 用来标识类名、对象名、变量名、方法名、类型名、数组名、文件名的有

bossDDYY的博客 670

Java零基础教学都讲什么内容?

许多想要学习Java的同学都在关注零基础Java培训都讲什么内容?的确,学习Java既要找一个靠谱的Java培训机构,也要有一个明确的Java学习路线规划。接下来,笔者带您一起来了解一下黑马程序员Java培训课程内容都包含什么?  第一章节:Java基础班阶段一  主要讲解JavaSE基础,这一章节带着各位学员一起掌握Java开发环境的基本配置,包括运算符、表达式、流程控制语句、数组的使用方法;熟练使用IDEA开发工具,掌握Java面向对象的知识以及常用类String.ArrayList等的使用...

Blue92120的博客 256

java基础

目录 面向过程 面向对象 封装 继承 多态 重载和重写的区别 接口和抽象类的区别 static 面向对象的”六原则一法则” String和StringBuilder、StringBuffer的区别? math类有那些常用方法? instanceof 测试一个对象是否为一个类的实例 Object类常用方法有那些 面向过程 分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,在使用的时候一一调用。面向过程性能较高 面向对象 分解成一个个对象,建立对象的目的也不是为

xiaobaigmh的博客 241

Java面向对象基础

一、前言 我们上次学过java的方法,现在我们来学习新的一篇,也算是java中比较重要的一节了 面向对象基础是java中核心。 面向对象主要包括封装、继承、多态 我们这节主要讲的是封装,在这之前我们先来了解一下类和对象的定义和关系 什么是对象? 世间一切都是对象,万物解释对象,对象就是看得见摸得着的东西。 什么是类? 类是现实生活中对具有属性和行为同一类的总称。 类和对象的关系? 类是对象的抽象化,对象是类的实例化 类的定义 ? 类是java中的基本概念,java中

weixin_60719453的博客 9327

Java8 stream 实现对象List根据对象某一指定字段进行去重操作

Java8 stream 可简洁实现对象List根据对象的某一字段进行去重。 实现代码如下: 根据去重场景修改代码中的对象及去重字段即可。 //根据Student对象的age进行去重 studentList = studentList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Student :: getAge)

tonglingtou1875的博客 7998

Java基础——面向对象基础(一)

文章目录一、Java面向对象学习的三条主线(第4-6章):二、面向过程 vs 面向对象:三、使用"面向对象分析方法"分析问题的思路和步骤:四、面向对象的两个要素:4.1、设计类,其实就是设计类的成员4.2、类和对象的使用(面向对象思想落地的实现)五、对象的内存解析5.1、JVM内存详细图5.2、对象的内存解析 一、Java面向对象学习的三条主线(第4-6章): Java类及类的成员:属性、方法、...

Clannad191的博客 2773

Java基础语法到面向对象详解

本文是一篇Java入门学习笔记,从java基础语法过度到面向对象三大特性等进阶详解

冬眠猫的博客 7948

[Java基础] 创建一个对象数组

先从一段错误的代码切入,然后在后面提出正确的创建方法。先考虑这段代码:public class Student { private int age; private String name; public void Student() { this.age = 21; this.name = "someone"; } public v

lkxlaz的博客 1万+
上一篇: Java基础之集合框架系列(五)
下一篇: Java基础之常用对象(二)
CodingEnding
博客等级 码龄11年 86粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值