20175209 《Java程序设计》第七周学习总结
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的字符序列的位置,并将位置返回,未找到返回-1publlic 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(表示地域),格式化模式,日期列表)
- 重载format方法
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
- 使用Class的类方法得到和某类(参数className指定的类)相关的Class对象
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程序设计》第七周学习总结的更多相关文章
- 201521123027 <java程序设计>第七周学习总结
1.本周学习总结 2.书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 答: 源代码: //contains()方法 public boolean c ...
- 20175209 《Java程序设计》第九周学习总结
20175209 <Java程序设计>第九周学习总结 一.教材知识点总结 有关数据库下载中存在可能出现的问题已经在博客<数据库安装和使用过程中出现的一些问题>给出了相应的解决办 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第七周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第七周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结
20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...
- 20155303 2016-2017-2 《Java程序设计》第二周学习总结
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
- 20145237 《Java程序设计》第九周学习总结
20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
- 20175317 《Java程序设计》第九周学习总结
20175317 <Java程序设计>第九周学习总结 学前准备 首先下载XAMPP,下载完成后打开: 将前两个选项打开 在IDEA中配置驱动mysql-connector-java-5.1 ...
随机推荐
- WebGL或OpenGL关于模型视图投影变换的设置技巧
目录 1. 具体实例 2. 解决方案 1) Cube.html 2) Cube.js 3) 运行结果 3. 详细讲解 1) 模型变换 2) 视图变换 3) 投影变换 4) 模型视图投影矩阵 4. 存在 ...
- Android编程示例:创建机场计划模拟器应用程序
在本文中,我们将演示如何使用Android Studio和Java编程语言创建一个示例Android应用程序,从“临时”实现高级响应用户界面的功能.本文中讨论的应用程序将实现机场航班时刻表模拟的功能. ...
- centos7后台服务部署jar包
centos7 服务部署jar包 centos7 服务介绍 CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分, 每一个 ...
- hbase rowkey 的设计
什么是rowkey Hbase是一个分布式的.面向列的数据库,它和一般关系型数据库的最大区别是:HBase很适合于存储非结构化的数据,还有就是它基于列的而不是基于行的模式. Hbase是采用K,V存储 ...
- linux如何批量关闭进程
碰到需要杀掉某一类进程的时候,如何批量杀掉这些进程,使用awk命令是很好的选择. 代码: ps -ef|grep aaa|grep -v grep|awk '{print "kill -9 ...
- saiku环境搭建
说明:搭建saiku环境,BI展示工具. 环境说明: os:windows7 jdk:jdk1.6.0_43 tomcat:apache-tomcat-7.0.62 saiku:saiku-ui-2. ...
- Linux新手随手笔记1.7
配置网卡(本地电脑) Vment1 仅主机模式 Vment8 nat模式 物理机 : 192.16810.1 /255.255.255.0 服务器 : 192.168.10.10 /255. ...
- IDEA导入项目jar包红线、依赖问题....
一般遇到这种情况用以下两种方式解决....... 1.reimport包 2.清缓存重启 针对1方法: a.确实不缺包: 可以先注释掉pom文件中的jar包, 此时idea会提示import, 那就i ...
- 周末学习笔记——day02(带参装饰器,wraps修改文档注释,三元表达式,列表字典推导式,迭代器,生成器,枚举对象,递归)
一,复习 ''' 1.函数的参数:实参与形参 形参:定义函数()中出现的参数 实参:调用函数()中出现的参数 形参拿到实参的值,如果整体赋值(自己改变存放值的地址),实参不会改变,(可变类型)如果修改 ...
- MediaManager安装后配置
端口要改成81 修改Chainmail名称: