Obj 方法: hashCode() 返回内存地址值, getClass() 返回的时运行时类, getName() 返回类名, toString() 把名字和
hashCode() 合在一起返回,如果直接输出对象,返回的就是这个东西, equals() 比较两个对象的地址值是否相等.

== 比较基本数据类型比较的是值,比较引用数据类型比较的是地址值,如果不重写equals方法,那么==和equals是一样的,但是有的类比如String重写了equals方法,那么比较的就是里面的值而不是地址值了.(String 类型无论==和equals都是比较值,因为如果常量池中存在了这个字符串,那么如果再次使用的话就直接用,String 类型的字符串是无法改变的)

-127 -- +128 是byte 的取值范围,如果 Integer 类型包装的int值在这个范围内,那么就不会新创建对象,而是直接从常量池获取.

如果一个字符串作为正则表达式的时候,那么转义. 或者 d 这种匹配符号要用两个 \\ 因为首先编译器会转义一次,把 \\转义为\
正则表达式引擎会再转义一次,把\. 转义为. 表示任意字符

Pattern p = Pattern.compile(regex); //p是一个正则表达式
Matcher m = p.matcher(s); // m 是一个编译器,用p去匹配s字符串
while (m.find()) {m.group()} // 先用find()方法寻找,如果找到了,可以用m.group() 把匹配到的字符串提取出来 这样可以循环取出所有匹配的的字符串(m.find()寻找的是子序列,即不是完全匹配.字符串的matches()方法是完全匹配,即整个字符串要完全匹配整个正则表达式)

BigDecimal,可以用它来进行精确的小数计算,前提是构造的时候必须要在构造方法中传入字符串类型的小数,不能直接传入float和double.如果非要传入小数类型的话,那么可以用 BigDecimal.valueOf() 这种方法构建一个BigDecimal数

如果想要获得年或者月或者日之类的时间,那么建议使用Calendar类,里面取代了Date类大部分关于年月日的方法.

java的集合(Collection)框架下的类如ArrayList只能存放引用数据类型,基本数据类型在直接往里面存的时候会先包装成包装类然后存进去.

泛型里面只能写引用数据类型,不能写基本数据类型.

泛型可以加在类的定义上,如 public class Stu<E> 这样的话,如果类里面的方法是 public E getxxx() 这种类型的话,那么创建类的时候给E泛型赋了什么类型,方法就返回什么类型,也可以用在方法的形参里面.

如果类里面的某个方法需要单独加泛型那么可以用 public<T> void show(T t) 这种方法声明方法的泛型,这样调用这个方法传递参数的时候,传递的参数是什么类型,T就是什么类型.静态方法必须要用这种方式声明泛型,因为类的泛型的类型0是在创建类的对象的时候进行声明,而静态方法不需要创建对象就能调用.

<?> 是泛型通配符,他可以表示任意类型,如在创建数组时 : List<?> list = newArratList<String> 当右边的泛型不确定时,可以在左边的泛型里面填入?, <? extends E> 表示E及其子类, <? super E> 表示E及其父类

增强型for循环可以简化数组和Collection集合的遍历,用迭代器实现.

对于遍历list想删除里面的元素,如果用普通for循环可以用i--的方式来处理如果相邻两个元素都要删除的情况,迭代器可以用本身的remove()方法,增强for循环则不能删除,会出现并发修改异常,还有一种更简单的方式 list.removeIf()里面传入一个lambda表达式返回boolean类型的返回值就可以,会一次性清除集合或列表里面所有lambda返回true的元素.

如果必须要使用强制类型转换,可以先判断一下字节码文件是否相同,如一个对象为 Object obj,强制转换成Person类型,可以这样判断 if (obj.getClass() == Person.class) 或者是 if(obj instanceof Person)

在Set集合里面存自定义对象时,需要重写hashCode()和equals()方法,一般可以用IDE自动生成.

TreeSet可以让集合拥有排序的功能,如果需要存储自定义对象的话,那么对象的类需要实现Comparable接口,重写compareTo()方法,如果compareTo返回0,那么集合中只有一个元素,返回正数集合怎么存怎么取,返回负数则倒叙存储. 这种特性和TreeSet的底层存储是有关系的,底层存储用的是二叉树,如果比根小就存在左边,如果比根大就存在右边,取的时候从小往大取,就出现了这一特性. 取出的时候按照二叉树的中序遍历即可按顺序取出.

Map遍历可以用 map.keySet()获取所有键的Set集合,然后遍历取出值,也可以用map.entrySet() 获取一个里面的对象是Map.Entry类型的Set集合,里面的每一个对象都是实现了Map.Entry接口的对象,可以用getKey() 和 getValue()取出键值对

如果要抛出(throw)编译时异常,那么必须要对它进行处理,要么catch处理,要么throws往上一层抛出,而RuntimeException则可以处理也可以不用处理.

throws表示抛出异常,用在方法声明后面,由该方法的调用者处理,throw表示抛出异常,用在方法体内,由方法体内语句处理.

finally是无论是否有异常,都会执行的,而且如果catch里面有return语句,那么return之前也会执行finally里面的语句(确切的说应该是在return建立返回路径之后,还未完全return之前执行finally,所以如果这时候在finally里面修改返回的值,那么是无效的),如果catch里面退出了jvm虚拟机,则finally不会执行.

如果需要自定义异常,只需要继承Exception然后重写有参无参构造方法就可以了.

