20175209 《Java程序设计》第七周学习总结

一、教材知识点总结

第八章 常用类和实用类

1.String类

  • 构造String对象

    • 常量对象:“”中的字符序列,存放在常量池中,运行期间不会被改变
    • 创建对象:String s = new String("we are students")或者用已创建的String对象创建新的String对象String tom = new String(s)

      • 对象中存放的是引用,实体相同的两个变量在比较时要看引用是否相同
      • 构造方法String(char a[]) String(char a[],int SrartIndex,int count)
    • 引用String常量:将String常量的值赋给某一对象

  • 字符串的并置

    • 用“+”进行并置操作
    • 参与并置运算的对象若均为常量,则新的对象在常量区存储或生成;当存在一个为变量时,则新对象在动态区存放新的实体和引用
  • 常用方法

    • public int length() 获取字符序列的长度
    • public boolean equals(String s) 比较当前字符序列与s给定的字符序列是否相同
    • public boolean startsWith(String s) public boolean endsWith(String s) 判断当前字符序列前缀或后缀与s指定的字符序列是否相同
    • public int compareTo(String s) 按字典序比较当前字符序列与s指定的字符序列的大小。相同返回0;大于s返回整数;小于s返回负数
    • public boolean contains(String s) 判断当前字符序列是否包含s指定的字符序列, 注意s在当前字符序列中必须是连续的
    • public int indexOf(String s) public int lastindexOf(String s) 从当前字符序列0索引位置检索首次或最后一次出现s的字符序列的位置,并将位置返回,未找到返回-1
    • publlic String substring(int startpoint) 复制当前字符序列从指定位置至最后位置的字符序列substring(int start,int end) 复制当前字符序列从start位置至end-1位置的字符序列
    • public String trim() 得到当前字符序列去掉前后空格的新字符序列,字符中间空格无法去掉
  • 字符串与基本数据类型的转化

    • 整形数据调用方法public static String valueOf(int n)将整数n转化为String对象,其余类型数据方法相同,更换数据类型即可
  • 对象的字符串表示

    • 调用toString()方法返回的字符序列形式为:创建对象的类的名字@对象的引用的字符串表示
    • 重写toString()方法
  • 字符串与字符数组、字节数组

    • 字符串与字符数组

      • 构造方法public void getChars(int start,int end,char c[],int offset) public char[] toCharArray()
    • 字符串与字节数组

      • String(byte[]) 使用指定的字节数组构造String对象
      • String(byte[],int offset,int length) 从offset开始取length个字节构造String对象
      • public byte[] getBytes() 使用凭平台默认编码将字符序列存放至数组中
      • public byte[] getBytes(String charsetName) 使用指定字符编码将字符序列存放至数组中,返回引用
  • 正则表达式及字符串的替换与分解

    • 正则表达式

      • 元字符:在正则表达式中含有特殊意义的字符
      • 调用public boolean matches(String regex) 方法判断当前字符序列与regex指定的正则表达式匹配
      • 正则表达式中可以使用限定修饰符‘?’
    • 字符串的替换

      • public String replaceAll(String regex,String replacement) 将字符串中所有和参数regex匹配的字符序列用replacement替换
    • 字符序列的分解

      • public String[] split(String regex) 用指定正则表达式作为分隔符当前字符序列中的字符并放入数组中

2.StringTokenizer类

  • 构造方法

    • StringTokenizer(String s) 构造一个分析器,使用默认的分隔标记(空格、回车、换行、Tab)
    • StringTokenizer(String s,String delim) 构造一个分析器,使用delim中字符的任意排列作为分隔标记
  • 方法

    • nextToken() 在字符序列中获得下一个语言信号
    • hasMoreToken() 判断字符序列中是否还有语言信号
    • countToken() 返回分析器中计数变量的值,即判断字符序列中还有几个语言信号

3.Scanner类

  • 作用:解析程序需要的字符序列中的数据
  • 方法

    • Scannner scannner = new Scanner(A) 构造对象
    • useDelimiter(正则表达式) 确定分隔标记
    • next() 返回字符序列中的单词
    • nextDouble() nextInt() 将数字型单词转变类型返回
    • hadNext()判断是否还含有单词
  • 和StringTokenizer的区别

    • StringTokenize对象获取单词r速度快,Scanner获取单词速度慢
    • StringTokenizer对象实体占用空间多,Scanner不将单词存放在Scanner的实体中,节省空间
    • StringTokenizer可以直接获取单词数目,Scanner不可以

