关键词:
20165315 第六周学习总结
本周学习中遇到的问题和解决过程
- 在编写第八章例子7时,编译正常,但运行时出现如下问题:
解决过程:
经过多次尝试,我发现在我的电脑系统下,一个汉字是占3个字节的,故不能完全照抄书上代码,修改后即可运行出正确结果:
- 在编写第八章例子21时,出现如下问题:
解决过程:
在命令行中是可以实现的
询问了许多同学,还没有找到在IDEA中实现的解决方法,找到后会补上这部分
- 在编写第十五章例子11时,运行没有问题,出现如下窗口:
但是输入需要录入的数据后,点击“录入”后没有反应,在目录中找到了名为“库存”的文本文件,点开后却是如下内容:
解决过程:
- 在编写第十五章例子8例子9时,编译时出现如下问题:
解决过程:
因为在编写第十五章例子4时使用了Student
类,故将这两个例子中的Student
类改成Student1
和Student2
就行了
学习总结
第八章
String
类- Java专门提供了用来处理字符序列的
String
类 String
类在java.lang
包中,由于java.lang
包中的类被默认引入,因此程序可以直接使用String
类- 需要注意的是Java把
String
类声明为final
类,因此用户不能扩展String
类,即String
类不可以有子类
- Java专门提供了用来处理字符序列的
- 构造
String
对象- 常量对象
- 字符串常量对象是用双引号括起的字符序列
- 常量池:常量池中的数据在程序运行期间再也不允许改变
String
对象- 可以使用
String
类声明对象并创建对象 - 用户无法输出
String
对象的引用 - 可以用一个已创建的
String
对象创建另一个String
对象 - 两个较常用的构造方法
String (char a[])
用一个字符数组a创建一个String
对象String(char a[],int startIndex,int count)
提取字符数组a中的一部分字符创建一个String
对象,参数startIndex
和count
分别指定在a中提取字符的起始位置和从该位置开始截取的字符个数
- 引用
String
常量String
常量是对象,因此可以把String
常量的引用赋值给一个String
对象
- 可以使用
- 常量对象
- 字符串的并置
String
对象可以用+
进行并置运算,即首尾相接得到一个新的String
对象- 如果是两个常量进行并置运算,那么得到的仍然是常量,如果常量池没有这个常量就放入常量池
String
类的常用方法public int length()
:获取一个字符串的长度public boolean equals(String s)
:判断当前String
对象的字符序列是否与参数s指定的String
对象的字符序列相同public boolean startsWith(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的字符序列的位置,并返回该位置public 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类调相应的类方法可以将由"数字"字符组成的字符串,转化为相应的基本数据类型
- 可以使用
String
类的类方法
public static String valueOf(n的类型, n)
,将相应数值转化为字符串
- Java.lang包中的Integer类调用其类方法:
- 对象的字符串表示
- 一个对象通过调用
public String toString()
方法可以获得该对象的字符序列表示。一个对象调用toString()
方法返回的String
对象的字符序列的一般形式为:
**创建对象的类的名字@对象的引用的字符串表示**
- 一个对象通过调用
- 字符串与字符、字节数组
- 字符串与字符数组
- String 类的构造方法:
String(char[]);
;
String(char[],int offset,int length)
分别用字符数组中的全部字符和部分字符创建字符串对象 - 将String对象的部分字符序列存放到数组中的方法:
public void getChars(int start,int end,char c[],int offset )
- 将String对象的字符序列存放到数组中的方法:
public char[] toCharArray()
- 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();
- 字符串与字符数组
- StringTokenizer类
- 两个常用的构造方法:
StringTokenizer(String s)
:为String对象s构造一个分析器。使用默认的分隔标记,即空格符、换行符、回车符、Tab符、进纸符做分隔标记StringTokenizer(String s, String delim)
:为String对象s构造一个分析器。参数delim的字符序列中的字符的任意排列被作为分隔标记
StringTokenizer
对象称作一个字符串分析器可以使用下列方法:nextToken()
:逐个获取字符串中的语言符号(单词),字符串分析器中的负责计数的变量的值就自动减一hasMoreTokens()
:只要字符串中还有语言符号,即计数变量的值大于0,该方法就返回true,否则返回falsecountTokens()
:得到分析器中计数变量的值
- 两个常用的构造方法:
Scanner
类- 使用Scanner类从字符串中解析程序所需要的数据
StringBuffer
类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指定的字符串替换
Date
与Calendar
类- Date类
- Date类在java.util包中
- Date类的构造方法之一:
Date nowTime=new Date();
- Calendar类
- Calendar类在java.util包中
- 使用Calendar类的static方法 getInstance()可以初始化一个日历对象:
Calendar calendar= Calendar.getInstance();
- Date类
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类必须有无参数的构造方法
- 使用Class的类方法得到一个和某类(参数className指定的类)相关的Class 对象,
Console
类Console cons = System.console();
- Class类
Pattern
与Matcher
类- Java提供了专门用来进行模式匹配的Pattern类和Matcher类,这些类在java.util.regex包中
- 建立模式对象
- 使用正则表达式regex做参数得到一个称为模式的Pattern类的实例pattern
- 模式对象是对正则表达式的封装。Pattern类调用类方法compile(String regex)返回一个模式对象,其中的参数regex是一个正则表达式,称为模式对象使用的模式
- 得到匹配对象
- 模式对象pattern调用matcher(CharSequence input)方法返回一个Matcher对象matcher,称为匹配对象
第十五章
- 泛型
- 主要目的是可以建立具有类型安全的集合框架,如链表、散列映射等数据结构
- 泛型类声明
- 可以使用
class 名称<泛型列表>
声明一个类,为了和普通的类有所区别,这样声明的类称作泛型类,没有指定E是何种类型的数据,它可以是任何对象或接口,但不能是基本类型数据
- 可以使用
- 使用泛型类声明对象
- 泛型类声明和创建对象时,类名后多了一对“<>”,而且必须要用具体的类型替换“<>”中的泛型
- 链表
- 链表是由若干个称作节点的对象组成的一种数据结构,每个节点含有一个数据和下一个节点的引用
LinkedList<E>
泛型类- LinkedList
- 常用方法
- LinkedList
- LinkedList
- 遍历链表
- 当用户需要遍历集合中的对象时,应当使用该集合提供的迭代器,而不是让集合本身来遍历其中的对象
- 链表对象可以使用
iterator()
方法获取一个Iterator对象,该对象就是针对当前链表的迭代器
- 排序与查找
Collections
类提供的用于排序和查找的类方法如下:public static sort(List<E> list)
: 该方法可以将list中的元素升序排列int binarySearch(List<T> list, T key,CompareTo<T> c)
: 使用折半法查找list是否含有和参数key相等的元素,如果key链表中某个元素相等,方法返回和key相等的元素在链表中的索引位置(链表的索引位置从0考试),否则返回-1
- 洗牌与旋转
Collections
类还提供了将链表中的数据重新随机排列的类方法以及旋转链表中数据的类方法public static void shuffle(List<E> list)
将list中的数据按洗牌算法重新随机排列static void rotate(List<E> list, int distance)
旋转链表中的数据public static void reverse(List<E> list)
翻转list中的数据
- 堆栈
- 堆栈是一种“后进先出”的数据结构,只能在一端进行输入或输出数据的操作
- Stack
- 散列映射
- HashMap
- 树集
TreeSet<E>
泛型类- TreeSet
TreeSet<String> mytree=new TreeSe<String>();
mytree.add("boy");
使用add方法为树集添加节点
TreeSet
类的常用方法public boolean add(E o)
向树集添加加节点public void clear()
删除树集中的所有节点public void contains(Object o)
如果树集中有包含参数指定的对象,该方法返回true,否则返回falsepublic E first()
返回树集中的第一个节点中的数据(最小的节点)public E last()
返回最后一个节点中的数据(最大的节点)public isEmpty()
判断是否是空树集,如果树集不含任何节点,该方法返回truepublic boolean remove(Object o)
删除树集中的存储参数指定的对象的最小节点public int size()
返回树集中节点的数目
码云链接
https://gitee.com/BESTI-IS-JAVA-2018/ch1/tree/master
代码截图
20172305《程序设计与数据结构》第六周学习总结
201723052017-2018-2《程序设计与数据结构》第六周学习总结教材学习内容总结本周内容主要为书的8.1-8.6的内容:第八章1.一维数组和多维数组(二维数组为主)的声明和使用2.命令行实参3.边界检查(例8.8的解决办法)教材学习中的问题和... 查看详情
#2018-2019-120165317第六周学习总结(代码片段)
2018-2019-120165317第六周学习总结教材学习内容总结输入/输出(I/O)是主存和外部设备(I/O设备)(如磁盘驱动器、终端、网络)之间拷贝数据的过程。输入是从I/O设备拷贝到主存。反之则反。10.1UnixI/OUnix文件就是一个m字节的序列... 查看详情
201723142017-2018-2《程序设计与数据结构》第六周学习总结
201723142017-2018-2《程序设计与数据结构》第六周学习总结教材学习内容总结数组是一个含有多个值的列表,每个值存在于数组中特定的,具有编号的位置。数组的声明:(1)int[]xxx=newint[3];表示实例化数组xxx后,为其预留了存放三... 查看详情
2018-2019-120165214《信息安全系统设计基础》第六周学习总结
201652142018-2019-1《信息安全系统设计基础》第六周学习总结教材学习内容总结1、输入操作是从I/O设备复制数据到主存,而输出操作是从主存复制数据到I/O设备2、UnixI/O使得所有的输入和输出都能以一种统一且一致的方式来进行3、... 查看详情
2018-201920165215《信息安全系统设计基础》第六周学习总结(代码片段)
2018-201920165215《信息安全系统设计基础》第六周学习总结Linux系统调用学习操作系统(OperatingSystem,简称OS)完成的工作比喻为两个角色:服务生和管家婆管家婆:通过「文件」对I/O设备进行了抽象通过「虚存」对主存和I/O设备进行... 查看详情
201723282018-2019《java软件结构与数据结构》第六周学习总结(代码片段)
201723282018-2019《Java软件结构与数据结构》第六周学习总结概述Generalization本周学习了第十章:非线性集合与数据结构--树。主要讨论了树的使用和实现,以及考察实现和使用树的实例。教材学习内容总结Asummaryoftextbook树(tree):... 查看详情
2018-2019-120165203《信息安全系统设计基础》第六周学习总结(代码片段)
2018-2019-120165203《信息安全系统设计基础》第六周学习总结教材学习内容总结重要知识点I/O:在主存和外部设备(例如磁盘存储器、终端和网络)之间复制数据的过程。输入操作:从I/O设备复制数据到主存。输出操作:从主存复... 查看详情
第六周总结报告
这一周,家乡阴雨绵绵。才到周二我便患上了感冒,好在不太严重,相信过几天就好了。 这周学习的内容有:1,复习了C++的最后内容并复习《离散数学》第一章,对以前学习的公式,书上的例题... 查看详情
2018-2019-120165208《信息安全系统设计基础》第六周学习总结(代码片段)
2018-2019-120165208《信息安全系统设计基础》第六周学习总结教材学习操作系统「管家婆」的功能:通过「文件」对I/O设备进行了抽象通过「虚存」对主存和I/O设备进行了抽象通过「进程」对CPU、主存和I/O设备进行了抽象操作系统... 查看详情
20172304《程序设计与数据结构》第六周学习总结(代码片段)
20172304《程序设计与数据结构》第六周学习总结教材学习内容总结本周主要学习的是树的内容,树由结点和边组成,位于树中较低层的结点是上一层结点的孩子。一个结点只有一个双亲,统一双亲的两个节点称为兄弟。没有任何... 查看详情
201723272017-2018-2《程序设计与数据结构》第六周学习总结
学号2017-2018-2《程序设计与数据结构》第X周学习总结教材学习内容总结-数组元素:1.具有N个值的数组索引为0~(N-1).-声明和使用数组:1.可以用new运算符实例化数组,为数组分配保存值的内存空间。在Java中,数组是必须实例化的... 查看详情
20172301《程序设计与数据结构》第六周学习总结(代码片段)
20172301《程序设计与数据结构》第六周学习总结教材学习内容总结树的概述树由一个包含结点和边的集构成。树(一种非线性结构,其中的元素被组织成一个层次结构)结点:树中的一个位置。边:树中两个结点的连接。根结点:... 查看详情
201723302018-2019-1《程序设计与数据结构》第六周学习总结
201723302018-2019-1《程序设计与数据结构》第六周学习总结教材学习内容总结树1、树是非线性结构,其元素组织为一个层次结构2、树的度表示树中的任意结点的最大子结点数3、有m个元素的平衡n叉树的高度是lognm4、树的遍历有4种... 查看详情
201723232018-2019-1《程序设计与数据结构》第六周学习总结(代码片段)
201723232018-2019-1《程序设计与数据结构》第六周学习总结教材学习内容总结本周学习了第10章树10.1概述树是一种非线性结构,有一个包含结点和边的集构成。元素保存在结点中,边则将结点连接起来。一些术语根结点是位于树顶... 查看详情
第六周总结8.18
本周我做了什么1.英语线上课两节2.英语口语每日练习两小时3.每日学习Java一小时4.复习C语言五次5.听茶话会一次6.每日健身一小时,散步7.社团纳新宣传安排花在学习上多长时间21小时花在代码上多长时间9小时花在解决问题上多... 查看详情
201771010112罗松《面向对象程序设计(java)》第六周学习总结
&n 查看详情
第六周作业(代码片段)
201652272018-4《Java程序设计》第六周学习总结教材学习内容总结第八章String类是Java学习中需要掌握的一种基础类StringTokenizer类:构造一个分析器Scanner类:用于解析出字符序列中所需要的数据StringBuffer类:与String类不同的是其对象... 查看详情
20172302《java软件结构与数据结构》第六周学习总结(代码片段)
...学习总结博客总目录:第一周第二周第三周第四周第五周第六周教材学习内容总结1.树的概述及基本概念(1)树是一种非线性数据结构,其中的元素被组织成了一个层次结构.(2)树由一个包含结点和边的集构成,其中元素被存... 查看详情