java常用系统类

Java最顶层的根类是Object

Object是所有类的祖先类,定义了所有对象都具有的基本状态和行为。在定义类的时候,即使没有指定父类,Java也会自动将其定义为Object的子类。

Java核心包

Java的核心包一共有12个,其中:
(1)java.lang包封装了所有编程应用的基本类;
(2)java.util 包提供实用程序类和集合类,如系统特性定义和使用、日期函数类、集合等工具;
(3)java.applet 包为Applet 提供执行需要的所有类,主要是访问Applet 内容的通信类;
(4)java.rmi 包提供程序远程方法调用所需的类。

Java中System类

System类是一个final类,在java.io包下面,所有的方法都用类变量来调用,对System 类不可能实例化。System类主要用来提供标准输入/输出和系统环境信息的访问设置。而System类的属性有以下几种:
(1)public static final InputStream in:标准输入;
(2)public static final OutputStream out:标准输出;
(3)public static final PrintStream err:标准错误输出。

Java中String类

在String的方法中,
(1)toLowerCase()方法是转换成小写;
(2)valueOf()方法是获得相应数值;
(3)charAt()方法是提取字符串中指定位置的字符;
(4)append()是StringBuffer的方法(不在String类中)。

Java中StringBuffer类

获取和设置StringBuffer 对象的长度和容量的方法有length()、capacity()、setLength(),调用方式如下:
(1)sl.length():返回sl中字符个数;(英文字符和汉字都是一个字符串长度)
(2)sl.capacity():返回sl的容量,即内存空间数量,通常会大于length;
(3)sl.setLength(int newLength):改变sl中字符的个数,如果newLength大于原个数,则新添的字符都为空(“ ”);相反,字符串中的最后几个字符将被删除。
例题:

StringBuffer buf1=new StringBuffer(20);
System.out.println(buf1.length()+","+buf1.capacity());

result:

0,20

String,StringBuffer和StringBuilder类的区分

1.定义区分
String:字符串常量
StringBuffer 与 StringBuilder是字符缓冲变量

2.线程安全区分:
StringBuffer 与 StringBuilder 中的方法和功能完全是等价的,只是StringBuffer中的方法大都采用了synchronized 关键字进行修饰,因此是线程安全的,而StringBuilder没有这个修饰,可以被认为是线程不安全的。

3.运行速度:
StringBuilder和StringBuffer的“可变”特性总结如下:
(1)append,insert,delete方法最根本上都是调用System.arraycopy()这个方法来达到目的
(2)substring(int, int)方法是通过重新new String(value, start, end - start)的方式来达到目的。因此,在执行substring操作时,StringBuilder和String基本上没什么区别。
总的来说,三者在执行速度方面的比较:StringBuilder > StringBuffer > String。
4.使用场景:
(1)使用String类的场景:在字符串不经常变化的场景中可以使用String类,例如常量的声明、少量的变量运算。

(2)使用StringBuffer类的场景:在频繁进行字符串运算(如拼接、替换、删除等),并且运行在多线程环境中,则可以考虑使用StringBuffer,例如XML解析、HTTP参数解析和封装。

(3)使用StringBuilder类的场景:在频繁进行字符串运算(如拼接、替换、和删除等),并且运行在单线程的环境中,则可以考虑使用StringBuilder,如SQL语句的拼装、JSON封装等。
5.区分:
(1)String类型的字符串对象是不可变的,一旦String对象创建后,包含在这个对象中的字符系列是不可以改变的,直到这个对象被销毁;
(2)StringBuilder和StringBuffer类型的字符串是可变的,不同的是StringBuffer类型的是线程安全的,而StringBuilder不是线程安全的;
(3)如果是多线程环境下涉及到共享变量的插入和删除操作,StringBuffer则是首选。如果是非多线程操作并且有大量的字符串拼接,插入,删除操作则StringBuilder是首选。毕竟String类是通过创建临时变量来实现字符串拼接的,耗内存还效率不高,怎么说StringBuilder是通过JNI方式实现终极操作的。

String类中的字符串连接使用的是“+”,而StringBuffer中的连接使用的是append()方法。
StringBuffer是不能直接转成String类对象,必须调用toString()方法才可以把一个StringBuffer的对象变为String类的对象。

字符串创建对象和new创建对象的区别

双引号括起来的是字符串常量(string),用单引号括起来的是字符常量(char)。

String s1="bc";
String s2="bc";
创建了一个对象

Java用字符串池管理字符串,Java程序运行时JVM会在内存创建一个 字符串缓冲池。对于Java变量操作,内存主要分为栈和堆两部分。栈用来保存基本类型或者内置类型,主要有char、byte、short、int、long、float、double、boolean和对象的引用,数据可以共享,速度仅次于寄存器(register),快于堆。堆是用于存储对象的内存空间,字符串缓冲池则为堆空间,堆中可以存放隐式对象(如字符串常量),也可以存放显示对象(如用new创建对象)。在本例中,当使用String s1="bc"创建对象时,JVM首先判断缓冲池有没有值为“bc”的对象,如果没有,则构造一个,使s1引用该对象。当s2创建时,JVM在缓冲池中找到相同值的对象,则s2引用s1所引用的对象“bc”.

String s3="bc";
String s4=new String(s3);
创建了两个对象

在本例中,使用new操作符创建对象,这将调用String类的构造方法来创建一个新的对象,使其表示一个与参数相同的字符串序列。换句话来说,新创建的字符串是该参数字符串的副本。因此创建了两个对象:一个是通过字符串常量的形式在字符串缓冲池中创建的;另一个是通过new操作符在堆中创建的。

Java中匹配器类(Matcher)

(1)boolean matcher.find()方法用于寻找下一个模式匹配串;
(2)int matcher.start()方法用于返回匹配串的一个起始索引整数值;
(3)int matcher.end()方法用于返回匹配串的一个终止索引整数值;
(4)static boolean matches()方法用于输入字符串与模式串比较的方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Java常用系统常用的包主要有以下几个: 1. java.lang包:这是Java中最基础的包,其中包含了Java语言的核心,如Object、String、Thread、Math等。这些Java程序中经常被使用,因此无需导入该包,就可以直接使用其中的。 2. java.util包:这是Java常用的工具包,其中包含了一些常用的工具,如ArrayList、LinkedList、HashMap、Hashtable等。这些可以帮助我们更方便地管理数据和集合。 3. java.io包:这是Java中用于文件和输入输出的包,其中包含了一些常用的输入输出,如File、FileReader、FileWriter、BufferedReader等。这些可以帮助我们读取和写入文件,进行输入输出操作。 4. java.net包:这是Java中用于网络编程的包,其中包含了一些常用的网络编程,如Socket、ServerSocket、URL、URLConnection等。这些可以帮助我们进行网络连接和通信。 Java常用系统的特点主要有以下几个: 1. Java常用系统都是Java语言自带的库,无需额外下载或安装,可以直接在Java程序中使用。 2. Java常用系统提供了丰富的功能和方法,可以帮助我们更方便地进行数据处理、文件操作、网络通信等。 3. Java常用系统的使用方法相对简单,可以通过直接创建对象或调用静态方法来使用,无需复杂的配置和初始化。 4. Java常用系统的文档和使用说明相对完善,可以通过Java官方文档或在线文档来查看的使用方法和参数说明。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值