20165315 第六周学习总结

20165315 第六周学习总结

本周学习中遇到的问题和解决过程

  • 在编写第八章例子7时,编译正常,但运行时出现如下问题:

解决过程:

经过多次尝试,我发现在我的电脑系统下,一个汉字是占3个字节的,故不能完全照抄书上代码,修改后即可运行出正确结果:

  • 在编写第八章例子21时,出现如下问题:

解决过程:

在命令行中是可以实现的

询问了许多同学,还没有找到在IDEA中实现的解决方法,找到后会补上这部分

  • 在编写第十五章例子11时,运行没有问题,出现如下窗口:

但是输入需要录入的数据后,点击“录入”后没有反应,在目录中找到了名为“库存”的文本文件,点开后却是如下内容:

解决过程:

  • 在编写第十五章例子8例子9时,编译时出现如下问题:

解决过程:

因为在编写第十五章例子4时使用了Student类,故将这两个例子中的Student类改成Student1Student2就行了

学习总结

第八章

  • String

    • Java专门提供了用来处理字符序列的String
    • String类在java.lang包中,由于java.lang包中的类被默认引入,因此程序可以直接使用String
    • 需要注意的是Java把String类声明为final类,因此用户不能扩展String类,即String类不可以有子类
  • 构造String对象
    • 常量对象

      • 字符串常量对象是用双引号括起的字符序列
      • 常量池:常量池中的数据在程序运行期间再也不允许改变
    • String对象
      • 可以使用String类声明对象并创建对象
      • 用户无法输出String对象的引用
      • 可以用一个已创建的String对象创建另一个String对象
      • 两个较常用的构造方法
        • String (char a[])用一个字符数组a创建一个String对象
        • String(char a[],int startIndex,int count) 提取字符数组a中的一部分字符创建一个String对象,参数startIndexcount分别指定在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),将相应数值转化为字符串

  • 对象的字符串表示
  • 字符串与字符、字节数组
    • 字符串与字符数组

      • 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(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,否则返回false
      • countTokens():得到分析器中计数变量的值
  • 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指定的字符串替换
  • DateCalendar
    • Date类

      • Date类在java.util包中
      • Date类的构造方法之一:Date nowTime=new Date();
    • Calendar类
      • Calendar类在java.util包中
      • 使用Calendar类的static方法 getInstance()可以初始化一个日历对象:Calendar calendar= Calendar.getInstance();
  • 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();
  • PatternMatcher
    • 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,否则返回false
        • public E first() 返回树集中的第一个节点中的数据(最小的节点)
        • public E last() 返回最后一个节点中的数据(最大的节点)
        • public isEmpty() 判断是否是空树集,如果树集不含任何节点,该方法返回true
        • public boolean remove(Object o) 删除树集中的存储参数指定的对象的最小节点
        • public int size() 返回树集中节点的数目

码云链接

https://gitee.com/BESTI-IS-JAVA-2018/ch1/tree/master

代码截图

原文地址:https://www.cnblogs.com/yh666/p/8745979.html

时间: 2024-10-09 00:28:41

20165315 第六周学习总结的相关文章

20145317《信息安全系统设计基础》第六周学习总结(1)

20145317<信息安全系统设计基础>第六周学习总结(1) 第四章 处理器体系结构 指令体系结构:一个处理器支持的指令和指令的字节级编码 4.1Y86指令集体系结构 Y86:包括定义各种状态元素.指令集和它们的编码.一组编程规范和异常事件处理. Y86程序中的每条指令都会读取或修改处理器状态的某些部分.Y86具体包括:8个程序寄存器.3个条件码ZF\SF\OF.程序计数器(PC) Y86用虚拟地址引用存储器位置. 程序状态的最后一个部分是状态码Stat,它表明程序执行的总体状态. 注意:条件

20145222《信息安全系统设计基础》第六周学习总结(1)

20145222<信息安全系统设计基础>第六周学习总结(1) 第四章 处理器体系结构 指令体系结构:一个处理器支持的指令和指令的字节级编码 4.1Y86指令集体系结构 · Y86:包括定义各种状态元素.指令集和它们的编码.一组编程规范和异常事件处理. · Y86程序中的每条指令都会读取或修改处理器状态的某些部分.· Y86具体包括:8个程序寄存器.3个条件码ZF\SF\OF.程序计数器(PC) · Y86用虚拟地址引用存储器位置. 程序状态的最后一个部分是状态码Stat,它表明程序执行的总体状

《Linux内核分析》第六周学习笔记

<Linux内核分析>第六周学习笔记 进程的描述和创建 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 [学习视频时间:1小时 撰写博客时间:2小时] [学习内容:进程创建的过程.使用gdb跟踪分析内核处理函数sys_clone] 一.进程的描述 1.1 进程描述符task_struct数据结构(一) 1. 进程控制块PCB——task_struct 为了管理进程,内核

20145307《信息安全系统设计基础》第六周学习总结

20145307<信息安全系统设计基础>第六周学习总结 教材学习内容总结 Y86指令集体系结构 内容:定义一个指令集体系结构,包括定义各种状态元素.指令集和它们的编码.一组编程规范和异常事件处理. 程序员可见状态 Y86程序中的每条指令都会读取或修改处理器状态的某些部分. Y86具体包括:8个程序寄存器.3个条件码ZF\SF\OF.程序计数器(PC). Y86用虚拟地址引用存储器位置. 程序状态的最后一个部分是状态码Stat,它表明程序执行的总体状态. Y86指令 IA32指令集的一个子集,只

20145301第六周学习总结

20145301第六周学习总结 教材学习内容总结 第十章 输入/输出 10.1 InputStream与OutputStream InputStream与OutputStream  流(Stream)是对「输入输出」的抽象,注意「输入输出」是相对程序而言的  InputStream与OutputStream InputStream.OutStream提供串流基本操作,如果想要为输入/输出的数据做加工处理,则可以使用打包器类.常用的打包器具备缓冲区作用的BufferedOutputStream.B

20145319 第六周学习总结

20145319 <Java程序设计>第六周学习总结 教材学习内容总结 本周学习教材的第十.十一章,主要讲述了串流,字符处理和线程以及并行API 1. 输入输出 串流:1Java中的数据有来源(source)和目的地(destination),衔接两者的就是串流对象2串流设计:在不知道限定数据来源和目的地时,也可以依赖抽象的InputStream和Outstream来编写一个dump()方法,方便以后使用3InputStream和OutputStream:在java中,输入串流代表对象为jav

LINUX内核分析第六周学习总结——进程的描述和进程的创建

LINUX内核分析第六周学习总结——进程的描述和进程的创建 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.知识概要 进程的描述 进程描述符task_struct数据结构(一) 进程描述符task_struct数据结构(二) 进程的创建 进程的创建概览及fork一个进程的用户态代码 理解进程创建过程复杂代码的方法 浏览进程创建过程相关的关键代码 创建的新进程是从哪里开始执行的

20145311 《信息安全系统设计基础》第六周学习总结

20145311 <信息安全系统设计基础>第六周学习总结 教材学习内容总结 书上那几个表还是挺重要的 一个程序编译成在一种机器上运行,就不能在另一种机器上运行寄存器%esp被入栈.出栈.调用和返回指令作为栈指针程序计数器PC存放当前正在执行指令的地址三个一位的条件吗:ZF.SF.OF保存着最近的算数运算或逻辑运算所造成影响的有关信息Y86指令集:每个指令的第一个字节表明指令的类型,高4位是代码部分,低4位是功能部分指令集的一个重要性质就是字节编码必须有唯一的解释IA32(复杂指令集计算机CIS

20165315 第三周学习总结

20165315 第三周学习总结 本周学习中遇到的问题和解决过程 在编写书上第四章例子5的代码时,我发现无法直接使用javac -d bin src/Example4_5.java命令使该代码的字节码文件直接放入bin目录 解决方法: 经过询问老师和同学,得知问题出在无法一同编译另外两个源文件,输入如下图所示的代码即可编译并运行成功 在编写书上第四章例子17和例子18的代码时,无法通过编译,显示如下图错误: 解决方法: 经过多次尝试和细心检查后,我发现是在编写时大意,将setSides编写为se