2018-2019-2 《Java程序设计》第7周学习总结
20175319 2018-2019-2 《Java程序设计》第7周学习总结
教材学习内容总结
本周学习《Java程序设计》第8章:
1.String
类:
- Java专门提供了用来处理字符序列的
String
类 - 构造
String
对象- 常量对象
- 字符串常量对象是用双引号括起的字符序列
- 常量池
String
对象- 可以使用
String
类声明对象并创建对象 - 用户无法输出
String
对象的引用 - 两个较常用的构造方法
1.String (char a[])
用一个字符数组a创建一个String
对象
2.String(char a[],int startIndex,int count)
提取字符数组a中的一部分字符创建一个String
对象,参数startIndex
和count
分别指定在a中提取字符的起始位置和从该位置开始截取的字符个数。
- 可以使用
- 常量对象
- 字符串的并置
String
对象可以用+进行并置运算,即首尾相接得到一个新的String
对象- 如果是两个常量进行并置运算,那么得到的仍然是常量,如果常量池没有这个常量就放入常量池。
- 参与并置运算的
String
对象,只要有一个是变量,那么Java就会在动态区存放所得到的新String
对象的实体和引用。
String
类的常用方法public int length()
获取一个字符串的长度public boolean equals(String s)
判断当前String
对象的字符序列是否与参数s指定的String
对象的字符序列相同public boolean startsWith(String s)
判断当前String
对象的字符序列前缀是否是参数指定的String
对象s的字符序列public boolean endsWith(String s)
判断当前String
对象的字符序列后缀是否是参数指定的String
对象s的字符序列public int compareTo(String s)
按字典序与参数s指定的字符序列比较大小public boolean contains(String s)``String
对象调用contains
方法判断当前String
对象的字符序列是否包含参数s的字符序列public int indexOf (String str)``String
对象调用方法从当前String
对象的字符序列的0索引位置开始检索首次出现str的字符序列的位置,并返回该位置。如果没有检索到,该方法返回的值是–1public int lastIndexOf(String ste)
从当前String
对象的字符序列的0索引位置开始检索最后一次出现str的字符序列的位置,并返回该位置。如果没有检索到,该方法返回的值是-1public String substring(int startpoint)
字符串对象调用该方法获得一个新的String
对象,新的String
对象的字符序列是复制当前String
对象的字符序列中的startpoint
位置至最后位置上的字符所得到的字符序列。String
对象调用substring(int start ,int end)
方法获得一个新的String
对象,新的String
对象的字符序列是复制当前String
对象的字符序列中的start
位置至end–1
位置上的字符所得到的字符序列
-public String trim()
得到一个新的String
对象,这个新的String
对象的字符序列是当前String
对象的字符序列去掉前后空格后的字符序列
- 字符串与基本数据的相互转化
- Java.lang包中的Integer类调用其类方法:
public static int parseInt(String s)
可以将由“数字”字符组成的字符串,转化为int型数据 - 使用java.lang包中的Byte、Short、Long、Float、Double类调相应的类方法可以将由"数字"字符组成的字符串,转化为相应的基本数据类型
public static String valueOf(n的类型, n)
可以使用String
类的类方法将数值转化为String
对象
- Java.lang包中的Integer类调用其类方法:
- 对象的字符串表示
- 一个对象通过调用
public String toString()
方法可以获得该对象的字符序列表示。一个对象调用toString()
方法返回的String
对象的字符序列的一般形式为:
创建对象的类的名字@对象的引用的字符串表示字符串与字符、字节数组
- 一个对象通过调用
- 字符串与字符数组、字节数组
- 字符串与字符数组
String(char[ ])
用指定的字节数组构造一个字符串对象String(char[ ],int offset,int length)
用指定的字节数组的一部分,即从数组起始位置offset
开始取length个字节构造一个字符串对象public char[] toCharArray()
将String
对象的全部字符序列存放到数组中public void getChars(int start,int end,char c[],int offset )
将String
对象的部分字符序列存放到数组中
- 字符串与字节数组
String(byte[])
用指定的字节数组构造一个字符串对象String(byte[],int offset,int length)
用指定的字节数组的一部分,即从数组起始位置offset
开始取length个字节构造一个字符串对象public byte[] getBytes()
使用平台默认的字符编码,将当前String
对象的字符序列存放到字节数组,并返回数组的引用public byte[] getBytes(String charsetName)
使用参数指定字符编码,将当前String
对象的字符序列存放到字节数组,并返回数组的引用
- 字符串的加密算法
char [] p = password.toCharArray();
- 字符串与字符数组
- 正则表达式及字符串的替换与分解
- 正则表达式
- 正则表达式是一个
String
对象的字符序列,该字符序列中含有具有特殊意义字符,这些特殊字符称做正则表达式中的元字符 String
对象调用public boolean matches(String regex)
方法可以判断当前String
对象的字符序列是否和参数regex
指定的正则表达式匹配
- 正则表达式是一个
- 字符串的替换
public String repalceAll(String regex,String replacement)
用参数replacement
的字符序列替换当前String
的字符序列中所有和参数regex
匹配的子字符序列
- 字符序列的分解
public String[] split(Sring regex)
使用参数指定的正则表达式regex
作为分割标记分解出当前String
对象的字符序列中的单词,并将分解出的单词存放在String
数组中
- 正则表达式
2.StringTokenizer
类
- 两个常用的构造方法:
StringTokenizer(String s)
为String
对象s构造一个分析器。使用默认的分隔标记,即空格符、换行符、回车符、Tab符、进纸符做分隔标记StringTokenizer(String s, String delim)
为String
对象s构造一个分析器。参数delim
的字符序列中的字符的任意排列被作为分隔标记
StringTokenizer
对象称作一个字符串分析器可以使用下列方法:nextToken()
逐个获取字符串中的语言符号(单词),字符串分析器中的负责计数的变量的值就自动减一 。hasMoreTokens()
只要字符串中还有语言符号,即计数变量的值大于0,该方法就返回true,否则返回false。countTokens()
得到分析器中计数变量的值
3.Scanner
类
Scanner
对象可以解析字符序列中的单词Scanner
将空格做为分隔标记来解析字符序列中的单词,具体解析操作:Sanner
对象调用next()
方法依次返回被解析的字符序列中的单词,如果最后一个单词已被next()
方法返回,Scanner
对象调用hasNext()
将返回false,否则返回ture- 对于被解析的字符序列中的数字型单词,
Scanner
对象可以用nextInt()
或nextDouble()
方法来代替next()
方法 - 如果单词不是数字型单词,
Scanner
对象调用nextInt()
或nextDouble()
方法将数字型单词转化为int
或double
数据返回 - 如果单词不是数字型单词,
Scanner
对象调用nextInt()
或nextDOuble()
方法将发生InputMismatchException
异常,在处理异常时可以调用next()
方法返回非数字化单词
4.StringBuffer
类
StringBuffer
对象StringBuffer
类的对象的实体的内存空间可以自动地改变大小,便于存放一个可变的字符序列- 三个构造方法
StringBuffer()
StringBuffer(int size)
StringBuffer(String s)
StringBuffer
类的常用方法StringBuffer append(String s)
将String对象s的字符序列追加到当前StringBuffer
对象的字符序列中,并返回当前StringBuffer
对象的引用StringBuffer append(int n)
将int
型数据n转化为String
对象,再把该String
对象的字符序列追加到当前StringBuffer
对象的字符序列中,并返回当前StringBuffer
对象的引用StringBuffer append(Object o)
将一个Object
对象o的字符序列表示追加到当前String- Buffer
对象的字符序列中,并返回当前StringBuffer
对象的引用public chat charAt(int n )
得到参数n指定的置上的单个字符public void setCharAt(int n ,char ch)
将当前StringBuffer
对象实体中的字符串位置n处的字符用参数ch
指定的字符替换StringBuffer insert(int index, String str)
将参数str
指定的字符串插入到参数index
指定的位置public StringBuffer reverse()
将该对象实体中的字符翻转StringBuffer delete(int startIndex, int endIndex)
从当前StringBuffer
对象实体中的字符串中删除一个子字符串StringBuffer replace(int startIndex,int endIndex,String str)
将当前StringBuffer
对象实体中的字符串的一个子字符串用参数str
指定的字符串替换
5.Date
与Calendar
类
Date类 - 构造方法 - 使用
Date类的无参数构造方法创建的对象可以获取本地的当前日期和时间,例如
Date nowTime=new Date();- 计算机系统将其自身的时间的“公元”设置在
1970年1月1日0时(格林威治时间),可以根据这个时间使用
Date的带参数的构造方法
Date(long time)来创建一个
Date`对象Calendar
类- 使用
Calendar
类的static
方法getInstance()
可以初始化一个日历对象。
- 使用
calendar
对象可以调用方法:public final void set(int year,int month,int date)
public final void set(int year,int month,int date,int hour,int minute)
public final void set(int year,int month, int date, int hour, int minute,int second)
- 将日历翻到任何一个时间
6.日期的格式化
format
方法- 不同区域的星期格式
7.Math
、BigInteger
和Random
类
Math
类Math
类包含许多用来进行科学计算的static
方法Math
类有两个static
常量:E 2.7182828284590452354
和PI 3.14159265358979323846
Math
类的常用方法public static long abs(double a)
返回a的绝对值。public static double max(double a,double b)
返回a、b的最大值。public static double min(double a,double b)
返回a、b的最小值。public static double random()
产生一个0到1之间的随机数(不包括0和1)。public static double pow(double a,double b)
返回a的b次幂。public static double sqrt(double a)
返回a的平方根。public static double log(double a)
返回a的对数。public static double sin(double a)
返回正弦值。public static double asin(double a)
返回反正弦值。public static double ceil(double a)
返回大于a的最小整数,并将该整数转化为double
型数据。public static double floor(double a)
返回小于a的最大整数,并将该整数转化为double
型数据。public long double round(double a)
返回a的“四舍五入”后的值。
BigInteger
类java.math
包中的BigInteger
类提供任意精度的整数运算。可以使用构造方法:public BigInteger(String val)
构造一个十进制的BigInteger
对象public BigInteger add(BigInteger val)
返回当前大整数对象与参数指定的大整数对象的和。public BigInteger subtract(BigInteger val)
返回当前大整数对象与参数指定的大整数对象的差。public BigInteger multiply(BigInteger val)
返回当前大整数对象与参数指定的大整数对象的积。public BigInteger divide(BigInteger val)
返回当前大整数对象与参数指定的大整数对象的商。public BigInteger remainder(BigInteger val)
返回当前大整数对象与参数指定的大整数对象的余。public int compareTo(BigInteger val)
返回当前大整数对象与参数指定的大整数的比较结果,返回值是1、-1或0,分别表示当前大整数对象大于、小于或等于参数指定的大整数。public BigInteger pow(int a)
返回当前大整数对象的a次幂。public String toString()
返回当前大整数对象十进制的字符串表示。public String toString(int p)
返回当前大整数对象p进制的字符串表示。
Random
类- 构造方法:
public Random();
使用当前机器时间作为种子创建一个Randow
对象public Random(long seed);
使用参数seed
指定的种子创建一个Random
对象
- 构造方法:
8.数字格式化
format
方法- 格式化整数
- 格式化浮点数
9.Class
类与Console
类
Class
类- 使用
Class
的类方法得到一个和某类(参数className
指定的类)相关的Class
对象:public static Class forName(String className) throws ClassNotFoundException
方法返回一个和参数className
指定的类相关的Class对象。如果类在某个包中,className
必须带有包名 - 上述步骤中获得的
Class对象
调用public Object newInstance() throws Exception
方法就可以得到一个className类的对象 - 要特别注意的是:使用
Class
对象调用newInstance()
实例化一个className
类的对象时,className
类必须有无参数的构造方法
- 使用
Console
类Console cons=System.console() char[] passwd=cons.readPassword()
10.Pattern
与Matcher
类
- Java提供了专门用来进行模式匹配的
Pattern
类和Matcher
类,这些类在java.util.regex
包中 - 建立
Pattern
对象- 使用正则表达式
regex
作参数得到一个称为模式的Pattern
类的实例pattern
Pattern
对象是对正则表达式的封装。Pattern
类调用类方法compile(String regex
)返回一个Pattern
对象,其中的参数regex
是一个正则表达式,称为模式对象使用的模式
- 使用正则表达式
- 得到
Matcher
对象- 模式对象
pattern
调用matcher(CharSequence input)
方法返回一个Matcher
对象matcher
,称为匹配对象,参数input
用于给出matcher
要检索的String
对象
- 模式对象
代码调试中的问题和解决过程
- 问题1:运行第8章例题7时,出现
- 问题1解决方案: GBK中汉字字节长度为2,UTF-8中汉字的字节长度为3,修改代码后即可正常运行。
代码托管
xxx
xxx
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 156/156 | 1/1 | 20/20 | |
第二周 | 275/431 | 1/2 | 22/42 | |
第三周 | 761/1192 | 1/3 | 31/73 | |
第四周 | 428/1620 | 1/4 | 26/99 | |
第五周 | 264/1884 | 1/5 | 11/110 | |
第六周 | 1265/3149 | 4/9 | 32/142 | |
第七周 | 551/3700 | 2/11 | 25/167 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:40小时
实际学习时间:32小时
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
2018-2019-2 《Java程序设计》第7周学习总结的更多相关文章
- 学号 20175212 《Java程序设计》第九周学习总结
学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
随机推荐
- Django 信号signal
序言 Django自带一套信号机制来帮助我们在框架的不同应用位置之间传递信息.也就是说,当某一事件发生时,信号系统可以允许一个或多个发送者(senders)将信号(signals)发送给一组接收者(r ...
- SQLServer更改用户定义的数据库角色
更改用户定义的数据库角色注意事项 需具有以下一项或多项权限或成员身份才能运行此命令: 对角色具有 ALTER 权限 对数据库具有 ALTER ANY ROLE 权限 具有 db_securityadm ...
- JQ表格隔行换色
<style type="text/css"> html, body { margin: 0; padding: 0; font-size: 15px; font-fa ...
- Python基础之函数和模块
函数的基本使用 函数的定义:把具有独立功能的代码块组织成一个小模块,在需要的时候调用.或者说,函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数的使用:1.定义函数:2.调用函数 ...
- 用golang写了个统计各单位报送的信息数量的微服务
代码很乱,bug很多,将就着看吧.参考了很多网上代码,只能说声感谢了. //cjl.ZongHeInfo.1.0 //目的:对各部门报上来的信息数量进行排名 //思路:预计一年信息量不超过100M,全 ...
- 【原创】谈谈线上CPU100%排查套路
引言 不知道在大家面试中,有没有遇到这个问题 生产服务器上部署了几个java程序,突然出现了CPU100%的异常告警,你如何定位出问题呢? 这个问题分为两版回答! 高调版 对不起,我是做研发的,这个问 ...
- CSS3 animation 与JQ animate()的区别
CSS3 与 JQ 根本区别 css3 animation与jQuery animate()区别在于实现机制不同 C3和JQ 完成动画的优缺点 1.css3中的过渡和animation动画都是基于cs ...
- Spring Boot 集成Swagger
Spring Boot 集成Swagger - 小单的博客专栏 - CSDN博客https://blog.csdn.net/catoop/article/details/50668896 Spring ...
- mysql 增删改查基础操作的语法
前提,数据表的结构是这样的 一.插入内容到数据表 INSERT INTO `数据库名`.`数据表名` (`t_title`, `t_con`) VALUES ('标题1', '内容1'); 或这样 I ...
- docker企业实战视频教程
Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机).bare metal. ...