Java 高级应用编程 第一章 工具类

Wesley13 等级 130 0 0
标签: stringobject

一、Java API

Java API简介

1、API (Application Programming Interface) 应用程序接口

2、Java中的API,就是JDK提供的各种功能的Java类

3、JDK帮助文档   JAVA_API_CN.chm   官网地址http://www.oracle.com/technetwork/java/api-141528.html

如:

      java.lang
        Java语言包(包含String、Math、System等类),任何类中,该包中的类都会被自动导入。
      java.util
        包含一些实用的工具类( 包含 list, calendar, date等类)
      java.awt
        图形用户界面包。
      java.io
        提供多种输入/输出功能的类。

      java.net
        提供网络应用功能的类。

二、Object

(一)Object介绍及方法

1、Object类是所有类的超类, Object是Java语言中唯一一个没有父类的类。

     2、一个类可以不是Object类的直接子类,但一定是Object类的子类,Java中的每一个类都是从Object扩展来的。

     3、在Object类中定义的方法,在所有类中都可以使用。

(二)Object 类常用方法

1、public boolean equals(Object obj): 比较两个对象引用的值是否相等(比较地址)。指出调用该方法的对象是否与obj对象相等。即地址是否相等。

2、public int hashCode():该方法返回对象的哈希码,哈希码是一个代表对象的十六进制整数,比作对象的身份证号。在程序运行期间,每次调用同一个对象的hashCode()返回的哈希码必定相同,但是多次执行同一个程序,程序的一次执行和下一次执行期间同一个对象的哈希码不一定相同。实际上默认的哈希码是将对象的内存地址通过某种转换得到的,所以不同对象会有不同的哈希码

3、public String toString():返回 类名@hashcode ;事实上返回这样的字符串没有什么实际的意义。一般子类都会覆盖该方法,让它返回有意义的文本。

三、equals()  与 ==的区别

  理解equals()方法和==运算符的区别是非常重要的。
默认情况下(即没有被重写时)equals()只能比较引用类型,"=="既能比较引用类型又能比较基本类型。
equals()方法从Object类继承,即比较对象引用的值
一般都被子类方法覆盖,不再比较引用的值
"=="运算符:
比较基本数据类型:相当于算术等号
比较引用数据类型:比较引用的值,不能被覆盖。

四、包装类

  1、Java编程语言不把基本数据类型看作对象。Java 编程语言提供包装类来将基本数据类型看作对象。

2、在功能上包装类能够完成数据类型之间(除boolean)的相互转换,尤其是基本数据类型和String类型的转换。

3、包装类中包含了对应基本数据类型的值,封装了String和基本数据类型之间相互转换的方法,还有一些处理这些基本数据类型时非常有用的属性和方法。

(一)包装类简介

    基本数据类型不是对象层次结构的组成部分。有时需要像处理对象一样处理这些基本数据类型,可通过相应的“包装类”来将其“包装” 。

Java 高级应用编程 第一章 工具类

(二)字符串与基本数据类型、包装类型转换图

 Java 高级应用编程 第一章 工具类

1、基本数据类型转换为包装类

      int pInt = 500;
      Integer wInt = new Integer(pInt);

2、字符串转换为包装类

字符串通过构造方法转换为包装类

        String sInt = “500”;
        Integer wInt = new Integer(sInt);

       字符串通过包装类的valueOf(String s)转换为包装类

        String sInt = “500”;
        Integer wInt = Integer.valueOf(sInt);
      注意:字符串不能通过以上两种方式转换为Character

3、包装类转换为基本数据类型

包装类通过xxxValue()方法转换为基本数据类型

        Integer wInt = new Integer(500);
        int pInt = wInt.intValue();

4、包装类转换为字符串

包装类通过toString()方法转换为字符串

        Integer wInt = new Integer(500);
        String sInt = wInt.toString();

5、字符串转换为基本数据类型

字符串通过parseXXX(String s)方法转换为基本数据类型

        String sInt = “500”;
        int pInt = Integer.parsetIInt(sInt);

(三)自动的装箱和自动拆箱

1、在进行基本数据类型和对应的包装类转换时,系统将自动进行

2、JDK自从5.0版本后引入

