//一.object
// 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(不包括数组)都实现这个类的方法。
//简单来说就是,Object类是所有类的父类,包括我们所写的类,我们在使用类的时候就会利用Object类中的方法~
// Object object = new Object();
//1.clone 方法
//保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。
//clone与copy的区别在于后者只是产生了一个指向原有引用内存的对象
//深clone与浅clone http://blog.csdn.net/zhangjg_blog/article/details/18369201#0-qzone-1-28144-d020d2d2a4e8d1a374a433f596ad1440
// object.toString();
//2.tostring 返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。
// object.equals("");
//3.equals
//判断this和obj本身的值是否相等,即用来判断调用equals的对象和形参obj所引用的对象是否是同一对象,
//同一对象就是指内存中同一块存储单元
// object.hashCode();
//4.hashcode
//返回该对象的哈希码值
//equals true的两个对象hash值一定相同 ,反之则不一定
// object.wait();
// object.notify();
//5.wait,当前线程睡眠 notify 当前线程启动
//二.StringBuffer
//当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类,不产生新的对象。
//StringBuffer 速度快 线程不安全
//StringBuilder 速度慢 线程安全
// StringBuffer stringBuffer = new StringBuffer("stringBuffer:");
// //拼接
// stringBuffer.append("测试");
// System.out.println(stringBuffer);
// //反转
// stringBuffer.reverse();
// System.out.println(stringBuffer);
// //删除
// stringBuffer.deleteCharAt(0);
// System.out.println(stringBuffer);
// //添加
// stringBuffer.insert(0,"测");
// System.out.println(stringBuffer);
// //替换
// stringBuffer.replace(0,1,"替");
// System.out.println(stringBuffer);
//三.String
//String 类是不可改变(改变的只是引用) 如果要想改变请使用 StringBuffer 和 StringBuilder
// String site = "String";
// int len = site.length();
// System.out.println( "String长度 : " + len );
// String s = "拼接";
// System.out.println(site.concat(s));
// System.out.println(site+s);
// System.out.printf("浮点型变量的值为 " +
// "%f, 整型变量的值为 " +
// " %d, 字符串变量的值为 " +
// "is %s", 1.1, 1, "String");
//四.Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。
// System.out.println("90 度的正弦值:" + Math.sin(Math.PI/2));
// System.out.println("0度的余弦值:" + Math.cos(0));
// System.out.println("60度的正切值:" + Math.tan(Math.PI/3));
// System.out.println("1的反正切值: " + Math.atan(1));
// System.out.println("π/2的角度值:" + Math.toDegrees(Math.PI/2));
// System.out.println(Math.PI);
// //java中的自动装箱与拆箱
// //两个非new Integer 变量初始化值位于 -128 ~ 127 之间时,两个变量使用了同一地址.超出范围,使用不同地址
// //Math.floor 是向下取整
// //Math.ceil 是向上取整。
// //Math.round 是四舍五入取整
// //参数的小数点后第一位小于 5,运算结果为参数整数部分。
// double a = -1.4;
// double b = -1.5;
// //参数的小数点后第一位大于 5,运算结果为参数整数部分绝对值 +1,符号(即正负)不变。
// double c = -1.6;
// //参数的小数点后第一位等于 5,正数运算结果为整数部分 +1,负数运算结果为整数部分。
// double b1 = 1.5;
// System.out.println("a"+Math.round(a)+"b:"+Math.round(b)+"c:"+Math.round(c)+"b1:"+Math.round(b1));
//
// System.out.println(Math.floor(a)+"-"+Math.ceil(a));
// //绝对值
// System.out.println(Math.abs(a));
// //随机数
// System.out.println(Math.random());
//五 Date 日期和时间
Date date = new Date();
//当前时间
System.out.println(date.toString());
//格式化时间 HH 24小时 hh 12小时
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(ft.format(date));
//c的使用
System.out.printf("全部日期和时间信息:%tc%n", date);
//f的使用
System.out.printf("年-月-日格式:%tF%n", date);
//d的使用
System.out.printf("月/日/年格式:%tD%n", date);
//r的使用
System.out.printf("HH:MM:SS PM格式(12时制):%tr%n", date);
//t的使用
System.out.printf("HH:MM:SS格式(24时制):%tT%n", date);
//R的使用
System.out.printf("HH:MM格式(24时制):%tR", date);
//b的使用,月份简称
String str = String.format(Locale.US, "英文月份简称:%tb", date);
System.out.println(str);
System.out.printf("本地月份简称:%tb%n", date);
//B的使用,月份全称
str = String.format(Locale.US, "英文月份全称:%tB", date);
System.out.println(str);
System.out.printf("本地月份全称:%tB%n", date);
//a的使用,星期简称
str = String.format(Locale.US, "英文星期的简称:%ta", date);
System.out.println(str);
//A的使用,星期全称
System.out.printf("本地星期的简称:%tA%n", date);
//C的使用,年前两位
System.out.printf("年的前两位数字(不足两位前面补0):%tC%n", date);
//y的使用,年后两位
System.out.printf("年的后两位数字(不足两位前面补0):%ty%n", date);
//j的使用,一年的天数
System.out.printf("一年中的天数(即年的第几天):%tj%n", date);
//m的使用,月份
System.out.printf("两位数字的月份(不足两位前面补0):%tm%n", date);
//d的使用,日(二位,不够补零)
System.out.printf("两位数字的日(不足两位前面补0):%td%n", date);
//e的使用,日(一位不补零)
System.out.printf("月份的日(前面不补0):%te", date);
Calendar c1 = Calendar.getInstance();
// 获得年份
int year = c1.get(Calendar.YEAR);
// 获得月份
int month = c1.get(Calendar.MONTH) + 1;
// 获得日期
int date1 = c1.get(Calendar.DATE);
// 获得小时
int hour = c1.get(Calendar.HOUR_OF_DAY);
// 获得分钟
int minute = c1.get(Calendar.MINUTE);
// 获得秒
int second = c1.get(Calendar.SECOND);
// 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)
int day = c1.get(Calendar.DAY_OF_WEEK);
System.out.println("-------------------------------------");
System.out.println("获得年份"+year+month+date1+hour+minute+second+day);