JavaAPI

  1. Object对象

面向对象的核心思想:"找合适的对象,做适合的事情"。

合适的对象:

  1. 自己描述类,自己创建对象。
  2. sun已经描述了好多常用的类,可以使用这些类创建对象。

    API(Application Program Interface)

????sun定义的那么多类的终极父类是Object。Object描述的是所有类的通用属性与方法。

  1. toString方法

toString() 返回对象的描述信息 [email protected] 类名@哈希码值的十六进制形式。

直接输入一个对象的时候,会调用对象的toString方法。

练习:自定义一个Person类,打印该对象的描述信息,要求描述信息为:姓名 — 年龄

问题:调用p的toString方法时,打印出来的信息是类名+内存地址值。不符合要求。根据我们之前学的继承,假如父类的指定的功能不能满足要求,那么子类可以复写父类的功能函数。那么该对象再调用toString()方法时,则会调用子类复写的toString方法。

编程习惯:开发者要对自定义的类重写toString(),对对象做详细的说明

?

  1. equals方法

equals() 返回的是比较的结果 如果相等返回true,否则false,比较的是对象的内存地址值。

问题:比较两个人是否是同一个人,根据两个人的名字判断。

问题:如果根据名字去作为判断两个人是否是同一个时,明显p与p1是同一个人,但是程序输入却不是同一个人。不符合我们现实生活的要求。

?

?

解决:?根据我们学的继承中的函数复写,如果父类的函数不能满足我们目前的要求,那么就可以在子类把该功能复写,达到复合我们的要求。

编程习惯:开发者要对自定义的类重写equals(),使得比较两个对象的时候比较对象的属性是否相等,而不是内存地址。

  1. hashCode方法

hashCode() 返回该对象的哈希码值: 采用操作系统底层实现的哈希算法。 同一个对象的哈希码值是唯一的。

java规定如果两个对象equals返回true,那么这两个对象的hashCode码必须一致。

  1. String类

String类描述的是文本字符串序列。 留言 QQ 写日志。

创建String类的对象的两种方式:

  1. ""直接赋值法
  2. new关键字法
  1. 字符串对象的比较

String Str = "jack"这个语句会先检查字符串常量池是否存放这个"jack1"这个字符串对象,如果没有存在,那么就会在字符串常量池中创建这个字符串对象,如果存在直接返回该字符串的内存地址值。

String str3 = new String("jack") 该语句会创建两个对象,首先会先检查字符串常量池中存不存在jack这个字符串对象,如果不存在就会创建,如果存在就返回内存地址值。创建了出来之后,new String这个语句就会在堆内存中开辟一个字符串对象。总共两个对象。

?

?

  1. 获取方法


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

char charAt(int index) 获取特定位置的字符 (角标越界)

int indexOf(String str) 获取特定字符的位置(overload)

int lastIndexOf(int ch) 获取最后一个字符的位置

?

  1. 判断方法


boolean endsWith(String str) 是否以指定字符结束

boolean isEmpty()是否长度为0 如:"" null V1.6

boolean contains(CharSequences) 是否包含指定序列
应用:搜索

boolean equals(Object anObject) 是否相等

boolean equalsIgnoreCase(String anotherString) 忽略大小写是否相等

  1. 转换方法


String(char[] value) 将字符数组转换为字符串

String(char[] value, int offset, int count)

Static String valueOf(char[] data)

static String valueOf(char[] data, int offset, int count)

char[] toCharArray() 将字符串转换为字符数组

?

  1. 其他方法


String replace(char oldChar, char newChar) 替换

String[] split(String regex) 切割

String substring(int beginIndex)

String substring(int beginIndex, int endIndex)截取字串

String toUpperCase() 转大写

String toLowerCase() 转小写

String trim() 去除空格

  1. 练习

  1. 去除字符串两边空格的函数。

