黑马程序员_API

                     ------- android培训java培训、期待与您交流! ----------

            ======================API=========================================

                              看api的步骤:

1、看类的说明。其所属的包以及出现的版本。

2、看其构造函数。

3、看普通的方法。看时注意参数,和返回值类型。

                              Object类

1、 private static native void registerNatives ();

见到本地关键字修饰的方法,这个方法的源代码,不是Java语言编写,C++写的

调用本地操作系统功能

2、 public boolean equals(Object obj){  return this == obj ;}

没有覆盖前,比较对象的地址。

覆盖equals方法,建立对象自己的比较方法,比较对象中的成员变量的值。

覆盖equals方法:

 1 public boolean equals(Object obj){
 2 if(this==obj)
 3
 4 return true;
 5
 6 if(obj==null)
 7
 8 return false;
 9
10 if(obj instanceof People){
11
12 People p=(People)obj;//People是自定义的类
13
14 return this.name.equals(p.name)&&this.age==p.age;
15
16 }
17
18 return  true;
19
20 }

toString

返回一个字符串,方法的意义,返回对象的字符串表现形式

没有覆盖之前 类名[email protected]十六进制

覆盖toString方法,返回自定义的对象的字符串表现形式

返回对象中的成员变量的值

例如:public String toString(){

return “Person”+this.name”+”...”+this.age;

}

                                与字符串有关的类

1、String类

String类的对象是不可以改变的,但是该对象的引用却可以改变。

2、字符串的常见方法

判断:

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

判断是否以某个字符串开头 boolean startWith(String str)

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

获取:

获取指定位置上的单个字符  char chatAt(int index)

获取指定字符在字符串中第一次出现的下标 int indexOf(char ch)

获取指定字符在字符串中第一次出现的下标 int indexOf(char ch,int fromindex)

获取指定字符串在字符串中第一次出现的下标 int indexOf(String s)

获取指定字符串在字符串中第一次出现的下标 int indexOf(String s, ,int fromindex)

获取字符串的一部分 返回新的String  substring(int start,int end)包含头,不包含尾

获取字符串的一部分 返回新的String  substring(int start)包含头,后面的全要

获取字符串中字符的个数 int length()

转换:

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

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

字符串转成大写字母  String  toUpperCase()

字符串转成小写字母  String  toLowerCase()

将其他数据类型转成字符串  static String valueOf()

其他方法:

切割字符串,返回字符串数组 String[] split()

替换字符串,返回新的字符串 String replace()

去掉字符串两端的空格,返回新的字符串 String trim()

比较字符串谁大谁小 按照字典顺序比较int compareTo(String s)

3、StringBuffer类和StringBuilder常见方法

将数组追加到缓冲区StringBuffer append()\\在原有的常量池上追加

删除缓冲区中的数据StringBuffer delete()

在指定的位置上插入数据StringBuffer insert()

修改指定位置上的单个字符void  setCharAt()

将缓冲区变成字符串,可以使用String类方法String toString()

注意:StringBuilder的功能和StringBuffer一模一样。前者是JDK5以后出现的。

4、String和StringBuffer的区别?

String的长度固定。

StringBuffer的长度可变。

StringBuffer和StringBuilder的区别?

StringBuffer的线程安全,效率低。

StringBuilder的线程不安去,效率高

5、String类的面试题

A:字符串一旦被赋值就不能被改动。

注意:这里的改动指的是字符串的内容,而不是字符串对象的引用。

B:String s = new String("hello");和String s = "hello";有区别吗?是什么呢?

有。前者创建了两个对象。后者创建了一个对象。

C:看程序,写结果

 1 String s1 = new String("hello");
 2
 3 String s2 = new String("hello");
 4
 5 System.out.println(s1==s2);\\false
 6
 7 System.out.println(s1.equals(s2));\\true
 8
 9
10
11 String s3 = new String("hello");
12
13 String s4 = "hello";
14
15 System.out.println(s3==s4);\\false
16
17 System.out.println(s3.equals(s4));\\true
18
19
20
21 String s5 = "hello";
22
23 String s6 = "hello";
24
25 System.out.println(s5==s6);\\true
26
27 System.out.println(s5.equals(s6));\\true
28
29 D:看程序,写结果
30
31 String s7 = "hello";
32
33 String s8 = "world";
34
35 String s9 = "helloworld";
36
37 System.out.println(s9==s7+s8);\\false
38
39 System.out.println(s9=="hello"+"world");\\true

总结:变量就直接造,常量先找,如果有就使用,否则就造。

                              Integer类

1、常见方法:(也是将字符串转换成转换成基本数据类型的)

static int parseInt(String s)将数字格式的字符串转成基本数据类型

Integer(String s)构造方法将数字格式的字符串,包装成Integer类型对象