3、方便程序的编写

      int pInt = 500;
      Integer wInt = pInt;
      int n = wInt;

五、字符串类

1、字符串表现形式可以分为两种:String和StringBuffer。

     2、不属于8种基本的数据类型,而是一种引用类型。

3、String对象代表一组不可改变的Unicode字符序列,对它的任何修改实际上又产生一个新的字符串,String类对象的内容一旦被初始化就不能再改变。

4、StringBuffer对象代表一组可改变的Unicode字符序列。

5、String类是final类型的类。

(一)String 对象的创建

String类的构造方法
1、初始化一个新创建的 String 对象,它表示一个空字符序列。

String 变量名 = new String () ;
2、初始化一个新创建的 String 对象,表示一个与该参数相同的字符序列

String 变量名 = new String (String value) ;
3、分配一个新的字符串,它包含当前包含在字符串缓冲区参数中的字符序列。

String 变量名 = new String (StringBuffer buf) ;
4、字符串文字常量本身是一个String对象
String 变量名 = “hello” ;

5、初始化一个新创建的 String 对象,通过使用指定的charset 解码指定的 byte 数组

String 变量名 = new String(byte[] bytes, String charsetName);

6、初始化一个新创建的 String 对象,通过使用指定的 charset解码指定的 byte 子数组,构造一个新的 String

String 变量名 = new String(byte[] bytes, int offset, int length, Charset charset);

7、连接操作符“+”,可以将其它各种类型的数据转换成字符串,并前后连接成新的字符串

String str1 = “hello ”;
String str2 = “world”;
String str = str1 + str2; //str为“hello world”;

(二)String 类的转换

Java 高级应用编程 第一章 工具类

(三)String 类中常用的方法

Java 高级应用编程 第一章 工具类

Java 高级应用编程 第一章 工具类      Java 高级应用编程 第一章 工具类

(四)StringBuffer 类

     StringBuffer类用于内容可以改变的字符串

可以使用StringBuffer来对字符串的内容进行动态操作,不会产生额外的对象

   (五)StringBuffer 对象的创建

1、构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符

StringBuffer 变量名 = new StringBuffer () ;

2、构造一个不带字符,但具有指定初始容量的字符串缓冲区。

StringBuffer 变量名 = new StringBuffer (int capacity ) ;

3、构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。

StringBuffer 变量名 = new StringBuffer (String value) ;

(六)StringBuffer 类中常用的方法

Java 高级应用编程 第一章 工具类

Java 高级应用编程 第一章 工具类

(七)==

在比较基本数据类型时,比较的是值

在比较引用数据类型时,比较的是地址

(八)equals

原生的(未被重写的)equals方法底层就是==,即比较两个对象的值,通常用来判断两个对象是否为同一个对象,返回值为true两个对象就为同一对象,当Object的子类重写以后就具有了其他功能,equals方法不能用来比较基本数据类型

(九)hashcode

hashcode(哈希码)哈希表记录每个对象存储的位置,因此可以将哈希码作为对象内存地址的表示,通常用hashcode去比较两个对象是否不是同一个对象,如果hashcode不同两个对象就不是同一个对象

(十)问:为啥不用hashcode比较两个对象是否为同一个对象

答:存在hashcode相同,equals返回结果为false的情况

(十一)String、StringBuffer、StringBuilder

String不可变字符序列
    StringBuffer、StringBuilder可变字符序列
    StringBuffer线程安全但是效率低,较早引入
    StringBuilder线程不安全但是效率高,较晚引入

六、Math 类

Math类提供了大量用于数学运算的方法

Math类是final类,因此不能从Math类继承

Math类中的方法都是static方法,因此不必创建Math类的对象就可以直接使用该类的方法

(一)Math 类中的常量

public static final double PI

public static final double PI

(二)Math 类中的常用方法

Java 高级应用编程 第一章 工具类

Java 高级应用编程 第一章 工具类

七、日期类

(一)Date  类

     java.util.Date。

Date 类表示指定的时间信息,可以精确到毫秒。

不支持国际化。

该类的许多方法已过时

获取当前系统时间:

new Date();

(二) Calendar  类

1、java.util.Calendar。
java.util.GregorianCalendar
2、常用的日期处理的对象。可以设置自己的时区和国际化格式。
3、是一个抽象类。
4、Calendar 抽象类定义了足够的方法,让我们能够表述日历的规则 。
5、获取Calendar对象的实例