4.StringBuffer类

  • 对象

    • 实体的内存空间可以自由改变大小
    • 构造方法

      • StringBuffer(); 分配初始容量16个字符,可以自动增加
      • StringBuffer(int size) 初始容量为size,恶意自动增加
      • StringBuffer(String s) 初始容量为s的字符序列长度+16
  • 常用方法

    • length() 获取实体中存放字节序列的长度
    • capacity() 获取实体的实际容量
    • append方法:用于将指定数据类型的数据追加至当前字符序列的末尾并返回引用
    • public char CharAt(int n) 得到指定位置的字符
    • public char CharAt(int n,char ch) 将位置n处的字符用指定字符ch替换
    • StringBuffer insert(int index,String s) 将参数str指定的字符序列插入index位置并返回引用
    • public StringBuffer reverse() 将字符序列翻转并返回引用
    • StringBuffer delete(int startIndex, int endIndex) 删除从startIndex到endIndex-1位置的字符并返回引用
    • StringBuffer replace(int startIndex, int endIndex, String str) 用字符序列str替换从startIndex到endIndex-1位置的字符序列并返回引用

5.Date类与Calendar类

  • Date类

    • 无参数构造方法Date nowTime = new Data() 获取本机日期和时间
    • 有参数构造方法Date nowTime = new Data(long time) 获取相隔time的日期和时间
  • Calendar类

    • 初始化:Calendar calendar = new Calendar.getInstance()
    • 方法

      • public final void set(int year,int month,int day,int hour,int minute,int second) 将日历翻到指定时间
      • public int get(int field) 获取相关信息

6.日期格式化

  • format方法:format(格式化模式,日期列表)

    • 格式化模式:

      • %ty,%tm,%td 分别表示年月日
      • %tF相当于“年-月-日”
    • 日期列表
    • 格式化同一日期:“<”及之前的格式符格式同一个日期

  • 不同区域星期格式

    • 重载format方法 format(Locate locate(表示地域),格式化模式,日期列表)

7.Math类、BigInter类和Random类

  • Math类包含用于科学计算的静态方法、常量E和PI
  • BigInter类用于处理特别大的整数,public BigInter(String val) 构造十进制BigInter对象
  • Random类产生随机数

8.数字格式化

  • format方法

    • 格式化模式:字符由格式符和普通字符组成
    • 值列表:用逗号分隔的变量、常量或表达式;
    • “格式符”个数应与“值列表”给出的值相同
    • 格式化顺序

      • 默认顺序:从左至右
      • 索引符号"Index$"改变顺序,1$为值列表中第一个
  • 格式化整数

    • 进制表示

      • %d格式化为十进制整数
      • %o格式化为八进制整数
      • %x格式化为小写十六进制整数
      • %X格式化为大写十六进制整数
    • 修饰符

      • “+”格式化正整数强行添加正号
      • “,”格式化整数按千分组
    • 数据宽度

      • “%md”长度为m,左面加空格
      • “%-md”长度为m,右面加空格
  • 格式化浮点数

    • 数据类型

      • %f格式化为十进制浮点数,小数保留六位
      • %e格式化为科学计数法的十进制整数
    • 修饰符

      • “+”格式化正整数强行添加正号
      • “,”格式化整数按千分组
    • 数据宽度

      • “.nf”小数位数为n
      • “%mf”长度为m,左面加空格
      • “%-mf”长度为m,右面加空格
      • “%m.nf”指定宽度并限制小数位数

9.Class类和Console类

  • Class类使用步骤如下

    • 使用Class的类方法得到和某类(参数className指定的类)相关的Class对象public static Class forName(String className) throws ClassNotFoundException
    • 调用获得的Class对象 public Object newInstance() throws InstantiationException,IllegalAccessException
  • Console类

    • 作用:输入文本不显示
    • 创建对象 Console cons = System.console()
    • 输入文本 char[] passwd = cons.readPassWord()

10.Pattern类和Matcher类

  • 建立Pattern类Pattern pattern = pattern.compile(regex)
  • 得到匹配对象Matcher matcher = pattern.matcher(input)

二、教材中遇到的问题和解决方法

问题:Class类的用法觉得书上讲的比交简单,不是很理解
解决办法:去百度上查找了有关class类的相关讲解,具体内容如下https://www.cnblogs.com/yepei/p/5649276.html

