1、String类和StringBuffer类

字符串中可以包含任意字符,这些字符必须包含在一对双引号” “之内

1.1String类

  String a=null与String a=""的区别,前者表示对象是空对象即没有对象,后者表示有对象(只是对象没有内容)。

  构造方法:String();//创建一个内容为空的字符串

       String(char[] value);//根据指定的字符数组创建对象

       String(String value);//根据指定的字符串内容创建对象

  常见方法:int indexOf(int ch);//返回指定字符在此字符串中第一次出现处的索引

       int lastIndexOf(int ch);//返回指定字符在此字符串中第一次出现处的索引

       char charAt(int index);//返回字符串中index位置上的字符,其中index的取值范围是:0~(字符串长度-1)

       int length();//返回此字符串的长度

       boolean equals(Object anObject);//将此字符串与指定字符串比较

       boolean isEmpty();//当且仅当字符串的长度为为0时返回true

       boolean contains(CharSequeue cs);//判断此字符串是否包含了指定的字符串

       boolean starts/endsWith(String string);//判断此字符串与指定的字符串时候开始或结束

       String toLower/toUpperCase();//全部转换为小写或者大写

       String valueOf(int i);//整数转换为字符串,float、double、char等其它基本类型的数据都可以通过该方法转为String字符串类型

       char[] toCharArray();//将此字符串转换为一个字符数组

       String replace(CharSequeue oldstr,CharSequeue newstr);//返回一个新的字符串,通过newstr替换此字符串中出现的所有oldstr得到

       String[] split(String regesx);//根据参数regex将原来的字符串分割为若干个子字符串

       String substring(int beginIndex,int endIndex);//返回一个新的字符串,它包含此字符串中从索引beginIndex到索引endIndex之间的所有字符

       String trim();//返回一个新的字符串,它去除了原字符串首尾的空格

  equals()方法用于比较两个字符串中的字符是否相等,==方法用于比较两个字符串对象的地址是否相同。

1.2StringBuffer类

  由于字符串是常量,因此一旦创建,其内容和长度是不可改变的。如果需要对一个字符串进行修改,则只能创建新的字符串。为了便于字符串的修改,JDK提供了一个StringBuffer类(也称为字符串缓冲区),它的长度和内容是可以改变的。StringBuffer类似一个字符容器,当且在其中添加或删除字符串时,并不会产生新的StringBuffer对象。

  常用方法:

    StringBuffer append(char c);//添加参数到StringBuffer对象中,始终将这些字符添加到缓冲区的末尾;

    StringBuffer insert(int offset,String str);//将字符串中的offset位置插入字符串str,插入到指定位置;

    StringBuffer deleteCharAt(int index);//移除指定位置的字符;

    StringBuffer delete(int start,int end);//删除Stringbuffer对象中指定范围的字符或字符串序列;

    StringBuffer replace(int start,int end,String s);//在Stringbuffer对象中替换指定的字符或字符串序列

    void setCharAt(int dex,char ch);//修改指定位置index处的字符序列

    String toString();//返回Stringbuffer缓冲区的字符串

    StringBuffer reverse();//将此字符串反转取代

1.3String类和StringBuffer类的比较:

  1、String类表示的字符串是常量,一旦创建后,内容和长度都是无法改变的。而StringBuffer表示字符容器,其内容和长度都可以随时修改。

  2、String类覆盖了Object类的equals()方法,而StringBuffer类没有覆盖Object类的equals()方法。

  3、String类对象可以用操作符+进行连接,而StringBuffer类对象之间不能。

2、System类与Runtime类

2.1、System类定义了一些与系统相关的属性和方法,它所提供的属性和方法都是静态的。

常用方法:

  static void exit(int status);//该方法用于终止当前正在运行的Java虚拟机,其中参数status表示状态码,若状态码非0,则表示异常终止

  static long gc();//运行垃圾回收器,并对垃圾进行回收

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

  static void arraycopy(Object src,int srcPos,Object dest,int desPos,int length);//从src引用的指定源数组复制到dest引用的数组,复制从指定的位置开始,到目标数组的指定位置结束,快速拷贝一个数组,且目标数组必须要有足够的空间来存放拷贝的元素。

  static Properies getProperties();//取得当前的系统属性,返回一个Properties对象,其中封装了系统的所有属性,这些属性是以键值对的形式存在

  static String getProperty(String key);//获取指定键描述的系统资源

2.2、Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程,并且只有一个实例,因此该类采用单例模式进行设计,对象不可以直接实例化。

  Runtime run=Runtime.getRuntime();

  availableProcessors();//返回当前虚拟机的处理器个数

  freeMemory();//空闲内存数

  maxMemory();//最大内存数

  exec();//用于执行一个dos命令,返回一个Process对象,该对象表示操作系统的一个进程

3、Math类与Random类

3.1、Math类中都是static方法和两个静态常量PI和E,分别代表数学常量∏和e。

  round(double n);//方法用于对某个小数进行四舍五入,此方法会将小数点后面的数字全部忽略,返回一个int值,

  ceil(int n)//方法求大于参数的最小整数,返回为double

  floor(int n);//方法求小于参数的最大整数,返回为double

  random();//方法用于生成一个大于等于0.0小于1.0随机值

3.2、Random类,它可以在指定的取值范围内随机产生数字

构造方法:

  Random();//用于创建一个伪随机数生成器

  Random(long seed);//使用一个long型的seed种子创建伪随机数生成器,用于产生相同序列的随机数(传入种子相同即可),如果没有指定种子,系统会以当前时间戳作为种子。

常用方法:

   boolean nextBoolean();//随机生成boolean类型的随机数

  boolean nextDouble();//随机生成double类型的随机数,返回0.0和1.0之间double类型的值

  boolean nextFloat();//随机生成float类型的随机数

  int nextInt();//随机生成int类型的随机数

  int nextInt(int n);//随机生成0~n之间int类型的随机数

  long nextLong();//随机生成long类型的随机数

4、包装类

一个数据是基本数据类型,则它没有方法可言,把它变为引用类型,则有很多方法可用。

基本数据类型——包装类(集合中经常使用)

byte——Byte  long——Long

char——Character  float——Float

int——Integer  double——Double

short——Short  boolean——Boolean

包装类和基本数据类型在进行转换时,引入了装箱和拆箱的概念,其中装箱是指将基本数据类型的值转为引用数据类型;反之,拆箱是指将引用数据类型的对象转为基本数据类型。

Integer常用的方法

  toBinaryString(int i);//以二进制无符号整数形式返回一个整数参数的字符串

  toHexString(int i);//以十六进制无符号整数形式返回一个整数参数的字符串

  toOctalString(int i);//以八进制无符号整数形式返回一个整数参数的字符串

  valueOf(int i);//返回一个表示指定的int值的integer实例

  valueOf(String s);//返回保存指定的String值的Integer对象

  parseInt(String s);//将字符串参数作为有符号的十进制整数进行解析

  intValue();//将Integer类型的值以int类型返回

  int parseInt(String s,int radix);//将S转换为radix进制的int数值,静态方法

1、包装类都重写了Object类中的toString()方法,以字符串的形式返回被包装的基本数据类型的值。

2、除了Character外,包装类都有valueOf(String s)方法,可以根据String类型的参数创建包装类对象,但参数字符串s不能为null,而且字符串必须是可以解析为相应基本类型的数据。

3、除了Character外,包装类都有parseXXX(String s)的静态方法,将字符串转换为对应的基本类型的数据。

JDk5.0新特性——自动装箱和拆箱

5、Date类、Calendar类与DateFormat类

5.1Data类

  构造方法:

    Data();//用来创建当前日期时间的Data对象。

    Data(long date);//用于创建指定时间的Data对象,其中date参数表示1970年1月1日00:00:00(成为历元)以来的毫秒数,即时间戳。

5.2Calendar类:用于完成日期和时间字段的操作,它可以通过特定的方法设置和读取日期的特定部分,比如年、月、日、时、分、秒等。Calendar类是一个抽象类,不可以被实例化,在程序中需要调用其静态方法getInstance()来得到一个Calendar对象:

  Calendar calendar=Calendar.getInstance();

常用方法:

  int get(int field);//返回指定日历字段的值

  void add(int field,int amount);//根据日历规则,为指定的日历字段添加或减去指定的时间量

  void set(int field,int value);//为指定日历字段设置指定值

  void set(int year,int month,int data );//设置calendar对象的年、月、日三个字段的值

  void set(int year,int month,int data ,int hourOfDay,int minute,int second);//设置Calendar对象的年月日时分秒六个字段的值

Calendar.YEAR,Calendar.MONTH,Calendar.SECOND//年月秒,注意:月份的起始值是从0开始而不是1。

Calendar对象与Date对象的相互转化:Calendar的getTime()返回一个表示Calendar时间值的Date对象,同时Calendar有一个steTime(Date date)方法,setTime()方法接受一个Date对象表示的时间值设置给Calendar对象。

5.3DateFormat类:专门用于将日期格式化为字符串或者用特定格式显示的日期字符串转换为一个Date对象。是抽象类,不能被实例化,调用相应的静态方法。

常用方法:

  static DateFormat getDateInstance();//用于创建默认语言环境和格式化风格的日期格式器

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

  Date parse(String source);//将给定字符串解析成一个日期

DateFormat类中定义了四个常量值用于参数传递给这些方法,其中包括FUll(完整格式)、LONG(长格式)、MEDIUM(普通格式)和SHORT(短格式)。

5.3.1simpleDateFormat类是DateFormat类的子类,使用new关键字创建实例对象,构造方法接受一个格式字符串参数,表示日期格式模板。

SimpleDateFormat format=new SimpleDateFormat("yyyy-mm-dd--HH:mm;;ss;sss",locale.CHINA);

