API:

Java API就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。

源文件使用方法:

Object类概述:

Object类是类层次的根类,即所有类的父类。它中描述的所有方法子类都可以使用。所有类在创建对象的时候,最终找的父类就是Object。

Object类:构造方法中的super()调用Object()空参构造

equals方法:

equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较。Object类中的equals方法内部使用的就是==比较运算符。

/*
描述人这个类,并定义功能根据年龄判断是否是同龄人
由于要根据指定类的属性进行比较,这时只要覆盖Object中的equals方法
在方法体中根据类的属性值进行比较
*/
class Person extends Object{
int age ;
//复写父类的equals方法,实现自己的比较方式
public boolean equals(Object obj) {
//判断当前调用equals方法的对象和传递进来的对象是否是同一个
if(this == obj){
return true;
}
//判断传递进来的对象是否是Person类型
if(!(obj instanceof Person)){
return false;
}
//调用子类独有的方法,将obj向下转型为Perosn引用,访问其属性
Person p = (Person)obj;
return this.age == p.age;
}
}

注意:在复写Object中的equals方法时,一定要注意public boolean equals(Object obj)的参数是Object类型,在调用对象的属性时,一定要进行类型转换,在转换之前必须进行类型判断。

equals 方法的重写可以在eclipse中直接生成,生成方法:

在类中右击——source——Generate hashCode()and equals()

Object中的equals()比较的是地址。

toString方法:

toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。

toString方法返回的结果是内存地址,所以方法需要重写

class Person extends Object{
int age ;
//根据Person类的属性重写toString方法
public String toString() {
return "Person [age=" + age + "]";
}
}

toString 方法的重写可以在eclipse中直接生成,生成方法:

在类中右击——source——Generate toString() 

toString():String-Object——String代表的是方法的返回值类型;Object代表的是方法属于哪个类

String类:String类代表字符串,由fianl修饰的字符数组组成,

字符串是常量;它们的值在创建之后不能更改,一旦这个字符串确定了,就会在内存区域中就生成了这个字符串,字符串本身不能改变,但str变量中记录的地址值是可以改变的。

str1不再指向0x001,而是指向0x002,(注意不是将abc改成efg,而是将地址指向改变了)

字符串有大量的重载的构造方法。通过String类的构造方法可以完成字符串对象的创建,

//通过使用双引号的方式创建对象
String s3 = "abc";
//通过使用new的方式创建对象
String s4 = new String("abc");
System.out.println(s3==s4);//false
System.out.println(s3.equals(s4));//true,

l  s3创建,在内存中只有一个对象。这个对象在字符串常量池中

l  s4创建,在内存中有两个对象。一个new的对象在堆中,一个字符串本身对象,在字符串常量池中

 在String类中已经存在的字符数组不会再创建新的,只是将地址重新指向

构造方法是用来完成String对象的创建

构造方法:String(byte[] bytes,int offset,int length)

字节数组周的是GBK编码表(正数走ascII表,负数就是汉字(两个字节一个汉字))

ascII(48代表0,然后依次往下推,65代表A,然后依次往下推,97代表a,然后依次往下推)

String s1 = new String(); //创建String对象,字符串中没有内容

	byte[] bys = new byte[]{97,98,99,100};
String s2 = new String(bys); // 创建String对象,把数组元素作为字符串的内容
String s3 = new String(bys, 1, 3); //创建String对象,把一部分数组元素作为字符串的内容,参数offset为数组元素的起始索引位置,参数length为要几个元素 char[] chs = new char[]{’a’,’b’,’c’,’d’,’e’};
String s4 = new String(chs); //创建String对象,把数组元素作为字符串的内容
String s5 = new String(chs, 0, 3);//创建String对象,把一部分数组元素作为字符串的内容,参数offset为数组元素的起始索引位置,参数count为要几个元素 String s6 = new String(“abc”); //创建String对象,字符串内容为abc

 String类的方法查找

字符串中有多少个字符?

 

String str = "abcde";
int len = str.length();
System.out.println("len="+len);

  

l  获取部分字符串。