public
class Demo1 {

// 定义一个祛除字符串两边空格的函数

public
static String trim( String str ){

?

// 0、定义求字串需要的起始索引变量

int start = 0;

int end = str.length()-1;

// 1. for循环遍历字符串对象的每一个字符

for (int i = 0; i<str.length() ; i++ )

{

if ( str.charAt(i) == ‘ ‘ )

{

start++;

}else{

????????
?

???????? break;

????????}

}

System.out.println( start );

for (; end<str.length() && end >= 0; )

{

if ( str.charAt(end) == ‘ ‘ )

{

end--;

}else{

???????? break;

????????}

}

System.out.println( end );

// 2. 求子串

if( start < end ){

?

???? return str.substring( start , (end+1) );

}else{

?

???? return
"_";

}

  1. 获取上传文件名 "D:\\20120512\\day12\\Demo1.java"。

public
static
String getFileName2( String path ){

???? return path.substring( path.lastIndexOf("\\") + 1 );

????}

}

  1. 将字符串对象中存储的字符反序。

// 将字符串对象中存储的字符反序

????public
static String reaverseString( String src ){

????
?

???? // 1. 将字符串转换为字符数组

???? char chs[] = src.toCharArray();

???? // 2. 循环交换

???? for ( int start = 0 , end = chs.length - 1; start < end ; start++,end-- )

???? {

???????? // 3. 数据交换

???????? char temp = chs[end];

???????? chs[end] = chs[start];

???????? chs[start] = temp;

???? }

???? // 4. 将字符数组转换为字符串

return
new String( chs );

????}

4. 求一个子串在整串中出现的次数


public
static
int getCount( String src , String tag ){

???? // 0. 定义索引变量和统计个数的变量

???? int index = 0;

???? int count = 0;????

???? // 1. 写循环判断

???? while ( ( index = src.indexOf(tag) ) != -1 ) // jackjava

???? {

???? // 2. 求字串

???? System.out.println( src );

???????? src = src.substring( index + tag.length() ); // index 4 + 4 = 8

???? System.out.print( src.length() + " : " + index + " : " + tag.length() );

???????????? // 3. 累加

???????? count++;

???????? }

???????? return count;

????????}

  1. StringBuffer

StringBuffer : 由于String是不可变的,所以导致String对象泛滥,在频繁改变字符串对象的应用中,需要使用可变的字符串缓冲区类。

特点:

  1. 默认缓冲区的容量是16。
  2. StringBuffer : 线程安全的所有的缓冲区操作方法都是同步的。效率很低。
  1. 添加方法


StringBuffer("jack") 在创建对象的时候赋值

append() 在缓冲区的尾部添加新的文本对象

insert() 在指定的下标位置添加新的文本对象

????


StringBuffer sb = new StringBuffer("jack");

sb.append(true);

sb.append(‘a‘);

sb.append(97).append(34.0).append(new
char[]{‘o‘,‘o‘}); // 链式编程

System.out.println( sb.toString() ); // 输出缓冲区的中文本数据

sb = new StringBuffer("jack");

sb.insert( 2, "java" ); // jajavack

System.out.println( sb.toString() );

  1. 查看


toString() 返回这个容器的字符串

indexOf(String str) 返回第一次出现的指定子字符串在该字符串中的索引。

substring(int start) 从开始的位置开始截取字符串

?

  1. 修改(U)


replace(int start int endString str) 使用给定
String
中的字符替换此序列的子字符串中的字符。该子字符串从指定的
start
处开始,一直到索引
end - 1
处的字符

setCharAt(int index char ch) 指定索引位置替换一个字符

?

  1. 删除(D)

?

  1. 反序

reverse() 把字符串反序输出。

?

  1. StringBuilder

StringBuilder 是JDK1.5之后提出的,线程不安全,但是效率要高。用法与StringBuffer类似。

  1. System

System 可以获取系统的属性。

  1. Runtime

Runtime 类主要描述的是应用程序运行的环境。

?

  1. Date

Date 类封装的是系统的当前时间.。但是Date已经过时了,sun推荐使用Calendar类。

Calendar: 该类是一个日历的类,封装了年月日时分秒时区。

日期格式化类:SimpleDateFormat