只要传入合适的格式字符串参数,就能解析各种形式的日期字符串或者将Date日期格式化成任何形式的字符串。

6、JDk新特性——swith语句支持字符串类型

swith();//语句参数可以接受int、char、string类型。

  

第三小节之Java API的更多相关文章

  1. ElasticSearch实战系列三: ElasticSearch的JAVA API使用教程

    前言 在上一篇中介绍了ElasticSearch实战系列二: ElasticSearch的DSL语句使用教程---图文详解,本篇文章就来讲解下 ElasticSearch 6.x官方Java API的 ...

  2. Hbase学习(三)过滤器 java API

    Hbase学习(三)过滤器 HBase 的基本 API,包括增.删.改.查等. 增.删都是相对简单的操作,与传统的 RDBMS 相比,这里的查询操作略显苍白,只能根据特性的行键进行查询(Get)或者根 ...

  3. Hadoop 系列(三)Java API

    Hadoop 系列(三)Java API <dependency> <groupId>org.apache.hadoop</groupId> <artifac ...

  4. ElasticSearch6(三)-- Java API实现简单的增删改查

    基于ElasticSearch6.2.4, Java API创建索引.查询.修改.删除,pom依赖和获取es连接 可查看此文章. package com.xsjt.learn; import java ...

  5. Kafka系列三 java API操作

    使用java API操作kafka 1.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs ...

  6. Hadoop之HDFS(三)HDFS的JAVA API操作

    HDFS的JAVA API操作 HDFS 在生产应用中主要是客户端的开发,其核心步骤是从 HDFS 提供的 api中构造一个 HDFS 的访问客户端对象,然后通过该客户端对象操作(增删改查)HDFS ...

  7. Java-MyBatis: MyBatis3 | Java API

    ylbtech-Java-MyBatis:  MyBatis3 | Java API 1.返回顶部 1. Java API 既然你已经知道如何配置 MyBatis 和创建映射文件,你就已经准备好来提升 ...

  8. 【分布式】Zookeeper使用--Java API

    一.前言 上一篇博客我们通过命令行来操作Zookeper的客户端和服务端并进行相应的操作,这篇主要介绍如何通过API(JAVA)来操作Zookeeper. 二.开发环境配置 首先打开Zookeeper ...

  9. Elasticsearch的CRUD:REST与Java API

    CRUD(Create, Retrieve, Update, Delete)是数据库系统的四种基本操作,分别表示创建.查询.更改.删除,俗称"增删改查".Elasticsearch ...

随机推荐

  1. IDEA打开最近打开的项目以及关闭项目

    关闭的是当前项目

  2. CentOS 系统安装 nodejs 及相关配置

    概述 今天我在我的 AWS EC2 服务器上安装了 nodejs.没想到竟然这么麻烦,比在 windows 和 mac 上麻烦多了.所以我把心得记录下来,供以后开发时参考,相信对其他人也有用. 参考资 ...

  3. Linux常用命令:修改文件权限chmod 754/744

    常用命令:chmod 777  文件或目录 chmod  777 /etc/squid 运行命令后,squid文件夹(目录)的权限就被修改为777(可读可写可执行). Linux系统中,每个用户的角色 ...

  4. Day02:变量 / JAVA基本类型

    变量 什么是变量? 变化数值的载体 变量声明.初始化.使用 声明变量  类型 大小(占用空间) int x; 初始化变量 (赋值) 给予占用空间 int x=35; 使用变量 直接使用变量名 注意: ...

  5. python学习之那些由print引起的困惑

    该文索所起之因:在练习列表的操作时,要输出一波操作后的列表,但是一直让本人耿耿于怀的时下边的这个现象: 红色框框里是字符串,黄色框框里是列表,同样是只对一个元素进行的操作,为啥输出时字符串是作为一个整 ...

  6. java中String中的endsWith()方法

    解释:endsWith() ——此方法测试字符串是否以指定的后缀 suffix 结束. 此方法的定义:public boolean endsWith(String suffix) 我这里判断的是路径是 ...

  7. 2031 HDOJ 进制转换

    Problem Description 输入一个十进制数N,将它转换成R进制数输出.   Input 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=1 ...

  8. 微信小程序--catchtap&bindtap

    转自:https://www.cnblogs.com/heron-yu/p/7244481.html 转自:http://blog.csdn.net/xiaochun365/article/detai ...

  9. python 并发编程 多线程 GIL与Lock

    GIL与Lock Python已经有一个GIL来保证同一时间只能有一个线程来执行了,为什么这里还需要互斥锁lock? 锁的目的是为了保护共享的数据,同一时间只能有一个线程来修改共享的数据 GIT保证了 ...

  10. python 并发编程 多线程与多进程的区别

    1.开进程的开销远大于开线程 2 同一进程内的线程共享该进程的数据,进程之间地址空间是隔离的 1 开进程的开销远大于开线程 from multiprocessing import Process de ...