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.14159265358979323846Math类的常用方法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入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
随机推荐
- 如何正确的升级node版本【已解决】
博主亲身经历可以用以下几步解决node版本问题噢,解决了记得留个赞哈! 1 . 首先要安装n这个版本控制器噢 npm i -g n 如果这一步成功了就接着走哈,但是博主试了,大多数是安装不成功的,可以 ...
- django csrf token添加
#views.py from django.shortcuts import render_to_response, RequestContext from django.views.decorato ...
- Docker-Dockerfile及基本语法
Dockerfile的作用是通过它可以生成自定镜像,先介绍几个基本的docker命令. [docker镜像相关的命令]docker search 镜像名: 搜索镜像docker pull 镜像名: 镜 ...
- js清空数组的方法
方式1:splice函数 arrayObject.splice(index,howmany,element1,.....,elementX) index:必选,规定从何处添加/删除元素. howman ...
- SHA1withRSA加签名和验签名
利用私钥加签名: //contentForSign为需加标签的字符串 public String signWhithsha1withrsa(string contentForSign) { strin ...
- C# -- 泛型的使用
C# -- 泛型的使用 1. 使用泛型 class Program { static void Main(string[] args) { ; string str = "Hello&quo ...
- Springboot整合Kfka
1.首先在pom文件添加依赖 The managed version is 1.1.7.RELEASE The artifact is managed in org.springframework.b ...
- Selenium 4即将发布:每个QA都应该知道的
阅读原文 Simon Stewart(Selenium的创始成员)在班加罗尔的Selenium大会议上正式确认了Selenium4.0的发布日期和一些主要更新.我们先来提前了解一下Selenium 4 ...
- Wonder 1.0正式版发布-----WebGL 3D引擎和编辑器
介绍 我们很荣幸地向大家发布Wonder 1.0正式版!免费.开源,不用注册,直接打开在线编辑器即可使用! Wonder是web端3D开发的解决方案,包括引擎.编辑器,致力于打造开放.分享.互助的生态 ...
- Spark报错
1. Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at com.mysql.jdb ...