java基础类库

 Java API(applicaton programming interface  应用程序接口) 就是JDK提供给我们使用的类,这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学会如何使用这些类即可。

1.运行java程序参数

 Java程序入口:main方法  public static void main(String[] args){…}

 a. public修饰符:java类由JVM调用,为了让JVM能够自由的调用main()方法,所以使用public修饰符把这个方法暴露出来。

 b. static修饰符:JVM调用主方法时,不会先创建该主类的对象,然后通过该对象来调用主方法。JVM直接通过该类来调用主方法,因此使用static修饰该方法。

 c. void返回值:因为主方法被JVM调用,该方法返回值将返给JVM没有意义,所以main方法没有返回值。

2.System类

 System类代表当前java程序的运行平台,程序不能创建System类的对象,System类提供了一些类变量和类方法,允许直接通过System类来调用这些类变量和类方法。System类提供了通知系统进行垃圾回收的gc()方法,以及进行通知系统进行资源清理的runFinalization()方法。System类还有两个获取系统当前时间的方法:currentTimeMillis()和nanoTime(),他们都返回一个lang型整数。

 System类的in、out、err分别代表系统的标准输入、标准输出和错误输出流,并提供了setIn()、setOut()、setErr()方法来改变系统的标准输入、标准输出和标准错误输出流。

3.Object类

 Object类是所有类、数组、枚举类的父类,也就是说java允许把任何类型的对象赋给Object类型的变量。当定义一个类时没有使用extends关键字为它显式指定父类,则该类默认继承Object父类。

3.1==和equals方法

        Java程序中测试两个变量是否相等有两种方式:一是利用==运算符,另一种是利用equals()方法。当使用==来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是数值类型(不一定要求数据类型严格相同),则只要两个变量的值相等,就将返回true。对于两个引用类型变量,只有它们指向同一个对象时,==才会返回true。==不可用于比较类型上没有父子关系的两个对象。Equals()方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较。Object类中的equals()方法内部使用的就是==比较运算符。如果希望采用自定义的相等标准,则可采用重写equals()方法来实现。

        String已经重写了Object的equals方法,String的equals()方法判断两个字符串想等的标准:只要两个字符串所包含的字符序列相同,通过equals()比较将返回true,否则将返回false。

“hello”直接量与newString(“hello”)的区别:

 当java程序直接使用形如“hello”的字符串直接量(包括可以在编译时就计算出来的字符串值)时,JVM将会使用常量池来管理这些字符串;当使用new  String(“hello”)时,JVM会先使用常量池来管理“hello”直接量,再调用String类的构造器来创建一个新的String对象,新创建的String对象被保存在堆内存中。即newString(“hello”)一共产生了两个字符串对象。

3.2 toString方法

       toString()方法是Object类里的一个实例方法,所有java类都是Object类的子类,因此所有的java对象都具有toString()方法。toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。

4.String类

       String类是不可变类,即一旦一个String对象被创建后,包含在这个对象中的字符序列是不可以改变的,直至这个对象被销毁。

4.1String类的构造方法


4.2String类常用方法

 boolean equals(Object obj) 判断两个字符串中的内容是否相同

 boolean equalsIgnoreCase(String str)  判断两个字符串中的内容是否相同, 忽略大小写

 boolean contains(String str) 判断该字符串中 是否包含给定的字符串

 boolean startsWith(String str) 判断该字符串 是否以给定的字符串开头

 boolean endsWith(String str) 判断该字符串 是否以给定的字符串结尾

 boolean isEmpty() 判断该字符串的内容是否为空的字符串  ""

 int length() 获取该字符串的长度

 char charAt(int index) 获取该字符串中指定位置上的字符

 String substring(int start) 从指定位置开始,到末尾结束,截取该字符串,返回新字符串

 String substring(int start,int end) 从指定位置开始,到指定位置结束,截取该字符串,返回新字符串

 int indexOf(int ch ) 获取给定的字符,在该字符串中第一次出现的位置

 int indexOf(String str) 获取给定的字符串,在该字符串中第一次出现的位置

 int indexOf(int ch,int fromIndex) 从指定位置开始,获取给定的字符,在该字符

 byte[] getBytes() 把该字符串 转换成 字节数组

 char[] toCharArray() 把该字符串 转换成 字符数组

 String replace(char old,char new) 在该字符串中,将给定的旧字符,用新字符替换

 String replace(String old,String new) 在该字符串中, 将给定的旧字符串,用新字符串替换

 String trim() 去除字符串两端空格,中间的不会去除,返回一个新字符串

 String toLowerCase() 把该字符串转换成 小写字符串

 String toUpperCase() 把该字符串转换成 大写字符串

 int indexOf(String str,int fromIndex) 从指定位置开始,获取给定的字符串,在该字符串中第一次出现的位置