新建文件路径用File类 创建文件用 createNewFile()方法,创建目录用mkdir()方法.重命名或者剪切文件用renameTo()方法,删除文件或目录用delete()方法,isDirectory判断是否是目录,isFile判断是否是文件,exists判断是否存在,canRead判断是否可读,canWrite判断是否可写,isHidden判断是否隐藏(Windows文件不能用setReadable设置不可读,但是可以用setWritable设置是否可写),用getAbsolutePath获取绝对路径,getPath获取路径,getName获取名称,length长度,lastModified最后修改时间,list获取目录下所有文件和文件夹.

Java : java基础(2) 集合&正则&异常&File类的更多相关文章

  1. Java基础-IO流对象之File类

    Java基础-IO流对象之File类 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.IO技术概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下 ...

  2. JAVA中所有与集合有关的实现类都是这六个接口的实现类

    JAVA中所有与集合有关的实现类都是这六个接口的实现类. Collection接口:集合中每一个元素为一个对象,这个接口将这些对象组织在一起,形成一维结构. List接口代表按照元素一定的相关顺序来组 ...

  3. 078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类

    078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类 本文知识点:创建类 说明:因为时间紧张,本人写博客过程中只是对知识点的关 ...

  4. Java基础14-缓冲区字节流;File类

    作业解析 阐述BufferedReader和BufferedWriter的工作原理, 是否缓冲区读写器的性能恒大于非缓冲区读写器的性能,为什么,请举例说明? 答: BufferedReader对Rea ...

  5. JAVA基础复习与总结<七> File类_基本的IO概念_输入输出

    File类 1.操作目录  mkdir() 创建目录,必须确保父目录存在,如果不存在,创建失败 mkdirs() list() 文件:目录字符串形式 ,只返回目录和文件的名称 listFiles()  ...

  6. java文件传输之文件编码和File类的使用

    ---恢复内容开始--- 我们知道,在用户端和服务端之间存在一个数据传输的问题,例如下载个电影.上传个照片.发一条讯息.在这里我们 就说一下文件的传输. 1.文件编码 相信大家小时候玩过积木(没玩过也 ...

  7. 2017.12.20 Java中的 IO/XML学习总结 File类详细

    IO / XML 一.File类 1.定义/概念 Java是面向对象的语言,要想把数据存到文件中,就必须要有一个对象表示这个文件.File类的作用就是代表一个特定的文件或目录,并提供了若干方法对这些文 ...

  8. day19<异常&File类>

    异常(异常的概述和分类) 异常(JVM默认是如何处理异常的) 异常(try...catch的方式处理异常1) 异常(try...catch的方式处理异常2) 异常(编译期异常和运行期异常的区别) 异常 ...

  9. 读书笔记 之《Thinking in Java》(对象、集合、异常)

    一.前言 本来想看完书再整理下自己的笔记的,可是书才看了一半发现笔记有点多,有点乱,就先整理一份吧,顺便复习下前面的知识,之后的再补上. 真的感觉,看书是个好习惯啊,难怪人家说“书籍是人类进步的阶梯” ...

随机推荐

  1. ASP.NET全局异常处理

    Web项目部署后,异常直接暴露给用户会产生很不好的体验.只是暴露在服务器端又无法实时记录异常原因以便加以重现并修复.所以配合Log4Net记录日志信息,同时全局异常处理来营造良好用户体验就比较重要了. ...

  2. SCI收录的期刊查询

    SCI   收录的期刊查询(动态) 1.Science Citation Index (SCI)收录期刊查询地址:http://www.isinet.com/cgi-bin/jrnlst/jlopti ...

  3. AS打包出现app:transformClassesAndResourcesWithProguardForRelease错误

    今天打包项目的正式签名APK出现以下错误,当时挺着急用的实在没办法就只能用测试apk凑合来对付一下了 Error:Execution failed for task ':app:transformCl ...

  4. Android 自定义AlertDialog的写法和弹出软键盘和覆盖状态栏

    private void showMyDialog(int layoutId){ AlertDialog myDialog = new AlertDialog.Builder(context).cre ...

  5. Oracle权限相关查询

    Oracle权限相关查询着实视图有点多,记录下常用的语句,方便查询:1.查看所有用户:  select * from dba_users;  select * from all_users;  sel ...

  6. 第五章 LED的魔性操作

    想必大家都见过城市里漂亮的led广告牌吧,这一节我将带大家学习这些LED广告牌最基本的实现原理. 初识LED 接线方法:D1~D8从接23~37号数字端口,v1和前面的针头分别接41号和39号数字端口 ...

  7. 开发时复制aspx网页的方法

    简单的copy /paste    *.aspx网页,所使用的是同一个CodeBehind  ,这往往不是我们所想要的!!!我们一般都希望使这两个网页具有各自的  *.cs文件.步骤:①新建一个Web ...

  8. June 10th 2017 Week 23rd Saturday

    A lot of things, we can be touched, but we can not shed tears. 很多事情,我们可以感动,却不能流泪. Sometimes I was to ...

  9. *92. Reverse Linked List II (follow up questions)

    Reverse a linked list from position m to n. Do it in one-pass and in-place Note: 1 ≤ m ≤ n ≤ length ...

  10. NO.006-2018.02.11《卜算子·我住长江头》宋代:李之仪

    卜算子·我住长江头_古诗文网(bǔ) 卜算子·我住长江头 宋代:李之仪 我住长江头,君住长江尾.日日思君不见君,共饮长江水. 我居住在长江上游,你居住在长江下游. 天天想念你却见不到你,共同喝着长江的 ...