【有书共读】《疯狂JAVA讲义》读书笔记07
第七章笔记
7.1.2 使用scanner获取键盘输入
Scanner sc=new Scanner(System.in); hasNextXXX() NextXXX() useDelimiter("\n")
7.2 系统相关
获取平台相关属性,调用平台命令来完成特定功能
7.2.1 System类
代表当前java程序的运行平台,程序不能创建system对象,System类提供一些类变量和类方法,直接使用。
identityHashCode(),如果两个对象的identityHashCode 相同,两个对象绝对是同一个对象。任何两个对象的identityHashCode一定不同
7.2.2 Runtime类
Runtime代表Java 程序的运行时环境,应用程序不能创建自己的runtime实例,但是可以通过getRuntime()方法获取与之相关的runtime对象
可以直接单独启动一个进程来运行操作系统的命令。rt.exec("notepad.exe")
7.3 常用类
7.3.1 Object类
object类是所有类的父类,允许把任何对象赋给object类型的遍历。
提供了一个protect修饰的clone() 方法
1. 继承cloneable接口
2. 实现自己的clone()方法
3. 通过super.clone()
clone(0方法只是对对象里面的实例变量进行简单复制,如果实例变量时引用类型,则只是复制了引用,依然指向之前的实例。
7.3.3 String、StringBuffer和StringBuilder类
string类是不可变的 Stringbuffer stringbuilder是可变的,string builder更常用。
7.3.5 java7的ThreadLocalRandom与Random
Random 类专门生成伪随机数,一个构造器使用默认的种子,一个构造器显式传入一个long型整数种子。 rand.nextInt(); rand.nextLong() 当种子相同时,产生相同的数字序列,默认种子属于同一个种子。 常用传入当前时间 Random rand=new Random(System.currentTimeMillis());
7.3.6 BigDecimal类
用于精确表示和计算浮点数。 BigDecimal f1=new BigDecimal("0.05") BigDecimal f2=BigDecimal.valueOf(9.2); BigDecimal f3=new BigDecimal(0.09);
第三种直接赋值会损失精度,所以用前两种方法。
7.5 正则表达式
7.5.2 使用正则表达式
Pattern 和matcher来使用正则表达式 Pattern p=Pattern.compile("a*b");//将一个字符串编译成Pattern对象 Matcher m=p.macher("aaaaab"); boolean b=m.matches(); find()和group() 可以从目标字符串中依次去处特定字符 while(m.find()) { m.group(); } reset()方法可以把现有的matcher对象应用于新的字符序列。
7.7 java8新增的日期、时间格式器
DateTimeFormatter 如何获取DateTimeFormatter对象 这个和前边的区别是时间.ormat(格式)。(格式用DateTimeFormatter创建) 前边的都是(格式).format(日期/数字)(格式用SimpleDateFormat,或者DateFormat或者NumberFormat创建) 一,后2个创建格式的方法 1.locale 创建locale 2 创建这2个类型对应的对象。 3.通过get,,,,()取得对象nf,df。 4.nf.format(内容)
二,第二个创建格式方法 1.先取得日期 2.创建对象的同时定义格式(一般是格式字符串) 3.(格式).format(日期/数字) 三,第一个创建格式的方法 1.创建对象同时定义格式(可以是常量,或者模式字符串) 2.取得时间 3.时间,format(格式)#读书笔记##笔记#