三、代码调试过程中遇到的问题

  • Example8_20中的程序在运行时提示不能使用修饰符访问Rect,原因是在写代码时将代码放在了包下,在访问Rect类时应该使用包名调用Class cs = Class.forName("ch8.Rect");

  • Example8_21的代码在IDEA之中无法运行成功,一直没有找出错误原因,去终端中尝试运行就成功了

四、代码托管

https://gitee.com/wangzihong/20175209/tree/master/src

五、脚本运行截图

六、学习进度条

代码行数(累计总数) 博客量 学习时间
目标 8000 40 300
第一周 19 1 12
第二周 309 2 15
第三周 740 3 10
第四周 1468 4 10
第五周 1922 8 8
第六周 3290 10 15
第七周 4183 12 10

20175209 《Java程序设计》第七周学习总结的更多相关文章

  1. 201521123027 <java程序设计>第七周学习总结

    1.本周学习总结 2.书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 答: 源代码: //contains()方法 public boolean c ...

  2. 20175209 《Java程序设计》第九周学习总结

    20175209 <Java程序设计>第九周学习总结 一.教材知识点总结 有关数据库下载中存在可能出现的问题已经在博客<数据库安装和使用过程中出现的一些问题>给出了相应的解决办 ...

  3. 201871010106-丁宣元 《面向对象程序设计(java)》第七周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第七周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...

  4. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  5. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  6. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  7. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

  8. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  9. 20145237 《Java程序设计》第九周学习总结

    20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...

  10. 20175317 《Java程序设计》第九周学习总结

    20175317 <Java程序设计>第九周学习总结 学前准备 首先下载XAMPP,下载完成后打开: 将前两个选项打开 在IDEA中配置驱动mysql-connector-java-5.1 ...

随机推荐

  1. axios 封装

    来自:https://www.jianshu.com/p/68d81da4e1ad 侵删 import axios from 'axios' import qs from 'qs' let baseu ...

  2. odoo12 物流 自动计算运费 ,采购销售使用不同计量单位自动换算

    在物流和食品生鲜类行业,重量是很重要的因素,不仅要处理产品的数量,也要处理产品的重量.在多数行业,重量也是订单的重要数据. odoo原生包含了对重量的处理,下文中将指导如何优雅应用odoo原生模块处理 ...

  3. AIDL使用以及原理分析

    AIDL使用以及IPC原理分析(进程间通信) 概要 为了大家能够更好的理解android的进程间通信原理,以下将会从以下几个方面讲解跨进程通讯信: 1. 必要了解的概念 2. 为什么要使用aidl进程 ...

  4. Java数据解析之XML

    文章大纲 一.XML解析介绍二.Java中XML解析介绍三.XML解析实战四.项目源码下载   一.XML解析介绍   最基础的XML解析方式有DOM和SAX,DOM和SAX是与平台无关的官方解析方式 ...

  5. 斐波那契数列(C#)

    斐波那契数,亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列.费波那西数列.费波拿契数.费氏数列,指的是这样一个数列:1.1.2.3.5.8.13 ...

  6. linux使用Nginx搭建静态资源服务器

    最近公司需要做一个宣传片播放  视频有点大 好几百M 就想到使用Nginx来代理静态资源,在过程中出现了一些问题,比如端口没开.访问是403等,没有成功,后面慢慢查找问题,才发现大部分博客资料的都不全 ...

  7. goodbye 2018, hello 2019

    纵使不愿意,终究还是到了岁末. 2018 ​ 即将过去的一年,已经完成的事情自己做得不足.年初计划要做的几件事情都做了,感觉没有尽力去做好. 工作 ​ 16年毕业之后到今年,算是真正意义上完成从学生时 ...

  8. vue启动时候报错

    使用vue时,在已经安装模块完毕的情况下,依旧会报错,如: Module build failed: Error: %1 is not a valid Win32 application. 这个时候只 ...

  9. Django学习笔记(1)--第一个项目

    操作系统:Windows Python版本:python3.6 前置工作: pip install virtualenvwrapper #安装虚拟环境管理包 1.创建虚拟环境 mkvirtualenv ...

  10. Python多线程操作

    多线程是一门编程语言的重要操作. GIL(全局解释器锁)存在于python解释器中,用来确保当前只有一个线程被执行,当一个线程获得GIL后,这个线程将被执行,退出时释放GIL,由下一个获得GIL的线程 ...