Java在工作当中经常使用的常用类

简介: Java在工作当中经常使用的常用类

包装类


概述

Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下:


byte--->Byte

short--->Short

int--->Integer

long-->Long

char-->Character

float-->Float

double-->Double

boolean--->Boolean




装箱与拆箱


基本类型与对应的包装类对象之间,来回转换的过程称为”装箱“与”拆箱“:

装箱:从基本类型转换为对应的包装类对象。


拆箱:从包装类对象转换为对应的基本类型。


用Integer与 int为例:

基本数值---->包装对象

包装对象---->基本数值

自动装箱与自动拆箱

由于我们经常要做基本类型与包装类之间的转换,从Java 5(JDK 1.5)开始,基本类型与包装类的装箱、拆箱动作可以自动完成。例如:

基本类型与字符串之间的转换

基本类型直接与””相连接即可;如:34+""

String转换成对应的基本类型


除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型:

public static byte parseByte(String s):将字符串参数转换为对应的byte基本类型。

public static short parseShort(String s):将字符串参数转换为对应的short基本类型。

public static int parseInt(String s):将字符串参数转换为对应的int基本类型。

public static long parseLong(String s):将字符串参数转换为对应的long基本类型。

public static float parseFloat(String s):将字符串参数转换为对应的float基本类型。

public static double parseDouble(String s):将字符串参数转换为对应的double基本类型。

public static boolean parseBoolean(String s):将字符串参数转换为对应的boolean基本类型。

以Integer类的静态方法parseXxx为例

注意:如果字符串参数的内容无法正确转换为对应的基本类型,则会抛出java.lang.NumberFormatException异常。



示例:



字符串String类


String构造函数

String常用方法

public char charAt(int index)

根据下标获取字符

public boolean contains(String str)

判断当前字符串中是否包含str

public char[] toCharArray()

将字符串转换成数组。

public int indexOf(String str)

查找str首次出现的下标,存在,则返回该下标;不存在,则返回-1

public int length()

返回字符串的长度

public String trim()

去掉字符串前后的空格

public String toUpperCase()

将小写转成大写

public boolean endsWith(String str)

判断字符串是否以str结尾

public String replace(char oldChar,char newChar)

将旧字符串替换成新字符串

public String[] split(String str)

根据str做拆分

public String subString(int beginIndex,int endIndex)

在字符串中截取出一个子字符串



三、可变字符串


概念:可在内存中创建可变的缓冲空间,存储频繁改变的字符串。


Java中提供了两个可变字符串类:

StringBuilder:可变长字符串,JDK5.0提供,运行效率快、线程不安全。


StringBuffer:可变长字符串,JDK1.0提供,运行效率慢、线程安全。


这两个类中方法和属性完全一致


验证StringBuilder效率高于String。


常用的方法:

方法名

属性

public StringBuilder append(String str)

追加内容。

public StringBuilder insert(int dstOffset, CharSequence s)

将指定 字符串插入此序列中。

public StringBuilder delete(int start, int end)

移除此序列的子字符串中的字符。

public StringBuilder replace(int start, int end, String str)

使用给定字符串替换此序列的子字符串中的字符。start开始位置、end结束位置。

public int length()

返回长度(字符数)。




日期


Date

●Date表示特定的瞬间,精确到毫秒。

●Date类中的大部分方法都已经被Calendar类中的方法所取代。


●时间单位

○1秒=1000毫秒

○1毫秒=1000微秒

○1微秒=1000纳秒

Calendar

  • Calendar提供了获取或设置各种日历字段的方法。
  • protected Calendar() 构造方法为protected修饰,无法直接创建该对象。


常用方法:

方法名

说明

static Calendar getInstance()

使用默认时区和区域获取日历

void set(int year,int month,int date,int hourofday,int minute,int second)

设置日历的年、月、日、时、分、秒。

int get(int field)

返回给定日历字段的值。字段比如年、月、日等

void setTime(Date date)

用给定的Date设置此日历的时间。Date-Calendar

Date getTime()

返回一个Date表示此日历的时间。Calendar-Date

void add(int field,int amount)

按照日历的规则,给指定字段添加或减少时间量

long getTimeInMillis()

毫秒为单位返回该日历的时间值

SimpleDateFormat