String str = "abcde";
String s1 = str.substring(1); //返回一个新字符串,内容为指定位置开始到字符串末尾的所有字符
String s2 = str.substring(2, 4);//返回一个新字符串,内容为指定位置开始到指定位置结束所有字符
System.out.println("str="+str);
System.out.println("s1="+s1);
System.out.println("s2="+s2);

  

String类中方法查找练习

字符串是否以指定字符串开头。结尾同理

String str = "StringDemo.java";
boolean b1 = str.startsWith("Demo");//判断是否以给定字符串开头
boolean b2 = str.startsWith("String");
boolean b3 = str.endsWith("java");//判断是否以给定字符串结尾

  

字符串中是否包含另一个字符串。

String str = "abcde";
int index = str.indexOf(“bcd”); //判断是否包含指定字符串,包含则返回第一次出现该字符串的索引,不包含则返回-1
boolean b2 = str.contains("bcd");//判断是否包含指定字符串,包含返回true,不包含返回false

  

将字符串转成一个字符数组。或者字节数组。

String str = "abcde";
char[] chs = str.toCharArray();
byte[] bytes = str.getBytes();

  

l  判断两个字符串中的内容是否相同

String str = "abcde";
String str2 = "abcde";
String str3 = "hello";
boolean b1 = str.equals(str2);
boolean b2 = str.equals(str3);

  

l  获取该字符串对象中的内容

String str = new String("hello");
System.out.println( str.toString() );
System.out.pintln( str );

 

String类方法使用练习

l  题目一:获取指定字符串中,大写字母、小写字母、数字的个数。

l  思路:1.为了统计大写字母、小写字母、数字的个数。创建3个计数的变量。

2.为了获取到字符串中的每个字符,进行字符串的遍历,得到每个字符。

3.对得到的字符进行判断,如果该字符为大写字母,则大写字母个数+1;如果该字符为小写字母,则小写字母个数+1;如果该字符为数字,则数字个数+1。

4.显示大写字母、小写字母、数字的个数

l  代码:

public static void method(String str){
int bigCount = 0; //大写字母的个数
int smallCount = 0; //小写字母的个数
int numberCount = 0; //数字的个数
for (int i=0; i < str.length(); i++) {
char ch = str.charAt(i); //获取指定位置上的字符
if (ch>=’A’ && ch<=’Z’) {
bigCount++;
} else if (ch>=’a’ && ch<=’z’) {
smallCount++;
} else if (ch>=’0’ && ch<=’9’) {
numberCount++;
}
}
System.out.println("大写字母个数:"+bigCount);
System.out.println("小写字母个数:"+smallCount);
System.out.println("数字个数:"+numberCount);
}

l  题目二:将字符串中,第一个字母转换成大写,其他字母转换成小写,并打印改变后的字符串。

l  思路:1.把字符串分为两个部分,第一部分为字符串中第一个字母,第二部分为剩下的字符串。

2.把第一部分字符串转换成大写字母,把第二部分字符串转换成小写字母

3.把两部分字符串连接在一起,得到一个完整的字符串

l  代码:

public static String convert(String str){
//获取第一部分为字符串
String start = str.substring(0,1);
//获取第二部分为字符串
String end = str.substring(1);
//把第一部分字符串转换成大写字母,把第二部分字符串转换成小写字母
String big = start.toUpperCase();
String small = end.toLowerCase();
//把两部分字符串连接在一起,得到一个完整的字符串
return big+small;
}

l  题目三:查询大字符串中,出现指定小字符串的次数。如“hellojava,nihaojava,javazhenbang”中查询出现“java”的次数。

l  思路:1.在大串中,查找小串出现的位置,出现了就次数+1

2.在上次小串出现位置的后面继续查找,需要更改大串的内容为上次未查询到的字符串。

3.回到第一步,继续查找小串出现的位置,直到大串中查询不到小串为止

l  代码:

public static int getCount(String big, String small){
int count = 0; //出现小串的次数
int index = -1;//出现小串的位置
/*
while的循环条件三步骤:
步骤一. big.indexOf(small) 获取小串在大串中出现的位置
步骤二. 把小串出现的位置,赋值给变量index
步骤三. 判断出现的位置是否为-1, 如果位置等于-1,说明大串中已经查询不到小串了;如果位置不等于-1,那么,进行循环,完成次数累加与修改大串的操作
*/
while ((index = big.indexOf(small)) != -1 ){
count++;//出现次数+1
//更改大串内容
big = big.substring(index+1);
}
return count;
}

  

  

  