Calendar c = Calendar.getInstance();

6、设置Calendar实例所表示的时间:

c.set(2011,6,16);

7、获取指定的时间属性

c.get(Calendar.YEAR);

(三)Calendar 类常用属性

Java 高级应用编程 第一章 工具类

收藏
评论区

相关推荐

前端面试题自检 JS CSS 部分
JS类型 JavaScript的简单数据类型Number , String , Boolean , Undefined , Null , Symbol typeof 操作符的返回值 number string boolean undefined object function
Java 面向对象 之 Object 类
<a href="http://www.verejava.com/?id=16992832835152">[http://www.verejava.com/?id=16992832835152](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2Fwww.verejava.com%2F%3Fid%
Java中为什么需要Object类,Object类为什么是所有类的父类
Java中Object是所有类的父类,所有类的对象都是Class类的实例。贴上java doc中的说明![](https://static.oschina.net/uploads/space/2017/0320/224831_Uobg_1400660.png) 为什么我们需要Object类 ============== 这个问题找到了一个外国哥们的回答,
Java基础入门之Object类、匿名内部类、构造方法的继承解析
点击上方“ **Java进阶学习交流** ”,进行关注 后台回复“**Java**”即可获赠Java学习资料 今 日 鸡 汤 古调虽自爱,今人多不弹。 前言 -- 大家好,我是Java进阶者。这篇文章我们主要介绍Java基础中的Object类、匿名内部类、构造方法的继承知识,一起来学习下吧! 一、Object类 ---------
Java学习随笔
#### Object类的toString方法 > 将一个对象返回为字符串形式,但一般使用的时候会覆盖重写toString方法 Object类是所有类的父亲 // public class Person { private String name; private int age; //======
java Clob类型 转String
1、我的数据库是oracle11g 遇到取出来的字段是clob类型,但是所需要的是string类型,写一个转换函数就可以解决问题了。 // Clob类型 转String public String ClobToString(Clob clob) throws SQLException, IOException {
java中字符串相等判断
字符串的判断有2种:         1、判断地址是否相等  用:==         2、判断值是否相等  用:equals方法 Object类作为所有类的超类,而Object类的equals方法是直接比较地址的,源码如下: public boolean equals(Object obj) {
java学习_5_21
数组的插入、删除、扩容本质上都是用的数组的复制。Java中数组的拷贝如下: **System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)** 1 public class ArrayCopy1 { 2 public static v
MD5签名问题
签名传入的参数中包含数组类型的参数,String\[\] xy = new String\[\]{”116.288418”, “39.832535”}; 加密过程中需要转换为字符串Arrays.toString(xy) public static Map<String, Object> addCommonParams(Map<String, Obj
C# 中合并2个 Dictionary
内置方法 ---- using System.Collections.Generic; using System.Linq; Dictionary<string, object> dicA = new Dictionary<string, object>() { { "Name", "姓名" },
GridView实现九宫格
GridView gv=(GridView)findViewById(R.id.g1);         ArrayList<HashMap<String,Object>>data=new ArrayList<HashMap<String, Object>>();         for(int i=0;i<images.length;i++)
Object类
作为万类之首的Object类,我们有必要详细全面的了解一下。Object类定义在Object.java文件,属于包java.lang。 Object类有一个私有方法private static native void registerNatives(). native是java语言的一个关键字.使用native关键字说明这个方法是原生函数,也就是这个
Scala 学习笔记(6)
一、单例对象 在Scala当中没有静态属性或方法,如果需要的话,可以通过object来实现。另外,如果你需要用到单例,也可以用object来实现。总结:object = static+singleton object ObjectTest {   var name = ""   var age = 0   def main(args : Ar
String
public final class String extends Object implements Serializable, Comparable<String>, CharSequence String 类型继承 Serializable, Comparable<String>, CharSequence 接口。 The String class r
String
### **一,String,StringBuffer,StringBuilder三者之间的关系** 三个类的关系:StringBuffer和StringBuilder都继承自AbstractStringBuilder这个类, 而AbstractStringBuilder和String都继承自Object这个类(Object是所有java类的超类)