day13_API第三天
1、StringBuffer类(掌握)
1、概念
一开始,首先开辟一些空间,然后,随着数据的增多,还可以继续开辟空间。这些操作针对的是同一个对象。
StringBuffer()
初始化一个理论长度为16的空对象
StringBuffer(int capacity)
初始化一个理论长度为指定大小的空对象
StringBuffer sb = new StringBuffer(10);
sb.length()//0
sb.capaticy()//10
StringBuffer(String str)
初始化一个内容为str的对象,理论长度为字符串的长度+ 16
获取长度
public int length()
字符个数,实际长度
Public int capacity()
字符容量,理论长度,这个方法以后不会用到
添加功能
StringBuffer append(数据类型 变量名)
在结尾处添加,返回的是同一个对象
StringBuffer sb = new StringBuffer();
StringBuffer sb2 = sb.append("true");
sb == sb2 //true,所以操作是同一个对象
StringBuffer insert(int index, 数据类型 变量名)
在指定位置添加
StringBuffer sb = new StringBuffer();
StringBuffer sb2 = sb.insert(1,"a");/只与实际长度有关系,实际长度是0,1位置不存在,所以回报下标越界异常
删除功能
StringBuffer deleteCharAt(int index);
删除指定位置处的字符
new StringBuffer("abc").deleteCharAt(0);//删除0位置的元素,删除后StringBuffer变为bc
StringBuffer delete(int start, int end)
删除指定开始位置和结束位置之间的字符
StringBuffer sb = new StringBuffer("abcdefg");
sb.delete(0,3);//删除0-3位置的元素,注意:包括0位置对应的元素,不包括3位置对应的元素,结果为defg
替换功能
StringBuffer replace(int start, int end, String str)
用指定字符串替start位置到end位置的内容,注意包左不包右
.StringBuffer sb = new StringBuffer("heima");
//把hei替换成bai
sb.replace(0,3,"bai")//包括0位置,不包括3位置,所以区间是0,1,2,修改完毕后,对原来的有影响
截取功能
public String substring(int start)
从索引为start处截取到结尾
public String substring(int start, int end)
从索引为start,截取到end。包左不包右
注意事项:截取完后对原来的对象没有影响,返回值是String
反转功能
public StringBuffer reverse()
将此字符序列用其反转形式取代
2、数组操作
查询
|
|
普通查找:(原理代码必须掌握,以后会经常见到) 遍历数组,拿数组中的每一个元素和要查找的数据比较 如果两者相同,就返回该元素对应的索引 |
|
折半查找(原理必须掌握,面试用) 前提:数组必须有序 说说二分法查找思路 1、首先需要有最小索引和最大索引,通过这两个索引求出中间索引 2、拿中间索引上的值 和 要查找的数据比较 3、如果中间索引上的值比要查找的数据大,最大索引=中间索引-1, 如果中间索引上的值比要查找的数据小 、最小索引=中间索引+1, 4、以此类推,直到最大索引小于最小索引或者找到就停止 |
|
排序
|
|
冒泡排序(原理能说出来,代码背熟) 原理一句话:相邻两个元素两两比较 A: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 B: 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。
在这一点,最后的元素应该会是最大的数。
C: 针对所有的元素重复以上的步骤,除了最后一个。 D: 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 |
|
选择排序(原理能说出来)
首先在未排序序列中找到最小元素,存放到排序序列的起始位置,
然后,再从剩余未排序元素钟继续寻找最小元素,
然后放到排序序列起始位置,一次类推,知道所有元素均排序完毕
|
|
3、Arrays工具类(掌握)
1、Arrays是针对数组操作的工具类
public static String toString(数据类型[] 变量名)
把数组拼接成字符串
public static void sort(数据类型[] 变量名)
对数组进行排序
public static int binarySearch(int[] arr,int value)
二分查找
4、System类(掌握)
1、系统类,提供了静态的变量和方法供我们使用
退出jvm,非0表示异常退出
public static long currentTimeMillis()
返回当前系统时间的毫秒值
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
从指定源数组的指定位置开始复制,复制到目标数组的指定位置,复制length个元素
5、基本类型的包装类(掌握)
1、概述
short
int
Integer
long
float
double
char
Character
boolean
Integer(String s)
S必须是一个由数字字符组成的字符串
String str = "123";
int num = Integer.parseInt(str);
System.out.println(num);
int num = 1;
String str = String.valueOf(num);
System.out.println(str);
6、面试题(掌握)
1、byte常量池面试题
Integer i2 = new Integer(127);
System.out.println(i1 == i2); // false
System.out.println(i1.equals(i2)); // true
System.out.println("--------");
Integer i3 = new Integer(128);
Integer i4 = new Integer(128);
System.out.println(i3 == i4); // false
System.out.println(i3.equals(i4)); // true
Integer i5 = 128;
Integer i6 = 128;
System.out.println(i5 == i6); // false false,原因自动装箱,调用Integer.valueOf(),回去常量池找有没Integer
System.out.println(i5.equals(i6)); // true
System.out.println("--------");
Integer i7 = 127;
Integer i8 = 127;
System.out.println(i7 == i8); // true
System.out.println(i7.equals(i8)); // true
结论:byte范围内的值(-128 ~ 127),java提供了一个常量池。直接赋值给Integer,是从常量池里面获取的。
7、API总结(掌握)