intvalue()将构造方法中包装的字符串,转成基本数据类型

2、自动装箱和拆箱,1.5版本后的新特性

装箱:将基本数据类型封装成对象 Integer xx = 10;

  拆箱:将封装成对象的基本数据类型,转成基本数据类型  xx+1

3、Integer类要注意的问题

Integer a=100;

Integer b=100;

System.out.println(a==b);\\true

虽然“==”比较的还是地址,但是如果如果所赋的值不超过byte 的范围就会直接令b=a, 不会开辟新空间。

                                  Random类

1、两个构造

Random(); Random(long seed);

Seed(种子)不同,产生的随机数就不同

2、常用方法

nextInt(int n)

产生[0,n]之间的int值

                                 Scanner类

1、Scanner的构造格式:

Scanner sc = new Scanner(System.in);

2、next()和nextLine()的区别

next()只会扫描有效字符,在扫描到结束符如(空格键、Tab键和Enter键)时结束,所 以next()扫描到的字符串前后不会包含空格键、Tab键和Enter键。

nextLine()扫描行分隔符(Enter)之前的所有字符,所以会包含空格。

                                对日期/时间有关类的总结

1、有关的类:

Date类、Dateformat类、SimpleDateFormat和Calendar类

2、Date中常用的方法:

毫秒值--->日期对象:

Date类的构造函数:Date(long date)

Date类中void setTime(long time)

日期对象---->毫秒值

Date类中long getTime():

System类中static long currentTimeMills();获取当前日期毫秒值。

3、Dateformate类是抽象类,所以只能通过子类对象来实现其中的方法。

使用静态方法,类名调用 getDateInstance()返回DateFormat类的子类对象

DateFormat df = DateFormat.getDateInstance();//返回的是SimpleDateFormat对象

DateFormate df=new SimpleDateFormate();

DateFormate中有个将字符串转换为Date类对象的:

Date parse(String s);

4、Calendar类虽然是一个抽象类。但它比较特殊,是一个语言环境敏感类。它创建实例对象的方法如下:

Calendar c=Calendar.getInstance();

Calendar中常用的方法:

add(int field,int amount):为给定的日历字段增加或减去指定的偏移量。

int get(int field):返回指定字段的值

void set(int year,int month,int day)

void setTime(Date d);用指定的Date设置Calendar的时间

计算机中的月份是0-11,星期天、一...六对应0到6。

5、以下是两个面试题,通过对Date类、DateFormat类和Calendar类的运用,掌握如何使用API。

  1 /*
  2
  3  * 计算保质期,计算闰年的
  4
  5  */
  6
  7 import java.text.DateFormat;
  8
  9 import java.util.*;
 10
 11 public class CalendarDemo {
 12
 13 public static void main(String[] args) throws Exception{
 14
 15 //调用静态方法getIntance()获取日历对象的子类对象
 16
 17 //Calendar c = Calendar.getInstance();
 18
 19 //printCalendar(c);
 20
 21 baoZhi();
 22
 23 runNian();
 24
 25 }
 26
 27
 28
 29 //定义方法,实现闰年的计算
 30
 31 private static void runNian(){
 32
 33 /*
 34
 35  * 计算闰年,2月的最后一天是什么,如果是28平年,29闰年
 36
 37  * 获取日历对象getInstance
 38
 39  * 已知年份
 40
 41  * 将日历设置到这一年的3月1日
 42
 43  * 向前偏移1天,获取天数判断
 44
 45  */
 46
 47 Calendar c = Calendar.getInstance();
 48
 49 c.set(2002, 2, 1);
 50
 51 c.add(Calendar.DAY_OF_MONTH, -1);
 52
 53 if(c.get(Calendar.DAY_OF_MONTH)==29)
 54
 55 System.out.println("闰年");
 56
 57 else
 58
 59 System.out.println("平年");
 60
 61 }
 62
 63
 64
 65 //定义方法,实现保质期的计算
 66
 67 private static void baoZhi()throws Exception{
 68
 69 /*生产日期是2014-3-10,保质期是187天,那一天到期
 70
 71  * 获取日历获取对象--操作系统走
 72
 73  * set方法,将日历设置到生产日期上
 74
 75  * 调用add方法,让天数,偏移187天,输出日历
 76
 77  */
 78
 79 //     第一种:输入一个日期字符串
 80
 81 String date = "2014-3-10";
 82
 83 DateFormat df = DateFormat.getDateInstance();
 84
 85 Date d = df.parse(date);
 86
 87 Calendar c = Calendar.getInstance();
 88
 89 //     第二种直接设置日历中的各字段
 90
 91 //     此时要将月份7就表示8月
 92
 93 //     c.set(2014, 2,10);
 94
 95 c.setTime(d);
 96
 97 c.add(Calendar.DAY_OF_MONTH, 187);
 98
 99 printCalendar(c);
100
101 }
102
103
104
105 //打印当前日历对象的信息
106
107 private static void printCalendar(Calendar c){
108
109 System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+
110
111 c.get(Calendar.DAY_OF_MONTH)+"日 星期"+(c.get(Calendar.DAY_OF_WEEK)-1));
112
113 }
114
115 }