SimpleDateFormat是以与语言环境有关的方式来格式化和解析日期的类。


进行格式化(日期 -> 文本)、解析(文本 -> 日期)。

yyyy:年

MM:月

dd:日

hh:1~12小时制(1-12)

HH:24小时制(0-23)

mm:分

ss:秒

S:毫秒

E:星期几

D:一年中的第几天

F:一月中的第几个星期(会把这个月总共过的天数除以7)

w:一年中的第几个星期

W:一月中的第几星期(会根据实际情况来算)

a:上下午标识

k:和HH差不多,表示一天24小时制(1-24)。

K:和hh差不多,表示一天12小时制(0-11)。

z:表示时区




BigDeicmal基本用法

很多实际应用中需要精确计算,而double是近似值存储,不再符合要求,需要借助BigDecimal。

为什么使用BigDecimal?


位置:java.math包中。

作用:精确计算浮点数。

创建方式:BigDecimal bd=new BigDecimal(“1.0”)。

常用方法:

方法名

描述

BigDecimal add(BigDecimal bd)

BigDecimal subtract(BigDecimal bd)

BigDecimal multiply(BigDecimal bd)

BigDecimal divide(BigDecimal bd)

除法:divide(BigDecimal bd,int scal,RoundingMode mode)。

参数scale :指定精确到小数点后几位。

参数mode :

指定小数部分的取舍模式,通常采用四舍五入的模式。

取值为BigDecimal.ROUND_HALF_UP。




System


System系统类,主要用于获取系统的属性数据和其他操作。

常用方法:

方法名

说明

static void arraycopy(...)

复制数组

static long currentTimeMillis()

获取当前系统时间,返回的是毫秒值

static void gc();

建议JVM赶快启动垃圾回收器回收垃圾

static void exit(int status)

退出jvm,如果参数是0表示正常退出jvm,非0表示异常退出jvm。

示例:



七、对象内存分析


按值传递

按址传递

class Person{
    int age;
    String name;
    public Person(String name,int age){
        this.name = name;
        this.age = age;
    }
    public void eat(){
        System.out.println("吃东西。。");
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "Person{" +
                "age=" + age +
                ", name='" + name + '\'' +
                '}';
    }
}
public class Demo {
    public static void test(int i){
        System.out.println(i);
        i = 100;
        System.out.println(i);
    }
    public static void test2(Person person){
        person.setName("wowo");
    }
    public static void main(String[] args) {
        Person p1 = new Person("王二狗",5);
        Person p2 = new Person("李晓华",12);
        Person p3 = p1;
        System.out.println(p1);
        System.out.println(p2);
        System.out.println(p3);
        test2(p3);
        System.out.println(p3);
        System.out.println(p1);
        int a = 5;
        test(a);
        System.out.println(a);
    }
}





最后


本期结束咱们下次再见👋~

🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗

相关文章
|
13天前
|
Java 开发者
重学Java基础篇—Java类加载顺序深度解析
本文全面解析Java类的生命周期与加载顺序,涵盖从加载到卸载的七个阶段,并深入探讨初始化阶段的执行规则。通过单类、继承体系的实例分析,明确静态与实例初始化的顺序。同时,列举六种触发初始化的场景及特殊场景处理(如接口初始化)。提供类加载完整流程图与记忆口诀,助于理解复杂初始化逻辑。此外,针对空指针异常等问题提出排查方案,并给出最佳实践建议,帮助开发者优化程序设计、定位BUG及理解框架机制。最后扩展讲解类加载器层次与双亲委派机制,为深入研究奠定基础。
35 0
|
20天前
|
缓存 安全 Java
《从头开始学java,一天一个知识点》之:输入与输出:Scanner与System类
你是否也经历过这些崩溃瞬间?三天教程连`i++`和`++i`都说不清,面试时`a==b`与`equals()`区别大脑空白,代码总是莫名报NPE。这个系列就是为你打造的Java「速效救心丸」!每天1分钟,地铁通勤、午休间隙即可学习。直击高频考点和实际开发中的“坑位”,拒绝冗长概念,每篇都有可运行代码示例。涵盖输入输出基础、猜数字游戏、企业编码规范、性能优化技巧、隐藏技能等。助你快速掌握Java核心知识,提升编程能力。点赞、收藏、转发,助力更多小伙伴一起成长!
43 19
|
13天前
|
存储 监控 安全
重学Java基础篇—类的生命周期深度解析
本文全面解析了Java类的生命周期,涵盖加载、验证、准备、解析、初始化、使用及卸载七个关键阶段。通过分阶段执行机制详解(如加载阶段的触发条件与技术实现),结合方法调用机制、内存回收保护等使用阶段特性,以及卸载条件和特殊场景处理,帮助开发者深入理解JVM运作原理。同时,文章探讨了性能优化建议、典型异常处理及新一代JVM特性(如元空间与模块化系统)。总结中强调安全优先、延迟加载与动态扩展的设计思想,并提供开发建议与进阶方向,助力解决性能调优、内存泄漏排查及框架设计等问题。
33 5
|
21天前
|
缓存 安全 Java
《从头开始学java,一天一个知识点》之:字符串处理:String类的核心API
🌱 **《字符串处理:String类的核心API》一分钟速通!** 本文快速介绍Java中String类的3个高频API:`substring`、`indexOf`和`split`,并通过代码示例展示其用法。重点提示:`substring`的结束索引不包含该位置,`split`支持正则表达式。进一步探讨了String不可变性的高效设计原理及企业级编码规范,如避免使用`new String()`、拼接时使用`StringBuilder`等。最后通过互动解密游戏帮助读者巩固知识。 (上一篇:《多维数组与常见操作》 | 下一篇预告:《输入与输出:Scanner与System类》)
47 11
|
13天前
|
安全 IDE Java
重学Java基础篇—Java Object类常用方法深度解析
Java中,Object类作为所有类的超类,提供了多个核心方法以支持对象的基本行为。其中,`toString()`用于对象的字符串表示,重写时应包含关键信息;`equals()`与`hashCode()`需成对重写,确保对象等价判断的一致性;`getClass()`用于运行时类型识别;`clone()`实现对象复制,需区分浅拷贝与深拷贝;`wait()/notify()`支持线程协作。此外,`finalize()`已过时,建议使用更安全的资源管理方式。合理运用这些方法,并遵循最佳实践,可提升代码质量与健壮性。
23 1
|
26天前
|
Java
课时14:Java数据类型划分(初见String类)
课时14介绍Java数据类型,重点初见String类。通过三个范例讲解:观察String型变量、"+"操作符的使用问题及转义字符的应用。String不是基本数据类型而是引用类型,但使用方式类似基本类型。课程涵盖字符串连接、数学运算与字符串混合使用时的注意事项以及常用转义字符的用法。
|
26天前
|
存储 Java 编译器
课时11:综合实战:简单Java类
本次分享的主题是综合实战:简单 Java 类。主要分为两个部分: 1.简单 Java 类的含义 2.简单 Java 类的开发
|
27天前
|
传感器 监控 Java
Java代码结构解析:类、方法、主函数(1分钟解剖室)
### Java代码结构简介 掌握Java代码结构如同拥有程序世界的建筑蓝图,类、方法和主函数构成“黄金三角”。类是独立的容器,承载成员变量和方法;方法实现特定功能,参数控制输入环境;主函数是程序入口。常见错误包括类名与文件名不匹配、忘记static修饰符和花括号未闭合。通过实战案例学习电商系统、游戏角色控制和物联网设备监控,理解类的作用、方法类型和主函数任务,避免典型错误,逐步提升编程能力。 **脑图速记法**:类如太空站,方法即舱段;main是发射台,static不能换;文件名对仗,括号要成双;参数是坐标,void不返航。
48 5
|
26天前
|
Oracle Java 关系型数据库
课时37:综合实战:数据表与简单Java类映射转换
今天我分享的是数据表与简单 Java 类映射转换,主要分为以下四部分。 1. 映射关系基础 2. 映射步骤方法 3. 项目对象配置 4. 数据获取与调试
|
11天前
|
Java
java常见的集合类有哪些
Map接口和Collection接口是所有集合框架的父接口: 1. Collection接口的子接口包括:Set接口和List接口 2. Map接口的实现类主要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap以及 Properties等 3. Set接口的实现类主要有:HashSet、TreeSet、LinkedHashSet等 4. List接口的实现类主要有:ArrayList、LinkedList、Stack以及Vector等