  1. Math

Math:类封装了很多数学的功能。

?

练习:生成一个随机码

时间: 2024-10-11 00:24:22

JavaAPI的相关文章

elasticsearch的javaAPI之index

Index API 原文:http://www.elasticsearch.org/guide/en/elasticsearch/client/java-api/current/index_.html index API允许你将JSON document转换为一个特定的index,使它便于搜索操作. 生成JSON文档: 有几种不同的方法生成一个JSON document: 手动使用 byte[] 或String 使用一个map来等效转换为JSON 使用第三方库来将beans装换(如Jackson

elasticsearch的javaAPI之query

elasticsearch的javaAPI之query API the Search API允许执行一个搜索查询,返回一个与查询匹配的结果(hits). 它可以在跨一个或多个index上执行, 或者一个或多个types. 查询可以使用提供的 query Java API 或filter Java API . 搜索请求的主体是建立使用 SearchSourceBuilder上. 这里有一个例子: import org.elasticsearch.action.search.SearchRespon

熟练掌握HDFS的Shell访问和JavaAPI访问

HDFS设计的主要目的是对海量数据进行处理,也就是说在其上能够储存很大量文件(可以储存TB级的文件).HDFS将这些文件分割之后,储存在不同的DataNode上,HDFS提供了两种数据访问接口:Shell接口和javaAPI接口,对HDFS里面的文件进行操作. Shell接口  HDFS处理文件的命令和linux命令基本相同,这里区分大小写.下面介绍HDFS操作分布式文件系统的命令. HDFS基本命令 hadoop fs -cmd  其中cmd:具体的操作,基本上与unix的命令相同 args:

Kafka-2.11学习笔记(三)JavaApi访问kafka

欢迎访问:鲁春利的工作笔记,学习是一种信仰,让时间考验坚持的力量. Kafka底层是基于Scala语言实现的,但是也提供了Java的API接口. Java实现的消息生产者 package com.lucl.kafka.simple; import java.util.Properties; import kafka.javaapi.producer.Producer; import kafka.producer.KeyedMessage; import kafka.producer.Produc

Elasticsearch的javaAPI之percolator

percolator允许一个在index中注册queries,然后发送包含doc的请求,返回得到在index中注册过的并且匹配doc的query //This is the query we're registering in the percolator QueryBuilder qb = termQuery("content", "amazing"); //Index the query = register it in the percolator clien

Elasticsearch的javaAPI之facet,count,delete by query

Elasticsearch的javaAPI之count count API允许轻松地执行一个查询,获得匹配的数量,可以跨越一个或多个index ,一个或多个type. import static org.elasticsearch.index.query.xcontent.FilterBuilders.*; import static org.elasticsearch.index.query.xcontent.QueryBuilders.*; CountResponse response =

Elasticsearch的javaAPI之get,delete,bulk

Elsasticsearch的javaAPI之get get API允许根据其id获得指定index中的基于json document.下面的例子得到一个JSON document(index为twitter,type为tweet,id为价值1) GetResponse response = client.prepareGet("twitter", "tweet", "1")         .execute()         .actionG

ElasticSearch的javaAPI之Client

翻译的原文:http://www.elasticsearch.org/guide/en/elasticsearch/client/java-api/current/client.html#node-client 翻译ElasticSearch的javaAPI之Client 本节描述了elasticsearch提供的Java API,所有elasticsearch操作使用client对象执行. 所有的操作在本质上是完全asynchronous(接受一个listener,或返回一个future).

HBase的JavaAPI使用

Java Client API Overview HBase是用Java写的,支持用编程语言来动态操作管理数据库,能用命令行做的都能够用API来做. 主要的使用步骤例如以下: 1.创建一个 Configuration 对象–从 HDFS 对象中调用 Configuration –加入 HBase 属性 Configuration conf = HbaseConfiguration.create();2.创建 HTable–提供 Configuration 对象–提供 表名 HTable hTab

mongoDB3.4的sharding集群搭建及JavaAPI的简易使用

第一部分 在搭建mongoDB之前,我们要考虑几个小问题: 1.我们搭建集群的目的是什么?是多备份提高容错和系统可用性还是横向拓展存储大规模数据还是两者兼有? 如果是为了多备份那么选择replication集群搭建即可,如果是为了处理大数据则需要搭建sharding集群,如果两者兼有需要对每个shardsvr创建replica. 2.什么是sharding?和replication有什么不同? 简单而言,replica是mongo提供服务的一个基本单位,单机系统和replication集群对用户