黑马程序员_API,布布扣,bubuko.com

时间: 2024-12-24 16:12:27

黑马程序员_API的相关文章

黑马程序员——网络编程篇

------- android培训.java培训.期待与您交流! ---------- 概述   1.网络模型        (1).OSI参考模型        (2).TCP/IP参考模型   2.网络通讯要素         (1).IP地址        (2).端口号         (3).传输协议    3.过程        1,找到对方IP. 2,数据要发送到对方指定的应用程序上.为了标识这些应用程序,所以给这些网络应用程序都用数字进行标识. 为了方便称呼这个数据,叫做端口(逻

黑马程序员------IO(五)

黑马程序员------IO(五) 1.1  操作对象(示例1)ObjectInputStream与ObjectOutputStream 被操作的对象需要实现Serializable. Serializable:用于给被序列化的类加入ID号,用于判断类和对象是否是同一个版本 类通过实现java.io.Serializable接口以启用序列化功能,Serializable只是一个标记接口. 1 示例1: 2 import java.io.*; 3 4 class ObjectStreamDemo 5

黑马程序员——Java基础---IO(下)

黑马程序员——Java基础---IO(下) ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java除了基本的字节流.字符流之外,还提供了File类.properties类.打印流.序列流等和输入输出相关的类,它们能够帮助我们更好的处理信息.下面将对它们进行简单的介绍. 一.正

黑马程序员[email&#160;protected]和@synsthesize的使用

一.@property和@synthesize的基本使用 @property :可以自动生成某个成员变量的setter和getter的声明(@property int age;).写在@interface里面: @synthesize :自动生成age的setter和getter,并且在方法内部访问的是_age这个成员变量(@synthesize age = _age; // 如果后面不写=_age默认就是访问age成员变量).写在@implementation里面: 二.@property和@

黑马程序员_关于黑马java班入学测试技术分享-后五(二)

??????????????????????????????????????????????????????????????????????????-----Java培训.Android培训.iOS培训..Net培训.期待与您交流! 作为本人首篇黑马技术博客有必要交代一下背景.个人理解博客的用作在于于己在于交流,于他在于学习,在交流学习中共同成长.下面进入正题.本文主要是介绍在做黑马入门测试时的一些问题(这个应该不是泄露题库吧). 本文只要是讲述黑马程序员基础测试题的6-10题,回过头来分析明显

黑马程序员_集合

集合1.集合和对象数组的区别: 数组的长度不可变,集合的可变: 数组可以存储基本数据类型和对象,集合只能存储对象. 集合的框架图 集合派系的顶层接口Collection1.Collection集合存储对象的方法: add(E e)将元素存储到集合中 addAll(Collection c)将一个集合添加到另外的集合中2.Collection集合提取对象的方法: 通过迭代器iterator中的方法:hasNext()和next()来取出 Iterator it=new iterator(); wh

黑马程序员-单例模式

单例设计模式 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例类的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源.如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案.显然单例模式的要点有三个:一是某个类只能有一个实例:二是它必须自行创建这个实例:三是它必须自行向整个系统提供这个实例. 解决的问题:保证一个类在内存中的对象唯一性. 比如:多程序读取一个配置文件时,建议配置文件封装成对象.会方便

黑马程序员_C语言总结-基础部分

C语言基础 1.C语言的关键字 1>关键字就是C语言提供的有特殊含义的符号,也称为保留字,C语言中一共有32个关键字,这些关键字都有自己的含义 例如:int double float if  else switch for 等等 2.标示符的概念: 1>标示符就是在程序中自定义的一些名称,比如函数名,变量名,结构体名等等这些都是标示符 2>命名规则: 1>只能由英文字母的大小写和数字以及_下划线组成,且首字母必须为字母或者下划线_ 2>在C语言中是严格区分大小写的,比如if是

黑马程序员_JAVA 基础加强学习笔记

一.面向对象 (一)继承  1.继承的好处: (1) 提高了代码的复用性. (2) 让类与类之间产生了关系,提供了另一个特征多态的前提. 注意: 子类中所有的构造函数都会默认访问父类中的空参数的构造函数,因为每一个子类构造内第一行都有默认的语句super();  如果父类中没有空参数的构造函数,那么子类的构造函数内,必须通过super语句指定要访问的父类中的构造函数. 如果子类构造函数中用this来指定调用子类自己的构造函数,那么被调用的构造函数也一样会访问父类中的构造函数. 2.final特点