首页 技术 正文
技术 2022年11月17日
0 收藏 560 点赞 5,043 浏览 1589 个字

教材学习内容总结

  • try & catch

    • java中的错误会被打包成对象,可以尝试(try)捕捉(catch)代表错误的对象后做一些处理。如果发生错误,会跳到catch的区块并执行。
  • 异常结构处理
    • 正则表达式

      • 在看这部分内容的时候,看到了规则表示式一词。要不是还有英文Regular Expression注释根本记不起这就是正则表达式。没想到这么古老的直翻词语还能在新版的书上看到。前段时间还想起很久之前写过相关的程序用做过滤匹配文本,这可以用作检查代码,匹配一下文本就好了,毕竟每个人的代码风格还是区别挺大的;至于换行、注释这种低级的问题随便写个文本过滤就没了。但是难点是在文本搜索匹配的策略优化上,不注意的话时间复杂度高的惊人(废话)。懒得想数据结构和剪纸的方法也就懒得写那个小工具,如果有兴趣的同学能看到这篇没什么人看的博客有了灵感的话不胜荣幸,顺便能告诉我你想好的算法那就感激不尽了。
      • PS:千万不要想字符串匹配(诸如kmp)的算法,对于雷同问题的解决效率低,当然对付直接复制粘贴的懒人来说还是有用的。
  • 多重捕捉

    下面两段代码功能相同。

try{
System.in.read();
}catch (IOException ex){
ex.printStackTrace();
}catch (Exception ex){
ex.printStackTrace();
}
try{
System.in.read();
}catch (IOException |Exception ex){
ex.printStackTrace();
}
  • throw

    • 任何流程中都可以throw(不是throws),不一定要在catch区块里。但需要在方法上使用throws(不是throw)声明。
  • assert

  • assert 语法:

assert boolean_expression;
assert boolean_expression : detail_expression;
•boolean_expression 若为 true,则什么事都不会发生,如果为 false,则会发生 java.lang.AssertionError,此时若采取的是第二个语法,则会将 detail_expression 的结果显示出来,如果当中是个对象,则调用 toString() 显示文字描述结果
  • 断言

    • 使用时注意断言客户端调用方法前,已经准备好某些前置条件(通常在private方法之中)
    • 断言客户端调用方法后,具有方法承诺的结果。
    • 断言对象某个时间点下的状态。
    • 使用断言取代批注。
    • 断言程序流程中绝对不会执行到的程序代码部分。
    • checkGreaterThanZero() 是一种前置条件检查,如果程序上线后就不再需要这种检查的话,可以将之以 assert取代,并在开发阶段使用 -ea 选项,而程序上线后取消该选项
    • 使用断言的时机:一定不能有 default 的状况,也可以使用 assert 来取代
  • 使用Collection收集对象

    – 收集对象的行为,像是新增对象的 add()方法、移除对象的remove()方法等,都是定义在 java.util.Collection中

- 既然可以收集对象,也要能逐一取得对象,这就是java.lang.Iterable定义的行为,它定义了iterator()方法返回 java.lang.Iterable操作对象,可以让你逐一取得收集的对象

教材学习中的问题和解决过程

操作comparable

按照教材的指示,我出现了和教材一样的错误。

发现所谓的comparable就是C语言中qsort()函数需要自己写的comp()比较原则函数。

类比qsort()比较原则的编写经验,写出了这里排序的comparable

代码调试中的问题和解决过程

问题一:习惯用-1代表弹出标志,结果没注意正则表达式规范导致不能正常终止程序。

问题二:调用toUpperCase()引发NullPointerException。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,564
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,412
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,185
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905