一、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和基本数据类型之间相互转换的方法,还有一些处理这些基本数据类型时非常有用的属性和方法。

  (一)包装类简介

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

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

    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 类的转换

  

  (三)String 类中常用的方法

     

  (四)StringBuffer 类

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

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

  (五)StringBuffer 对象的创建

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

      StringBuffer 变量名 = new StringBuffer () ;

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

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

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

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

  (六)StringBuffer 类中常用的方法

  (七)==

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

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

  (八)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 类中的常用方法

七、日期类

   (一)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 高级应用编程 第一章 工具类的更多相关文章

  1. Java 高级应用编程 第二章 集合

    一.Java 中的集合类 1.集合概述 Java中集合类是用来存放对象的 集合相当于一个容器,里面包容着一组对象 —— 容器类 其中的每个对象作为集合的一个元素出现 Java API提供的集合类位于j ...

  2. 20145330《Java学习笔记》第一章课后练习8知识总结以及IDEA初次尝试

    20145330<Java学习笔记>第一章课后练习8知识总结以及IDEA初次尝试 题目: 如果C:\workspace\Hello\src中有Main.java如下: package cc ...

  3. Windows核心编程第一章.错误处理

    Windows核心编程第一章,错误处理. 一丶错误处理 1.核心编程学习总结 不管是做逆向,开始做开发.在Windows下.你都需要看一下核心编程这本书.这本书确实写得很好.所以自己在学习这本书的同时 ...

  4. Java中的AES加解密工具类:AESUtils

    本人手写已测试,大家可以参考使用 package com.mirana.frame.utils.encrypt; import com.mirana.frame.constants.SysConsta ...

  5. java里poi操作excel的工具类(兼容各版本)

    转: java里poi操作excel的工具类(兼容各版本) 下面是文件内具体内容,文件下载: import java.io.FileNotFoundException; import java.io. ...

  6. Java判断不为空的工具类总结

    1.Java判断是否为空的工具类,可以直接使用.包含,String字符串,数组,集合等等. package com.bie.util; import java.util.Collection; imp ...

  7. Java字符串转16 进制工具类Hex.java

    Java字符串转16 进制工具类Hex.java 学习了:https://blog.csdn.net/jia635/article/details/56678086 package com.strin ...

  8. “全栈2019”Java第七十九章:类中可以嵌套接口吗?

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  9. “全栈2019”Java第三十六章:类

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

随机推荐

  1. mysql主从同步与防火墙端口的设定

    一.背景: 之前做主从同步时,把从库防火墙关了,现在开启防火墙后,从库不同步了 二.解决思路: 1.首先查看了mysql占用的端口,然后开启,tcp/udp都开了,结果还是不行 firewall-cm ...

  2. webpack学习(四)extract-text-webpack-plugin插件

    二.extract-text-webpack-plugin插件 从 bundle 中提取文本(CSS)到单独的文件 安装 npm install extract-text-webpack-plugin ...

  3. BZOJ 3680: 吊打XXX (模拟退火)

    //yy:今天简单入门学了下ORZ 爬山算法:兔子朝着比现在高的地方跳去.它找到了不远处的最高山峰.但是这座山不一定是珠穆朗玛峰.这就是爬山算法,它不能保证局部最优值就是全局最优值. 模拟退火:兔子喝 ...

  4. CentOS查看线程、硬盘、内存、cpu、网卡

    1.查看硬盘 [mushme@investide ~]$ df -ah 2.查看内存 [mushme@investide ~]$ free -m 3.监控系统的负载 w    查看当前系统的负载,详细 ...

  5. 由.def文件生成lib文件[转]

    最近在学习curl库时,碰到一个问题,从官网上下载了一个lib版的,却发现只有.dll,没有lib文件,感觉很奇怪,google了之后才知道,原来库作者的用意是让用户自己生成lib文件,下载到的lib ...

  6. supervisord的安装

    作用: 用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制. 安装流程 ...

  7. Mysql不同表的同名字段索引名可以相同

    mysql中不同表的相同字段索引是可以重名的,因为索引文件一表一个: 命名规则: 普通索引:idx_字段名 唯一索引:ux_字段名

  8. Spring 整合Mybatis dao原始方法

    先看一下项目图,基本就理解了整合的内容 这次主角不再是Mybats的配置文件SqlMapConfig.xml了,而是Spring的applicationContext.xml applicationC ...

  9. 【Java】使用Atomic变量实现锁

    Atomic原子操作 在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类 Java从JDK1.5开始提供了java.uti ...

  10. 从技术上分析八叉网www.xxxxxxxxvideos.com的自动定时发布文章功能是怎么实现的

    做网站开发的都需要用到网站广告自动定时发布功能,也就是说,编辑在网站后台把文章编写好之后,设置发布时间,点确定后发布,这时在网站前台访客是看不到这篇文章的,必须要等到文章设置的发布时间之后才能看到.八 ...