Java基础班学习笔记(11)API常用类(二)

1:StringBuffer(掌握)

(1)用字符串做拼接,比较耗时并且也耗内存,而这种拼接操作又是比较常见的,为了解决这个问题,Java就提供了

一个字符串缓冲区类。StringBuffer供我们使用。

(2)StringBuffer的构造方法

A:StringBuffer()

B:StringBuffer(int size)

C:StringBuffer(String str)

(3)StringBuffer的常见功能(自己补齐方法的声明和方法的解释)

A:添加功能

public StringBuffer append(String str)

public StringBuffer insert(int offset,String str)

B:删除功能

public StringBuffer deleteCharAt(int index)

public StringBuffer delete(int start,int end)

C:替换功能

public StringBuffer replace(int start,int end,String str)

D:反转功能

E:截取功能(注意这个返回值)

(4)StringBuffer的练习(做一遍)

A:String和StringBuffer相互转换

String --> StringBuffer

// 注意:不能把字符串的值直接赋值给StringBuffer

// StringBuffer sb = "hello";    //错误

// StringBuffer sb = s;            //错误

// 方式1:通过构造方法

StringBuffer sb = new StringBuffer(s);

// 方式2:通过append()方法

StringBuffer sb2 = new StringBuffer();

StringBuffer --> String

StringBuffer buffer = new StringBuffer("java");

// String(StringBuffer buffer)

// 方式1:通过构造方法

String str = new String(buffer);

// 方式2:通过toString()方法

String str2 = buffer.toString();

B:字符串的拼接

C:把字符串反转

D:判断一个字符串是否对称

 (5)面试题 #面试题#

小细节:

StringBuffer:同步的,数据安全,效率低。

StringBuilder:不同步的,数据不安全,效率高。

A:String,StringBuffer,StringBuilder的区别

B:StringBuffer和数组的区别?

 (6)注意的问题:

String作为参数传递,效果和基本类型作为参数传递是一样的。(因为它是特殊的引用类型,它在内存中的位置和其他的引用类型不一样)

StringBuffer作为形式参数。

2:数组高级以及Arrays(掌握)

(1)排序

A:冒泡排序

相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处。同理,其他的元素就可以排好。

public static void bubbleSort(int[] arr) {

for(int x=0; x<arr.length-1; x++) {

for(int y=0; y<arr.length-1-x; y++) {

if(arr[y] > arr[y+1]) {

int temp = arr[y];

arr[y] = arr[y+1];

arr[y+1] = temp;

}

}

}

}

  B:选择排序

把0索引的元素,和索引1以后的元素都进行比较,第一次完毕,最小值出现在了0索引。同理,其他的元素就可以排好。

public static void selectSort(int[] arr) {

for(int x=0; x<arr.length-1; x++) {

for(int y=x+1; y<arr.length; y++) {

if(arr[y] < arr[x]) {

int temp = arr[x];

arr[x] = arr[y];

arr[y] = temp;

}

}

}

}

(2)查找

A:基本查找

针对数组无序的情况

public static int getIndex(int[] arr,int value) {

int index = -1;

for(int x=0; x<arr.length; x++) {

if(arr[x] == value) {

index = x;

break;

}

}

return index;

}

  B:二分查找(折半查找)

针对数组有序的情况(千万不要先排序,在查找)

public static int binarySearch(int[] arr,int value) {

int min = 0;

int max = arr.length-1;

int mid = (min+max)/2;

while(arr[mid] != value) {

if(arr[mid] > value) {

max = mid - 1;

}else if(arr[mid] < value) {

min = mid + 1;

}

if(min > max) {

return -1;

}

mid = (min+max)/2;

}

return mid;

}

 (3)Arrays工具类

A:是针对数组进行操作的工具类。包括排序和查找等功能。

B:要掌握的方法(自己补齐方法)

把数组转成字符串:    public static String toString(int[] a)

排序:                       public static void sort(int[] a)

二分查找:                 public static int binarySearch(int[] a,int key)

 (4)Arrays工具类的源码解析

(5)把字符串中的字符进行排序

举例:

"edacbgf"

得到结果

"abcdefg"

3:Integer(掌握)

(1)为了让基本类型的数据进行更多的操作,Java就为每种基本类型提供了对应的包装类类型

byte Byte

short Short

int Integer

long Long

float Float

double Double

char Character

boolean Boolean

(2)Integer的构造方法

A:Integer i = new Integer(100);

B:Integer i = new Integer("100");

注意:这里的字符串必须是由数字字符组成

(3)String和int的相互转换

A:String -- int

Integer.parseInt("100");

B:int -- String

String.valueOf(100);

(4)其他的功能(了解)

进制转换

(5)JDK5的新特性

自动装箱 基本类型--引用类型

自动拆箱 引用类型--基本类型

把下面的这个代码理解即可:

Integer i = 100;

i += 200;

 (6)面试题 #面试题#

-128到127之间的数据缓冲池问题

