Java知识复习(常用类)
来源:互联网 发布:惠普网络驱动官方下载 编辑:程序博客网 时间:2024/06/05 21:11
运行Java程序的参数
public static void main(String[] args) { }
- public修饰符:Java类由JVM调用,所以用public修饰符把main方法暴露出来,让JVM可以自由调用。
- static修饰符:JVM直接通过类来调用main方法。
- void返回值:JVM调用该方法,返回值传给JVM没有意义,所以用void返回值。
Scanner类
Scanner主要提供两个方法来扫描输入的内容。
- hasNextXxx,是否还有下一个输入项。
- nextXxx,获取下一个输入项。
import java.util.Scanner;public class TestDemo03 { private static Scanner input; public static void main(String[] args) { input = new Scanner(System.in); while (input.hasNext()) { System.out.println("输入的内容是:" + input.next()); } }}
Scanner还可以读取文件输入
Scanner input = new Scanner(new File("abc.txt"));
BufferedReader获取键盘输入
public class TestDemo03 { public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String string = null; try { while (null != (string = br.readLine())) { System.out.println("输入的是:" + string); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
正则表达式
- 正则表达式是一个对字符串进行处理的工具。
正则表达式的特殊字符
(要匹配以上字符本身,要用\连接需要匹配的字符)。
预定义字符
使用Pattern和Matcher来使用正则表达式(Pattern是不可变类,可供多个并发线程安全使用)
package com.example.chapter;import java.util.regex.Matcher;import java.util.regex.Pattern;public class TestDemo01 { public static void main(String[] args) { String[] mails = { "shajs@123.com", "sds@as.cn", "asas@22.gov", "saas.com", "asas@xx.org" }; String mailRegEx = "\\w{3,10}@\\d+\\.(com|cn|gov|org)"; Pattern pattern = Pattern.compile(mailRegEx); Matcher matcher = null; for (String mail : mails) { if (matcher == null) { matcher = pattern.matcher(mail); } else { matcher.reset(mail); } String result = mail + (matcher.matches() ? " is" : " is not") + " email"; System.out.println(result); } }}
System类
- System类代表的是当前Java程序的运行平台,程序不能创建System的对象
- System类提供了两个方法可以获取系统当前的时间,currentTimeMillis()和nanoTime(),这两个方法的返回值为long.前者单位为毫秒,后者单位为纳秒。
public class Demo01 { public static void main(String[] args) { System.out.println(System.currentTimeMillis());//1506004702738 System.out.println(System.nanoTime());//273159338426083 }}
- System类的in、out、err分别代表系统的标准输入(一般为键盘)、标准输出(一般为显示器)、错误输出流。
- System类提供了setIn(),setOut(),setErr()方法来改变系统的标准输入、标准输出和标准错误输出流。
Object类
Object类是所有类、数组、枚举类的父类。当定义一个类没有用extends关键字为它指定父类,则该类默认继承Object类。
几个常用的方法:
- boolean equals(Object obj);判断指定对象与该对象是否相等,可以自己重写该方法定义判断相等的条件。
- protected void finalize();当系统中没有引用变量引用该对象时,垃圾回收器调用此方法来清理该对象的资源。
- Class< ?> getClass();返回该对象的运行时类。
- int hashCode();返回该对象的hashCode值。
- String toString();返回该对象的字符串表示。
Java7新增的Objects类
Objects是一个工具类,提供了一些工具方法来操作对象。
String ,StrinfBuffer ,StringBuilder 类
- String类是不可变类。
- StringBuffer 对象代表一个字符序列可变的字符串。
- StringBuilder与StringBuffer基本相似,StringBuffer是线程安全的,StringBuilder不是线程安全,所以性能略高。(优先考虑使用StringBuilder类)
- String类提供的大量构造方法和方法可以参考api文档。
Math类
Math类是一个工具类,构造器由private修饰,所以无法创建Math对象。
Math类提供的方法可参考api文档。
Calendar类
Calendar类可以更好的处理日期和时间。Calendar类是抽象类。
public class Demo01 { public static void main(String[] args) { // 创建一个默认的Calendar对象 Calendar calendar = Calendar.getInstance(); System.out.println(calendar.get(Calendar.YEAR));// 取出年,2017 // 月份的起始值为0,所以得到当前月份要加1 System.out.println(calendar.get(Calendar.MONTH));// 取出月,8 System.out.println(calendar.get(Calendar.DATE));// 取出日,22 System.out.println(calendar.getTime()); calendar.add(Calendar.YEAR, 2); System.out.println(calendar.getTime()); calendar.roll(Calendar.MONTH, -2); System.out.println(calendar.getTime()); }}
add与roll的区别
add(int field , int amount)方法主要用于改变Calendar特定字段的值;
1. 当被修改的字段超出范围,会发生进位,上一级字段也会增大
calendar.set(2010, 2, 12); calendar.add(Calendar.MONTH, 11); System.out.println(calendar.getTime());//Sat Feb 12 16:52:39 CST 2011
2.如果下一级字段也需要改变,该字段会修改到变化最小的值。
calendar.set(2019, 11, 30); calendar.add(Calendar.MONTH, 2); System.out.println(calendar.getTime());//Sat Feb 29 16:59:57 CST 2020
roll(int field,int amount) 方法
1.修改的字段超出范围,上一级字段不会改变。
2.下一级字段处理的方式与add类似。
阅读全文
0 0
- Java知识复习(常用类)
- Java知识复习(基础知识)
- Java知识复习(集合)
- Java知识复习(线程)
- Java知识复习(面向对象)
- Java知识复习(异常处理)
- Java知识复习(I/O)
- Java知识复习
- java知识复习1
- JAVA相关知识复习
- Java复习第五天---常用类
- Java复习笔记—常用类库
- java知识复习提纲(考试需要而写)
- day05--Java面向对象复习--Java常用类
- Linux知识复习(一)
- Linux知识复习(二)
- 基础理论知识复习(下)
- 基础理论知识复习(上)
- [Leetcode] 406. Queue Reconstruction by Height 解题报告
- JAVA RPC学习
- 922总结
- java EE开发之Servlet第十三课:复杂自定标签
- 关于Mac下appid登录提示‘This action could not be completed.’
- Java知识复习(常用类)
- 集合框架
- MySQL内核技术之"Table结构与操作"
- c语言--数组初始化
- Hibernate学习笔记(3)---hibernate关联关系映射
- H264中I帧,B帧,P帧,PTS,DTS含义说明
- win10 64位+Kinect 2.0+VS 2013+opencv开发环境搭建及深度图像读取
- 数据库SQL优化大总结之 百万级数据库优化方案
- [LeetCode] Algorithms-169. Majority Element