12.常用类简单介绍.md
1.Scanner类

/*输入输出*/
System.out.println("请输入,以回车结束");
Scanner sc = new Scanner(System.in);
//sc.useDelimiter("\n");//分隔符换成回车
while (sc.hasNext()) {
System.out.println("输入的内容是:" + sc.next());
}
while (sc.hasNextDouble()) {
System.out.println("输入的内容是:" + sc.nextDouble());
}
/*简单读取文件*/
try {
Scanner sc = new Scanner(new File("D:\\a.txt"));
System.out.println("ScannerTest.java内容如下:");
while (sc.hasNextLine()) {
System.out.println(sc.nextLine());
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
2.System类

/*System类获取环境变量相关信息*/
//环境变量
Map<String, String> mpEnv = System.getenv();
System.out.println("*********Begin:");
for(String name : mpEnv.keySet()){
System.out.println(name + "----->" + mpEnv.get(name));
}
System.out.println("*********End:");
//特定变量
System.out.println(System.getenv("JAVA_HOME"));
//写到文件中
java.util.Properties pt = System.getProperties();
try {
pt.store(new FileOutputStream("D:\\b.txt"), "PPP");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//获取时间
System.out.println(System.nanoTime());
//获取系统版本
String s = System.getProperty("os.name");
System.out.println(s);
3.Runntime类

/*Runtime类*/
//获取内存信息
Runtime rc = Runtime.getRuntime();
System.out.println("处理器数量: " + rc.availableProcessors());
System.out.println("空闲内存总量: " + rc.freeMemory());
System.out.println("可用内存总量: " + rc.totalMemory());
System.out.println("最大内存总量: " + rc.maxMemory());
//启动系统任务:记事本
try {
rc.exec("notepad.exe");
rc.exec("D:\\Notepad++v6.7.7\\Notepad++\\notepad++.exe");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
4.Object类和工具类

工具类

public class ScannerTest {
private static ScannerTest sc;
public static void main(String[] args) {
System.out.println(Objects.hashCode(sc));
System.out.println(Objects.toString(sc));
System.out.println(Objects.requireNonNull(sc));
}
}
5.StringBuffer类和StringBuilder类
- String类不适合对字符串的反复处理,因为每次都会创建一个新的对象
- StringBuffer内部维护一个char数组来实现字符串的处理
- StringBuilder和StringBuffer的函数是一样的,不同在于前者是线程不安全的,后者是线程安全的。推荐使用前者,前者的出现时间晚于后者,因为很少会有对字符串的操作需要线程安全。
6.Math类
7.Random类和ThreadLocalRandom类

public static void main(String[] args) {
//System.out.println();
/*Random类*/
//产生随机数
Random ra = new Random();
System.out.println("Boolean:" + ra.nextBoolean());
System.out.println("int:" + ra.nextInt());
System.out.println("double:" + ra.nextDouble());
System.out.println("long:" + ra.nextFloat());
//同样的种子,两个不同的对象以同一个顺序产生的随机数是一样的
Random ra5 = new Random(5);
System.out.println("long5:" + ra5.nextFloat());
Random ra6 = new Random(5);
System.out.println("long6:" + ra5.nextFloat());
//以时间为种子产生随机数
Random raTime = new Random(System.currentTimeMillis());
System.out.println("Random int(0-6) by time:" + ra.nextInt(6));
//ThreadLocalRandom产生的随机数
ThreadLocalRandom tlr = ThreadLocalRandom.current();
System.out.println("ThreadLocalRandom int(6-10):" + tlr.nextInt(6, 10));
}
8.时间日期
public static void main(String[] args) {
//System.out.println();
/*时间日期的获取*/
//获取对象
Calendar cl = Calendar.getInstance();
//获取完整时间
System.out.println("当前日期:" + cl.getTime());
//年份,cl.YEAR从1开始
System.out.println("当前年份:" + cl.get(cl.YEAR));
//月份,cl.MONTH从0开始,需要加1
System.out.println("当前月份:" + (cl.get(cl.MONTH) + 1));
//日期,cl.DATE从1开始
System.out.println("当前日子:" + cl.get(cl.DATE));
//时
System.out.println("当前小时:" + cl.get(cl.HOUR));
//分
System.out.println("当前分钟:" + cl.get(cl.MINUTE));
//秒
System.out.println("当前秒数:" + cl.get(cl.SECOND));
System.out.println("**********");
//今天之前的一天日期
Date d = (Calendar.getInstance()).getTime();
Calendar ck = Calendar.getInstance();
ck.setTime(d);
ck.add(ck.MONTH, -1);
ck.add(ck.YEAR, 1);
System.out.println("当前日期:" + ck.getTime());
//格式化
String s = new SimpleDateFormat("日期向前调整后格式化输出:yyyy-MM-dd HH-mm-ss").format(ck.getTime());
System.out.println(s);
//ck.add(ck.MONTH, 5);
ck.roll(ck.MONTH, 5);
s = new SimpleDateFormat("处理的输出:yyyy-MM-dd HH-mm-ss").format(ck.getTime());
System.out.println(s);
//容错性
ck.set(ck.MONTH, 13);
s = new SimpleDateFormat("处理的输出:yyyy-MM-dd HH-mm-ss").format(ck.getTime());
System.out.println(s);
//关闭容错性后运行报错
ck.setLenient(false);
ck.set(ck.MONTH, 13);
s = new SimpleDateFormat("处理的输出:yyyy-MM-dd HH-mm-ss").format(ck.getTime());
System.out.println(s);
}
add和roll的区别:两个都是对日期的处理,但是区别在于add会做进位处理,roll不会做进位处理:如果将日期向前调整后格式化输出:2016-09-30 11-24-03用add增加5个月,那么结果是处理的输出:2017-02-28 11-24-03,如果是roll则为处理的输出:2016-02-29 11-24-38
set的容错性:

8.Runtime类
该类可获得应用程序的运行环境:
- getRuntime() 返回当期aN应用程序的运行环境对象
- exec(String command) 根据路径执行对应的可执行程序
- freeMemory() 返回JVM空闲内存
- maxMemory() 返回JVM最大内存
12.常用类简单介绍.md的更多相关文章
- oc-12-NSString 类简单介绍及用法
// 11-[掌握]NSString 类简单介绍及用法 #import <Foundation/Foundation.h> int main(int argc, const char * ...
- Tstrings类简单介绍及实例
用TStrings保存文件;var S: TStrings;begin S := TStringList.Create(); { ... } S.SaveToFile('config.txt' ...
- iOS性能检测之Instrunments - 几种常用工具简单介绍
Instrunments: 没错,就是这货,很多人平时开发可能不一定会用到这个,但我要说的是,学会使用它,会让你加分不少哦 先来一张全家福: 1.打开方式 或者 两种方式都行. 2.今天主要介绍一下 ...
- Java并发之Semaphore和Exchanger工具类简单介绍
一.Semaphore介绍 Semaphore意思为信号量,是用来控制同时访问特定资源的线程数数量.它的本质上其实也是一个共享锁.Semaphore可以用于做流量控制,特别是公用资源有限的应用场景.例 ...
- java常用类详细介绍及总结:字符串相关类、日期时间API、比较器接口、System、Math、BigInteger与BigDecimal
一.字符串相关的类 1.String及常用方法 1.1 String的特性 String:字符串,使用一对""引起来表示. String声明为final的,不可被继承 String ...
- WMI 硬件类简单介绍,默认打印机
获取默认打印机: SELECT * FROM Win32_Printer WHERE Default=True 常用的几个WMI: 主板:Win32_BaseBoard http://msdn.mic ...
- linux常用命令简单介绍(netstat,awk,top,tail,head,less,more,cat,nl)
1.netstat netstat -tnl | grep 443 (查看443端口是否被占用) root用户,用netstat -pnl | grep 443 (还可显示出占用本机443端口的进程P ...
- Linux_常用命令简单介绍(netstat,awk,top,tail,head,less,more,cat,nl)
1.netstat netstat -tnl | grep 443 (查看443端口是否被占用) root用户,用netstat -pnl | grep 443 (还可显示出占用本机443端口的进程P ...
- Java学习笔记43(打印流、IO流工具类简单介绍)
打印流: 有两个类:PrintStream,PrintWriter类,两个类的方法一致,区别在于构造器 PrintStream:构造方法:接收File类型,接收字符串文件名,接收字节输出流(Outpu ...
随机推荐
- a++ 与 ++a 的运算
var a=5: b=a++和b=++a的区别: 前者是先赋值,再自加,即b=a:a=a+1: //结果b=5,a=6 后者是先自加,再赋值,即a=a+1;b=a; //结果a=6,b=6
- POI实现导出Excel和模板导出Excel
一.导出过程 1.用户请求导出 2.先访问数据库,查询需要导出的结果集 3.创建导出的Excel工作簿 4.遍历结果集,写入工作簿 5.将Excel已文件下载的形式回复给请求客户端 二.具体实现(截取 ...
- 第11课 std::bind和std::function(2)_std::bind绑定器
1. 温故知新:std::bind1st和std::bind2nd (1)bind1st.bind2nd首先它们都是函数模板,用于将参数绑定到可调用对象(如函数.仿函数等)的第1个或第2个参数上. ( ...
- Http跨域
一.传统 ajax跨域访问是一个老问题了,解决方法很多,比较常用的是JSONP方法,JSONP方法是一种非官方方法,而且这种方法只支持GET方式,不如POST方式安全. 即使使用jQuery的json ...
- time_base
From:http://blog.csdn.net/supermanwg/article/details/14521869 FFMPEG的很多结构中有AVRational time_base;这样的一 ...
- CS229 6.12 Neurons Networks from self-taught learning to deep network
self-taught learning 在特征提取方面完全是用的无监督的方法,对于有标记的数据,可以结合有监督学习来对上述方法得到的参数进行微调,从而得到一个更加准确的参数a. 在self-taug ...
- union与union all的用法给区别
用法: 当我们需要把两个或多个sql联合起来查询就用到了union或者union all 区别: 这两者的区别就在于union会自动的把多个sql查出来重复的排除掉,而union all这是会全部显示 ...
- (转)使用Flexible实现手淘H5页面的终端适配
原文链接 曾几何时为了兼容IE低版本浏览器而头痛,以为到Mobile时代可以跟这些麻烦说拜拜.可没想到到了移动时代,为了处理各终端的适配而乱了手脚.对于混迹各社区的偶,时常发现大家拿手机淘宝的H5页面 ...
- day6--递归函数
一递归函数 我们老师经常喜欢讲的一句话就是:人理解函数,神理解递归,那么什么是递归函数? 递归函数:在一个函数里面调用函数本身,也就是说这个函数里面出现了和函数一样的名字 例如: def func(n ...
- spring的IOC 的底层实现原理
IOC:Inversion of Control 控制反转. 指的是 对象的创建权反转(交给)给 Spring. 作用是实现了程序的解耦合.