Java的API及Object的更多相关文章

  1. 代码块和Java的API及Object类

    代码块 局部代码块 特点: 以”{}”划定的代码区域,此时只需要关注作用域的不同即可 方法和类都是以代码块的方式划定边界的 构造代码块 优先于构造方法执行,构造代码块用于执行所有对象均需要的初始化动作 ...

  2. 【代码笔记】Java常识性基础补充(三)——Java的API及Object类、正则表达式、getTime()方法、DateFormat类、Calendar类

    1.0 Java 的API(API: Application(应用) Programming(程序) Interface(接口)) 2.0 Java API就是JDK中提供给我们使用的类,这些类将底层 ...

  3. Java的API及Object类、String类、字符串缓冲区

    Java 的API 1.1定义 API: Application(应用) Programming(程序) Interface(接口) Java API就是JDK中提供给开发者使用的类,这些类将底层的代 ...

  4. java 的API及Object类

    一 Java的API Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就是JDK中提供给我们使用的类,这些类 ...

  5. Java学习(API及Object类、String类、StringBuffer字符串缓冲区)

    一.JAVA的API及Object类 1.API 概念: Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就 ...

  6. 常用API(Object、String、StringBuffer、用户登陆注册)

    常用API 今日内容介绍 u Object u String u StringBuilder 第1章 Java的API及Object类 在以前的学习过程中,我们都在学习对象基本特征.对象的使用以及对象 ...

  7. java基础之 超类Object

    一.概述:       Object类是所有Java类的祖先.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法.在不明确给出超类的情况下,Java会自动把Object作为要 ...

  8. Java Attach API

    catalog . instrucment与Attach API . BTrace: VM Attach的两种方式 . Sun JVM Attach API 1. instrucment与Attach ...

  9. 关于 Java Collections API 您不知道的 5 件事,第 1 部分

    定制和扩展 Java Collections Java™ Collections API 远不止是数组的替代品,虽然一开始这样用也不错.Ted Neward 提供了关于用 Collections 做更 ...

随机推荐

  1. apache ab性能测试实践

    E:\developtools\apache ab\httpd-2.4.25-x86-vc14-r1\Apache24\bin>ab -n 15000 -c 600 "http://1 ...

  2. 用shell脚本安装apache

    我们首先创建一个文件为test.sh,执行此文件的方法有以下四种方式: 1../test.sh(必须chmod赋予执行权限) 2.. test.sh 3.sourse test.sh 4.[shell ...

  3. 2. Shell编程第二讲

    (1) 条件测试: test   [ 命令 test 或 [ 可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注 ...

  4. Configure MongoDB Replica Set

    Table of Contents Introduction Requirements Create Replica Set Add Secondary Members Add an Arbiter ...

  5. Trailing Loves (or L'oeufs?)

    The number "zero" is called "love" (or "l'oeuf" to be precise, literal ...

  6. WPF 布局

    WPF布局原则 WPF窗口只能包含单个元素,为在WPF窗口中放置多个元素并创建更贴近使用的用户界面,需要在窗口上放置一个容器,然后在这个容器中添加其他元素 遵循以下几条重要原则 不应显式设定元素(如控 ...

  7. UVALive - 6952 DP 分段/隔板

    题意:商品总价按四舍五入计算,n个物品最多可分\(d+1\)段,求最小代价 \(dp[i][j]\):\(j\)个物品分\(i\)段 注意一个技巧是只在需要分出新的段时才四舍五入(旧段结算),这样就避 ...

  8. Dojo2 前端框架基本操作

    安裝CLI,需要先有npm: npm install -g @dojo/cli npm install -g @dojo/cli-create-app 创建项目目录,-n 后面是名字,创建完成后会自动 ...

  9. hdu1837 看病要排队(优先队列)

    看病要排队 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  10. archlinux升级firefox的flash插件

    参考:http://blog.csdn.net/kingolie/article/details/53066415 1. 在https://get.adobe.com/flashplayer/下载文件 ...