文章目录
Java程序的参数
java程序的入口方法:
public static void main(String[] args) {...}
public修饰,让JVM可以直接调用该方法;
static修饰,JVM直接调用这个方法,不需要创建该类的对象
void返回值,不需要返回值,对JVM没有意义
读取用户输入
Scanner sc = new Scanner(System.in);
系统相关类
System类
java.lang.System 类
里面有很多重要的方法。
public static void main(String[] args) throws IOException {
Map<String, String> env = System.getenv();
for (String name : env.keySet()) {
System.out.println(name + " --> " + env.get(name));
}
// 获取指定环境变量的值
System.out.println(System.getenv("JAVA_HOME"));
Properties prop = System.getProperties();
// 将所有的系统属性保存到文件中去
prop.store(new FileOutputStream("prop.txt"), "System properties");
// 获取指定的系统属性
System.out.println(System.getProperty("os.name"));
System.out.println(System.currentTimeMillis());
}
Runtime类
代表Java程序的运行时环境。每个Java程序都有一个与之对应的Runtime实例。
常用类
Object类
是所有类、数组、枚举类的父类。
Java允许把任何类型的对象赋值给Object类型的变量。
当定义一个类时,没有使用extends关键字为它显式指定父类,则该类默认继承Object父类。
任何Java对象,都可以调用Object类的方法。需要熟悉Object类中常用的一些方法。
boolean equals(Object obj)
protected void finalize()
Class<?> getClass()
int hashCode()
String toString()
wait()
notify()
notifyAll()
Object常用方法有:toString()、equals()、hashCode()、clone()、getClass()等。
- toString:默认输出对象地址。可以重写toString方法,按照重写逻辑输出对象值。
- equals:默认比较两个引用变量是否指向同一个对象(内存地址)。
- hashCode:将与对象相关的信息映射成一个哈希值,默认的实现hashCode值是根据内存地址换算出来。
- clone:可以实现对对象中各个属性的复制。
- getClass:返回此 Object 的运行时类,常用于java反射机制。
- wait:当前线程调用对象的wait()方法之后,当前线程会释放对象锁,进入等待状态。等待其他线程调用此对象的notify()/notifyAll()唤醒或者等待超时时间wait(long timeout)自动唤醒。线程需要获取obj对象锁之后才能调用 obj.wait()。
- notify:唤醒在此对象上等待的单个线程,选择是任意性的。notifyAll()唤醒在此对象上等待的所有线程。
Objects类
Java 7新增的工具类,提供了一些工具方法来操作对象。
String类
关于String类的介绍,可以查看我的另一篇博客:
Math类
Math工具类来完成复杂的运算。
Java7 的ThreadLocalRandom与Random
Random类,从JDK 1.0就有;生产一个伪随机数(通过相同的种子,产生的随机数是相同的)。
ThreadLocalRandom类,从JDK 1.7才有;是Random的子类,在多线程并发情况下,ThreadLocalRandom相对于Random可以减少多线程资源竞争,保证了线程的安全性。public class ThreadLocalRandom extends Random因为构造器是默认访问权限,只能在java.util包中创建对象,故提供了一个方法ThreadLocalRandom.current()用于返回当前类的对象.
BigDecimal类
使用float、double两种基本浮点类型时,容易引起精度丢失。为了能精确的表示浮点数,Java提供了BigDecimal类。
使用的话,注意如下:
- 不推荐使用BigDecimal(double val) 构造函数,例如 new BigDecimal(0.1),它的值并不是0.1,它实际上等于一个近似0.1的值
- 优先建议使用基于String的构造函数
- 如果必须使用double 浮点数作为BigDecimal构造器的参数时,不要直接作为构造器的参数,而应该使用BigDecimal.valueOf(double val)静态方法来创建BigDecimal对象
public class BigDecimalTest {
public static void main(String[] args) {
// 基于String的构造器
BigDecimal f1 = new BigDecimal("0.05");
// 通过静态方法来创建BigDecimal对象
BigDecimal f2 = BigDecimal.valueOf(0.01);
// 使用double创建Decimal对象
BigDecimal f3 = new BigDecimal(0.05);
// 加
System.out.println(f1.add(f2));
// 减
System.out.println(f1.subtract(f2));
// 乘
System.out.println(f1.multiply(f2));
// 除
System.out.println(f1.divide(f2));
System.out.println("下面操作使用double创建Decimal对象");
// 加
System.out.println(f3.add(f2));
// 减
System.out.println(f3.subtract(f2));
// 乘
System.out.println(f3.multiply(f2));
// 除
System.out.println(f3.divide(f2));
// 幂次方运算
// 0.05 * 0.05 * 0.05
System.out.println(f1.pow(3));
}
}
Java日期、时间类
格式化日期、时间类
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/155801.html