5.StringBuffer类
StringBuffer对象代表一个字符序列可变的字符串,是线程安全的。StringBuffer常见方法:


注意:append、delete、insert、replace、reverse方法调用后,返回值都是当前对象自己,所以说,StringBuffer它可以改变字符序列的长度和内容。

6.StringBuilder类

 Stringbuilder和StringBuffer基本相似,两个类的构造器和方法也基本相同。不同的是StringBuffer是线程安全的,而String Builder则没有实现线程安全功能,所以性能略高。

7.java7的ThreadLocalRandom与Random

 Random类专门用于生成一个伪随机数,它有两个构造器:一个构造器使用默认的种子(以当前时间作为种子),另一个构造器需要程序员显式传入一个long型整数的种子。public Random():使用默认的种子(以当前系统时间作为种子);public Random(long seed):根据指定的种子。

 ThreadLocalRandom是Java7新增类,是Random类的子类,在多线程并发情况下,ThreadLocalRandom相对于Random可以减少多线程资源竞争,保证了线程的安全性。因为构造器是默认访问权限,只能在java.util包中创建对象,故,提供了一个方法ThreadLocalRandom.current()用于返回当前类对象.

 UUID:通用惟一识别:UniversallyUnique Identifier;在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。UUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成UUID.

8. Date类

 类 Date 表示特定的瞬间,精确到毫秒。Date类从JDK1.0起就开始存在了,它的大部分构造器、方法都已经过时,不在推荐使用。Date类常用方法:

● long getTime():返回该时间对应的long型整数,即从GMT1970-01-01  00:00:00到该Date对象之间的时间差,以毫秒作为记时单位。把日期对象转换成对应的时间毫秒值

9.DateFormat类

 DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如SimpleDateFormat类)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。

9.1日期格式

 要格式化一个当前语言环境下的日期也就是日期-> 文本),要通过下面的方法来完成。DateFormat是抽象类,我们需要使用其子类SimpleDateFormat来创建对象。

构造方法:


DateFormat类方法


代码演示:

//创建日期格式化对象,在获取格式化对象时可以指定风格

DateFormat df= newSimpleDateFormat("yyyy-MM-dd");//对日期进行格式化

Date date = new Date(1607616000000L);

String str_time =df.format(date);

System.out.println(str_time);//2020年12月11日

DateFormat类的作用:即可以将一个Date对象转换为一个符合指定格式的字符串,也可以将一个符合指定格式的字符串转为一个Date对象。

指定格式的具体规则可参照SimpleDateFormat类的说明,规则是在一个字符串中,会将以下字母替换成对应时间组成部分,剩余内容原样输出:

 当出现y时,会将y替换成年

 当出现M时,会将M替换成月

 当出现d时,会将d替换成日

 当出现H时,会将H替换成时

 当出现m时,会将m替换成分

 当出现s时,会将s替换成秒

9.2DateFormat类常用方法

format方法,用来将Date对象转换成String

parse方法,用来将String转换成Date(转换时,该String要符合指定格式,否则不能转换)。

代码演示:

把Date对象转换成String

     Datedate = new Date(1607616000000L);//Fri Dec 11 00:00:00 CST 2020

    DateFormatdf = new SimpleDateFormat(“yyyy年MM月dd日”);

    Stringstr = df.format(date);

    //str中的内容为2020年12月11日

 

把String转换成Date对象

    Stringstr = ”2020年12月11日”;

    DateFormatdf = new SimpleDateFormat(“yyyy年MM月dd日”);

    Date date= df.parse( str );

    //Date对象中的内容为Fri Dec 11 00:00:00 CST2020

10Calendar类概念

 Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。

 Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,将语言敏感内容处理好,再返回子类对象,如下:

Calendar类静态方法:


Calendar c =Calendar.getInstance();  //返回当前时间

 

10.1Calendar类常用方法

public static Calendar getInstance() //获取日期对象

public int get(int field)  //获取时间字段值

public void add(int field,int amount) //指定字段增加某值

public final void set(int field,int value)//设置指定字段的值

public final Date getTime()   //获取该日历对象转成的日期对象






  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值