// 通过查看源码,我们就知道了,针对-128到127之间的数据,做了一个数据缓冲池,如果数据是该范围内的,每次并不创建新的空间

4:Character(了解)

(1)Character构造方法

Character ch = new Character(‘a‘);

(2)要掌握的方法:(自己补齐)

A:判断给定的字符是否是大写

B:判断给定的字符是否是小写

C:判断给定的字符是否是数字字符

D:把给定的字符转成大写

E:把给定的字符转成小写

(3)案例:

统计字符串中大写,小写及数字字符出现的次数

时间: 2024-12-14 18:53:00

Java基础班学习笔记(11)API常用类(二)的相关文章

Java基础班学习笔记(4)

1:switch语句(掌握) (1)格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ... default: 语句体n+1; break; } 格式解释说明: switch:说明这是switch语句. 表达式:可以是byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是字符串 case:后面的值就是要和表达式进行比较的值 break:表示程序到这里中断,跳出switch语句 default:如

Java基础班学习笔记(8)

1:如何制作帮助文档(了解) (1)写一个类 (2)加入文档注释 (3)通过javadoc工具生成即可 javadoc -d 目录 -author -version ArrayTool.java 如何使用帮助文档 1:打开帮助文档 2:点击显示,找到索引,看到输入框 3:知道你要找谁?以Scanner举例 4:在输入框里面输入Scanner,然后回车 5:看包 java.lang包下的类不需要导入,其他的全部需要导入. 要导入: java.util.Scanner 6:再简单的看看类的解释和说明

Java基础班学习笔记(6)

1:二维数组(理解) (1)元素是一维数组的数组. (2)格式: A:数据类型[][] 数组名 = new 数据类型[m][n]; B:数据类型[][] 数组名 = new 数据类型[m][]; C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}}; D:数据类型[][] 数组名 = {{...},{...},{...}}; 注意下面定义的区别:     int[] x,y[]; 等价于     int[] x; int[] y[]; (3)案例(掌握

Java基础班学习笔记(11)API常用类(一)

1:Scanner的使用(了解) (1)在JDK5以后出现的用于键盘录入数据的类. (2)构造方法: A:讲解了System.in这个东西. 它其实是标准的输入流,对应于键盘录入 B:构造方法 InputStream is = System.in; Scanner(InputStream is) C:常用的格式 Scanner sc = new Scanner(System.in); (3)基本方法格式: A:hasNextXxx() 判断是否是某种类型的 B:nextXxx() 返回某种类型的

Java基础班学习笔记(10)

知识要点: 运动员和教练案例分析 1:形式参数和返回值的问题(理解) (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该类的对象 抽象类名:返回的是该类的子类对象 接口名:返回的是该接口的实现类的对象 (3)链式编程 对象.方法1().方法2().......方法n(); 这种用法:其实在方法1()调用完毕后,返回的应该是一个对象: 方法2()调用完毕后,应该返回一个对象. 方法n()调用完毕后,可能是对象,

Java基础班学习笔记(2)

知识要点: 关键字     标识符    注释     常量.进制和进制转换    变量    数据类型和类型转换    运算符     语句 1:关键字(掌握) (1)被Java语言赋予特定含义的单词 (2)特点: 全部小写. (3)注意事项: A:goto和const作为保留字存在. B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记 用于定义访问权限修饰符的关键字 private protected public     用于定义类,函数,变量修饰符的关键字 abstra

Java基础班学习笔记(1)

1. 常见的DOS命令(掌握) d:    回车 盘符切换 dir(directory):    列出当前目录下的文件以及文件夹 md (make directory) :    创建目录 rd (remove directory):    删除目录 cd (change directory)    改变指定目录(进入指定目录) cd.. :     退回到上一级目录 cd\:     退回到根目录 del (delete):     删除文件,删除一堆后缀名一样的文件*.txt exit :

Java基础班学习笔记(5)

1:方法(掌握) (1)方法:就是完成特定功能的代码块. 注意:在很多语言里面有函数的定义,而在Java中,函数被称为方法. (2)格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) { 方法体语句; return 返回值; } 修饰符:目前就用 public static.后面再详细讲解其他修饰符 返回值类型:就是功能结果的数据类型 方法名:就是起了一个名字,方便我们调用该方法. 参数类型:就是参数的数据类型 参数名:就是变量 参数分类: 实参:实际参与运算的数

Java基础班学习笔记(3)

知识要点:运算符(掌握)    键盘录入(掌握)    流程控制语句    if语句(掌握)  1:运算符(掌握) (1)算术运算符 A:+,-,*,/,%,++,-- B:+的用法 a:加法 b:正号 c:字符串连接符 C:/和%的区别 数据做除法操作的时候,/取得是商,%取得是余数 D:++和--的用法 a:他们的作用是自增或者自减 b:使用 **单独使用 放在操作数据的前面和后面效果一样. a++或者++a效果一样. **参与操作使用 放在操作数的前面:先自增或者自减,再参与操作 int