![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础-字符串/排序算法/集合-学习笔记
文章平均质量分 82
Anthony_tester
这个作者很懒,什么都没留下…
展开
-
Java字符串篇-1-字符串的概述
对我个人来说,终于走到了这一步。相信很多人在大学多多少少都学习过编程和Java语言,同样,我也是虽然学习了,测试大部分工作都没有使用编程,造成什么也不会。但是,找工作,找一个自动化测试或者测试开发,很多面试题基本上都是集中在面向对象,字符串操作,排序算法,和集合类这几大范围里,特别是一个手写编程题目。 我很早就意识到面试中编程能力不行,很大原因是上面这些范围自己...原创 2018-04-08 15:03:23 · 1660 阅读 · 1 评论 -
Java字符串篇-2-String类几个常见构造方法
前面一篇,了解了String类的基本特点和使用方法。这篇,我们来学习String类的构造函数。在JAVA 1.6 API文档中,我们可以找到15个String类的构造方法,下面我们学习几个重要的就行。 1.空构造 public String() 空参构造的作用就是创建一个空的字符串对象,下面我们代码来运行一下,观察运行结果输出的是不是空。package string;...原创 2018-04-08 17:07:45 · 3133 阅读 · 0 评论 -
Java字符串篇-3-String类5个常见面试题的解答过程和原理
这篇来看看关于Java String类的5道面试题,这五道题,我自己在面试过程中亲身经历过几道题目,学完了这篇,我才焕然大悟,才知道为什么是这个答案,本篇就带你了解这些题的答案为什么是这样。 1.判定定义为String类型的st1和st2是否相等,为什么 package string;public class Demo2_String { public static voi...原创 2018-04-09 13:37:46 · 8512 阅读 · 1 评论 -
Java字符串篇-4-String类方法之判断功能
前面学习了String类的基本概述和常用的几个构造方法,这篇开始来学习String类的方法,这里先来学习几个关于判断的方法。判断在自动化测试结果断言部分使用比较多。判断方法返回的结果都是布尔值,这里学习6个String类的判断方法。 1. boolean equals...原创 2018-04-09 16:21:07 · 1176 阅读 · 1 评论 -
Java字符串篇-5-String类方法之获取功能
本篇我们继续来学习String类下的方法,这一组方法都属于获取某些值。这些方法,在后面的编程面试题经常会使用到,算是很基础,但是很常用的方法,所以需要记住并知道如何使用它们。本篇的方法主要用来字符或者字符串查找和统计方面。 1.int length() 获取字符串长度 这个是一个方法,返回的是Int类型,这里提一下数组中获取数组长度也是length,但是数组中是属性,并不...原创 2018-04-10 10:09:36 · 1107 阅读 · 1 评论 -
Java字符串篇-6-字符串遍历和统计次数
前面我们学习String类的一些方法,主要有两类,判断功能和获取功能。接下来,我们利用2个练习题来学会使用String类提供的方法去解决实际的问题。 1.字符串的遍历 遍历这个功能真的是太常用,而且真的是很多面试题的能解答出来的前提条件。目前我们只知道利用for循环去实现遍历输出。package string;public class Demo3_String { ...原创 2018-04-10 12:58:58 · 2786 阅读 · 0 评论 -
Java字符串篇-7-String类方法之转换功能
这篇继续学习String类的方法,没办法,String类的方法比较多,用得频率也高。这边主要学习几个转换功能的方法。 1.Byte[] getBytes() 把字符串转换为字节数组 前面我们学习了一个把字节转换为字符串的方法,就是把一个字节数组,作为参数,使用String类的构造方法,就可以转换为一个字符串对象。现在是要反过来,下面来看一个代码举例。package st...原创 2018-04-10 18:50:35 · 1088 阅读 · 0 评论 -
Java字符串篇-8-String类其他方法和字符串反转输出
接着前面的学习,继续学习String类里面的方法,本篇主要学习String类的替换方法和去除前后字符串空格方法,然后来做一个字符串反转输出的练习。字符串反转输出这个应该也是在面试编程题中经常被考察的一个题目。 1.替换方法 替换方法主要有字符替换(String replace(char old, char new))和字符串替换(Stringreplace(String old, S...原创 2018-04-11 23:37:27 · 1920 阅读 · 0 评论 -
Java字符串篇-9-String类练习-大串中找小串出现次数
本篇继续来练习一个String类相关的面试编程题。这个题目就是要求在长字符串里面找小字符串,然后统计小字符串出现次数。我们先来一个具体字符串例子,通过画图分解,来找出规律。需求:设计一个方法,在任意给定的两个字符串中(一个大串,一个小串),统计出小串在大串中出现的次数。上面是通过画图,模拟人工去查找的顺序,然后找出规律。1)需要判断长字符串是否包含短字符串,String类有一个方法indexOf(...原创 2018-04-12 11:59:45 · 1219 阅读 · 0 评论 -
Java对象StringBuffer类-10-StringBuffer类的基本了解和构造方法
首先,打开JAVA JDK API 1.6文档,搜索找到StringBuffer类。可以看到文档给出的注解第一段内容:线程安全的可变字符序列。一个类似于String的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。 我们拆分一下几个点去理解1)线程安全可变字符序列 暂时没有学习线程,只需要知道线程安全意味速...原创 2018-04-12 14:19:45 · 889 阅读 · 0 评论 -
Java对象StringBuffer类-11-添加和删除方法
在了解了StringBuffer类的构造方法之后,再来学习StringBuffer类的方法,这篇来学习添加和删除方法的基本使用。 1.StringBuffer append() 打开API中StringBuffer页面,发现有好多个append(),可以看到,包含8大基本数据类型和任意对象都能作为参数,使用这个append()方法。 package stringbuffer...原创 2018-04-12 22:57:19 · 1327 阅读 · 0 评论 -
Java对象StringBuffer类-12-替换和反转功能
继续学习StringBuffer类里面的相关方法,本篇学习替换和反转功能。 1.替换功能 替换方法 replace(int start, int end , String str)。注意, end这个参数,是不包括end对应的索引。从start索引开始到end结束进行字符串替换,但是不包括end位置,下面代码举例看看。package stringbuffer;public class Demo...原创 2018-04-13 13:48:49 · 1292 阅读 · 0 评论 -
Java对象StringBuffer类-13-String和StringBuffer互相转换和练习题
本篇来学习如何在Stirng和StringBuffer之间互相转换,和利用StringBuffer方法重新做前面String类做过的面试编程练习题。 1.String对象转换为StringBuffer对象 要把String转换成StringBuffer有两种方法,一种是构造方法,第二种是append方法。package stringbuffer;publicclass Demo1_String...原创 2018-04-13 16:10:04 · 2004 阅读 · 1 评论 -
Java对象StringBuffer类-14-StringBuffer和StringBuilder的区别
本篇我们来理解下String和StringBuffer分别作为参数传递会发生什么,其值到底会不会发生改变。然后总结一下String和StringBuffer和StringBuilder三者的区别,作为结束String和StringBuffer类的学习。 一个带参数的方法,参数是可以是基本数据类型,也可以是引用数据类型。之前我们有这么一个理论。如果基本数据类型作为参数传递...原创 2018-04-13 23:02:03 · 614 阅读 · 0 评论 -
Java常见排序算法-15-冒泡排序
本篇开始学习排序,主要学习冒泡,选择,二分查找三种基本的排序算法。这三个排序算法,不用讲,面试之前必须要准备的,个人意见,即使背也要背下来。这三个经常在面试过程中,让你写在黑板上或者白纸上。冒泡是最简单的,二分和选择排序被要求写代码的概率比冒泡要多得多,因为冒泡大家都听过,多少会写一点。 这篇,通过一个数组的冒泡排序过程,先画一个图,然后总结出结论,然后写出冒泡排序代码...原创 2018-04-15 23:04:53 · 970 阅读 · 1 评论 -
Java常见排序算法-16-选择排序
前面一篇介绍了冒泡排序,冒泡排序的思想是,相邻位置两个元素进行比较,进行交换位置,小的排前面,大的排后面。本篇来学习选择排序,在学习之前,如果你还不能用笔在白纸上写出冒泡排序算法,建议你再写一遍,然后开始本篇的学习。1.选择排序的原理 选择排序的核心思想就是,从一个索引位置上的元素,分别和剩余后面索引对应元素进行比较,进行交换,小的排前面,大的排后面。需要去理解下什么是从...原创 2018-04-16 10:35:10 · 1968 阅读 · 1 评论 -
Java查找算法-17-二分查找
前面两篇介绍了两个常见的基于数组的排序算法,这篇来学习一个数组查找元素的算法,叫二分查找。这个二分查找效率还是比较高的,比较一次就可以判断一半元素。二分查找的前提是有序数组,所以采用二分查找之前,必须要对数组元素进行排序,你可以用冒泡也可以用选择排序。1.二分查找原理2.查找一个小于中间值3.查找一个大于中间值的4.查找一个不存在的5.具...原创 2018-04-16 19:48:47 · 667 阅读 · 1 评论 -
Java数组工具类Arrays-18-常用方法介绍
前面我们学习了冒泡和选择排序以及二分查找,还有数组如何转换成字符串,其实接下来学习的这个Arrays类都提供了解决这些问题的方法。Arrays类是一个数组工具类,就像String类是处理字符串的工具类一样,Arrarys就是为解决数组相关操作而设计的一个工具类。下面介绍三个常用的Arrays类下方法,分别是转字符串输出,排序和二分查找。 1.数组转换成字符串 前面几篇文章...原创 2018-04-16 22:47:47 · 999 阅读 · 0 评论 -
Java包装类-19-包装类介绍和Integer类运用举例
这篇我们来学习基本数据类型的包装类。什么是包装类呢?在Java中有八种基本数据类型(byte char short long int Boolean float double ), 基本数据类型的操作简单,没有像对象调用方法去操作便利,所以就产生了包装类。包装类是为了更好地去操作基本数据类型,例如把一个int类型的数据,通过包装类的方法,可以快速得到一个二进制的值。 1.基本数据类型和...原创 2018-04-17 16:31:30 · 1117 阅读 · 0 评论 -
Java包装类-20-自动拆箱和包装以及面试题
在Java1.5支持了自动装箱和拆箱功能。什么是装箱和拆箱呢?把基本数据类型转换成包装类类型就是装箱,把包装类类型装换成基本数据类型就是拆箱。 1.代码举例自动拆箱和包装过程 package eclipse; public class Test_Integer { public static void main(String[] args) { intx =...原创 2018-04-17 18:10:38 · 2446 阅读 · 1 评论 -
Java正则篇-21-正则表达式基本了解和简单运用
接下来学习下正则表达式,其实还是属于字符串操作范围。正则表达式就是一个规则,能够描述一个字符串是否符合一定规则。在开发过程中,注册页面的用户名和密码长度限制,这里就需要使用正则。 题目:分别用字符串操作方法和正则方法来判断给定的一个字符串是否是有效的QQ号码。QQ号码的规则是:1长度在5到15位的数字, 2.不能以数字0开头 1. 字符串相关方法的代码实现 我们需要写一个方法去判断是否...原创 2018-04-18 13:34:14 · 671 阅读 · 0 评论 -
Java正则篇-22-字符类
上一篇,写了一个QQ号码规则的正则表达式,并没有介绍里面这个正则每个符号代表什么含义。这篇开始,我们就来学习一些Java里正则的符号的含义,先来看看字符类的内容。 1.API中字符类含义打开JDK API 搜索String类,找到match()方法,点击旁边的正则表达式链接。然后下来找到字符类部分,以下截图。2.字符类练习 1)[abc] package regex;public ...原创 2018-04-19 18:40:11 · 600 阅读 · 1 评论 -
Java正则篇-23-预定义字符类
前面一篇了解了字符类,这篇来学习预定义字符类。没什么好说的,先每个字符类都写一个正则表达式来测试下,通过举例一些正向和反向的例子来练习。反正一开始,用得少记不住每个字符的含义,后面用多了,自然就会写正则表达式。 1. 在API文档关于预定义字符类上面同样是用来匹配单个字符的 2. 代码练习 针对没个字符类写一个方法来测试package regex;public class Dem...原创 2018-04-20 21:06:24 · 1010 阅读 · 0 评论 -
Java正则篇-24-数量词
本篇来学习正则表达式里面的数量词的表示方法,顾名思义,数量词就描述匹配多少个个数的意思。 1.API中数量词的定义 2.代码分别测试每个数量词 package regex;public class Demo1_Regex { /* * X? X,一次或一次也没有 X* X,零次或多次 X+ X,一次或多次 X{n} X,恰好 n 次 ...原创 2018-04-21 15:18:37 · 576 阅读 · 0 评论 -
Java正则篇-25-字符串切割
本篇来学习正则里的切割功能。在String类有一个split()的方法,就是一个字符串的切割方法,形式参数就是传入一个正则表达式的字符串。这篇,用一个基本的例子,来学习split()方法,我在做自动化测试的时候, 在Java和Python脚本中都使用过这个方法。 1.根据空格切割使用了split()方法之后,得到的是一个字符串数组。package regex;public clas...原创 2018-04-21 20:45:56 · 3607 阅读 · 0 评论 -
Java正则篇-26-编程练习-给定字符串数字排序后输出新字符串
这篇来写一个编程练习,题目是在给定的一个字符串中,里面全部是一些数字元素,需要通过代码实现,按照从小到大的数字输出成字符串。1.题目在给定的字符串“91 27 46 38 50”,编程实现输出“27 38 46 50 91”.2.分析过程1)将字符串转换成一个字符串数组2)将字符串保存在一个等长度的int数组3)排序4)排序之后遍历并拼接输出成一个新字符串...原创 2018-04-21 21:47:00 · 884 阅读 · 0 评论 -
Java正则篇-27-正则的替换和分组功能
这篇来学习正则表达式的替换和分组功能,替换很好理解,分组有点复杂,特别是如何写有效的分组的正则表达式。这篇通过几个练习,简单了解下替换和分组功能。1.替换功能 在String类有一个替换功能的方法,结合正则表达式去实现替换,下面是replaceAll()方法的举例。package regex;public class Demo1_Regex { public sta...原创 2018-04-21 22:35:50 · 5629 阅读 · 0 评论 -
Java正则篇-28-Pattern和Matcher基本了解和获取功能
前面虽然都介绍了正则的一些字符表示含义,这篇正式开始介绍和正则相关的两个Java类对象:Pattern和Matcher。这篇先来了解这两个类的基本概述和简单使用方法。 打开API,搜索并找到Pattern这个类,可以看到模式和匹配器的描述,而且出现了典型的调用顺序。 Pattern p = Pattern.compile("a*b"); Matcher m = p.m...原创 2018-04-22 21:22:56 · 689 阅读 · 0 评论 -
Java常见对象Math类-29-基本了解和几个常用成员方法
这篇学习Math类的基本使用场景。Math类是用于基本数学运算的方法,像初等指数,对数和平方根以及三角函数。之前我们知道,圆周率PI这个常量就是在Math类下。 打开API,搜索并找到Math页面,然后学习以下几个成员方法,来达到初步对Math这个类的掌握。package math;public class Demo1_Math { public static voi...原创 2018-04-22 22:19:57 · 717 阅读 · 0 评论 -
Java常见对象System类-30-基本了解和几个常用成员方法
本篇来了解下System这个类,这个类我们在前面至少两个地方用到过,一个是天天写输出语句的System.out.println(),还有一个是在使用Scanner类过程中,接收键盘录入对象的参数System.in。学习完这篇,就能了解System.in和System.out这大概的作用。1.基本特点 打开JAVA API文档,搜索找到System类,可以了解下,System...原创 2018-04-23 12:08:39 · 1294 阅读 · 0 评论 -
Java常见对象BigInteger类-31-BigInteger概述和加减乘除举例
这篇来了解和学习一下BigInteger类,我记得在Oracle面试的时候,被问过这个知识点。大致的问题就是,给两个很大的数,int类型存储不下,如何进行两个很大数的相减。当时的回答是,把这个字符串转成字符串数组,然后没一个位进行相减,但是不知道如何处理,位数不够如何向前接一个的问题,代码写不出来。如果当时知道有BigInteger类,就很容易实现。 1.API阅读BigIntege...原创 2018-04-23 14:44:37 · 2351 阅读 · 0 评论 -
Java常见对象BigDecimal类-32-BigDecimal基本使用
接下里继续学习能表示范围很大的相关的类BigDecimal,前面我们学习了BigInteger,所以BigDecimal应该是大小数的意思。当然使用BigDecimal能表示范围很大的小数,主要作用还是用在精确表示小数这块。 1.面试题很多人,见过这个面试题,说在一个人在超时购物,买了一个7.9元的商品,给了10元钱,用编程实现找零的过程。 很多人不注意,看起来问题很简单,直接一句代码...原创 2018-04-23 15:50:03 · 1152 阅读 · 0 评论 -
Java常见对象Date类-33-Date类概述
这篇来学习Date类,这个类看到名称就知道是和时间有关系的。这个类要学习的东西很少,因为很多构造方法和成员方法都标记过时了。 1.打开API,阅读Date类的注解1)类 Date 表示特定的瞬间,精确到毫秒。2)导入包语句是java.util.Date,不要和sql下的Date搞混。2.构造函数 有两个构造方法,一个空参,一个有参。默认空参返回的是从1970年1月1日0点0分...原创 2018-04-23 23:11:54 · 595 阅读 · 0 评论 -
Java常见对象SimpleDateFormat类-34-概述和练习题
前面学习了Date这个类,返回的对象是一个毫秒的数字,看起来很不爽。完全不知道是什么具体时间和日期。如果能打印出来“2018年08月08日 08:08:08”这样的格式,那就方便多了,毕竟我们生活中接触的时间日期基本上都差不多是这个类型的,而不是从1970年1月1号到现在的毫秒值。今天学习的SimpleDateFormat能帮我们解决这个时间日期数据装换成更习惯的格式。1. API基...原创 2018-04-24 22:35:40 · 1308 阅读 · 2 评论 -
Java常见对象Calendar类-35-为什么Calendar能代替Date类的许多方法
之前我们学了Date类和SimpleDateFormat类,这两个都是时间和时间日期格式化操作的类。这篇学习Calendar类,叫日历类,而且是一个抽象类。在学习Date类的时候,看到API标注很多类已经过时了,这些过时的方法就是由Calendar类来替代的。1.API阅读和基本使用 在JDK API 1.6文档,搜索打开Calendar类,可以找到它有一...原创 2018-04-25 15:46:11 · 1134 阅读 · 1 评论 -
Java常见对象Calendar类-36-set和add方法以及判断是否是闰年
这篇继续学习Calendar的成员方法:add()和set()方法。Add()方法是根据字段去向前加或者向后减相关字段的值,而set()方法是直接给某字段设置具体值,或者给某几个字段一起赋值。1.add()方法package otherclass;import java.util.Calendar;public class Demo1_Calendar { p...原创 2018-04-25 18:53:26 · 1293 阅读 · 0 评论 -
Java集合框架篇-37-数组对象存储
这篇和下面的文章都会介绍Java集合框架的学习过程。前面文章学习了数组操作,字符串操作和几个排序算法以及一些常见工具类的基本使用。这些知识点,其实已经覆盖了一部分,我们在自动化测试或者测试开发面试过程中经常被问到的开发知识或者手写编程题。除了字符串操作这基础部分,也有很大一部分编程题是出现在集合框架范围。 在开始学习结合框架之前,我们先用数组的方法去实现一个编程练习题...原创 2018-04-26 11:49:02 · 793 阅读 · 1 评论 -
Java集合框架篇-38-集合的由来和集合继承体系图
前面一篇我们介绍了用数组来存储引用数据类型,这篇来了解下集合的由来和集合继承体系图。为什么要有集合,集合和数组的区别,什么时候用集合,什么时候用数组,本篇都能得到答案。1.集合的由来 我们知道,数组的长度是固定的,如果添加元素个数超过了数组长度,那么我们需要新建一个长度更长的数组来保存数据。这种方式太麻烦,在Java内部,给我们提供了集合类,能存储任何对象,长度是可以改变的,...原创 2018-04-26 15:29:17 · 1438 阅读 · 0 评论 -
Java集合框架篇-39-集合的基本功能测试
本篇来学习Collection这个接口的几个方法,通过代码来熟悉和了解基本的几个方法的使用。Collection作为单列集合的根类,我们以后要经常使用这些方法。1.add(E e) 上面参数E e表示是泛型,也就是可以把任何对象作为参数传入。泛型,还没有学习到,后面再说,先来看看add()方法的使用。package collection;import j...原创 2018-04-26 23:24:36 · 672 阅读 · 0 评论 -
Java集合框架篇-40-转数组方法练习
这篇继续学习Collection接口的方法,我们先学习集合转数组的方法。有时候我们拿到的数据类型是集合,我们想转换成数组,然后利用数组相关方法进行操作。下面我们就通过三段代码来练习转换数组的过程,注意第三段代码中的出现的父类不能调用子类的成员方法的问题。 1.集合转数组 package collection;import java.util.ArrayList;import j...原创 2018-04-27 13:39:39 · 681 阅读 · 0 评论