8、今天必须掌握的内容。以及常见的笔试题和面试题(学完这个就可以放心学习后面的知识了)
import java.util.Scanner;
/**
1、获取键盘录入的String .nextLine()
2、把字符串转换成StringBuffer。通过StringBuffer(字符串)
3、调用艾斯比的reverse()方法,反转
4、将艾斯比转成字符串 调用toString
*/
public class Demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 1、获取键盘录入的String .nextLine()
String line = scanner.nextLine();
// 2、把字符串转换成StringBuffer。通过StringBuffer(字符串)
StringBuffer sb = new StringBuffer(line);
//3、调用艾斯比的reverse()方法,反转
sb.reverse();
//4、将艾斯比转成字符串 调用toString
String string = sb.toString();
System.out.println(string);
}
}
day13_API第三天的更多相关文章
- 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)
前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...
- 【原】FMDB源码阅读(三)
[原]FMDB源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 FMDB比较优秀的地方就在于对多线程的处理.所以这一篇主要是研究FMDB的多线程处理的实现.而 ...
- Jquery的点击事件,三句代码完成全选事件
先来看一下Js和Jquery的点击事件 举两个简单的例子 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- 简谈百度坐标反转至WGS84的三种思路
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 基于百度地图进行数据展示是目前项目中常见场景,但是因为百度地图 ...
- 一起学 Java(三) 集合框架、数据结构、泛型
一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...
- 谈谈一些有趣的CSS题目(三)-- 层叠顺序与堆栈上下文知多少
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
- 如何一步一步用DDD设计一个电商网站(三)—— 初涉核心域
一.前言 结合我们本次系列的第一篇博文中提到的上下文映射图(传送门:如何一步一步用DDD设计一个电商网站(一)—— 先理解核心概念),得知我们这个电商网站的核心域就是销售子域.因为电子商务是以信息网络 ...
- 测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率
之前一篇里写过字符串常用类的三种方式<java中的字符串相关知识整理>,只不过这个只是分析并不知道他们之间会有多大的区别,或者所谓的StringBuffer能提升多少拼接效率呢?为此写个简 ...
随机推荐
- R----dplyr包介绍学习
dplyr包:plyr包的替代者,专门面对数据框,将ddplyr转变为更易用的接口 %>%来自dplyr包的管道函数,其作用是将前一步的结果直接传参给下一步的函数,从而省略了中间的赋值步骤,可以 ...
- Java开发中经典的小实例-(do{}while())
import java.util.Scanner;public class Test13 { public static void main(String[] args) { // ...
- SecureCRT配色
SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单的说是Windows下登录UNIX或Linux服务器主机的软件.SecureCRT支持SSH,同时支持Telnet和rlog ...
- 解决T400\T500\W500等安装win10驱动后黑屏问题
T400.W500.T500等机型有双显卡的机型,在安装WIn10后会在驱动后黑屏,但可见启动画面: 原因:没有对应的双显卡驱动程序,导致系统无法正确识别显卡: 解决方法:开机按F1进入Bios,在显 ...
- jQuery Easing 使用方法及其图解
jQuery Easing 使用方法及其图解,非常详尽:http://blog.sina.com.cn/s/blog_70a3539f0102v8az.html
- Java线程中yield与join方法的区别
长期以来,多线程问题颇为受到面试官的青睐.虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用.之前,我讨论了一个w ...
- 分部类(partial)
一般来说,一个类.结构或接口位于一个源文件中,但某些情况,比如大型项目.特殊部署时,可能需要把一个类.结构或接口放在几个文件中来处理.等到编译时,自动把它们合起来,这就得应用 C# 分部类了. C# ...
- $inArray()总是返回-1
$inArray(val,arr)注意val类型和arr中的是否一致 如1 和"1" 就会返回-1
- Bootstrap3.0学习教程十七:JavaScript插件模态框
这篇文章中我们主要来学习一下JavaScipt插件模态框.在学习模态框之前,我们先来了解一下JavaScript插件吧. JavaScript插件概览 插件可以单个引入(使用Bootstrap提供的单 ...
- Linux Vim不明原因卡死解决办法
使用vim的时候,偶尔会碰到vim莫名其妙的僵在那里. 解决方案: 经查,原来Ctrl+S在Linux里是锁定屏幕的快捷键,如果要解锁,按下Ctrl+Q就可以了. 经验总结: 牢记这两个VIM组合键 ...