/**
* Math类、Random类、Arrays类:具体查JAVA手册。。。。。。
*/
public class Main {
public static void main(String[] args) {
String[] s1 = {"a","b","c","d","e"};
String[] s2 = {"a","b","c","d","e"};
boolean b = Arrays.equals(s1,s2); //比较两数组内容
System.out.println(b); //输出true String[] s3 = new String[6];
Arrays.fill(s3,"井空");
System.out.println(s3.length);
for(String i:s3) System.out.print(i+" "); System.out.println(); String[] s4 = Arrays.copyOfRange(s1, 2, 3); //[2,3)
for(String i:s4) System.out.print(i+" "); System.out.println(); int index = Arrays.binarySearch(s1, "c");
System.out.println(index);
}
}
/**
* 日期操作类
* Date类:表示特定的瞬间,精确到毫秒,也是程序运行时的当前时间
* Calendar类:可以精确到毫秒
* DateFormat类
* SimpleDateFormat类:日期格式化类
*/
public class Main {
public static void main(String[] args) {
Date d1 = new Date();
Date c = new Date();
System.out.println(d1.getTime()); //毫秒表示
System.out.println(d1); //格式表示 //两种实例化方式
Calendar ca1 = Calendar.getInstance();
Calendar ca2 = new GregorianCalendar(); //阳历
int year = ca1.get(Calendar.YEAR);
int month = ca1.get(Calendar.MONTH)+1;
int day = ca1.get(Calendar.DAY_OF_MONTH);
int hour = ca1.get(Calendar.HOUR);
int minute = ca1.get(Calendar.MINUTE);
int second = ca1.get(Calendar.SECOND);
System.out.println(year+" "+month+" "+day);
System.out.println(hour+" "+minute+" "+second); DateFormat df1 = DateFormat.getDateInstance();
DateFormat df2 = DateFormat.getTimeInstance();
String nowDate = df1.format(new Date());
String nowTime = df2.format(new Date());
System.out.println(nowDate);
System.out.println(nowTime); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy^MM^dd HH:mm:ss SSS毫秒");
String swa = sdf1.format(new Date());
System.out.println(swa);
}
}
/**
* 对象比较器:对两个或多个数据项进行比较,以确定它们是否相等,或确定它们之间的大小关系
* Comparable接口:强行对实现它的每个类的对象进行整体排序,类的compareTo方法被称为它的自然比较方法
* 如果自定义类的对象要实现排序,那么就要实现Comparable接口,并实现接口的CompareTo方法
*
* Comparable接口要求自定义类去实现,按照OO原则:对修改关闭,对扩展开放。
* 如果这个类已经定义好,不想再去修改它,如何实现? 答:Arrays.sort有一个重载方法:
*/
public class Main {
public static void main(String[] args) {
String[] names = {"a","b","c","d","e","f"};
Person[] persons = {
new Person("a",10), new Person("b",9),
new Person("c",8), new Person("d",7),
new Person("e",6), new Person("f",5),
};
//自定义类对对象数组排序
Arrays.sort(persons);
for(Person i:persons) System.out.println(i.name+" "+i.age); Person2[] persons2 = {
new Person2("a",10), new Person2("b",9),
new Person2("c",8), new Person2("d",7),
new Person2("e",6), new Person2("f",5),
};
Arrays.sort(persons2,new Person2Comparator()); //使用自定义的比较器
for(Person2 i:persons2) System.out.println(i.name+" "+i.age);
System.out.println(Arrays.toString(persons2));//返回数组内容的字符串表示形式
}
} class Person implements Comparable<Person>{
public String name;
public int age;
Person(String name,int age){
this.name = name;
this.age = age;
}
@Override
public int compareTo(Person o) { //比较器的比较方法
//实现:定义对象之间的比较规则
if(o==null){
throw new NullPointerException();
}
//如果当前对象小于参数对象,返回-1
//如果当前对象等于参数对象,返回0
//如果当前对象大于参数对象,返回1
if(this.age < o.age)
return -1;
else if(this.age < o.age)
return 1;
return 0;
}
} class Person2{
public String name;
public int age;
Person2(String name,int age){
this.name = name;
this.age = age;
}
}
class Person2Comparator implements Comparator<Person2>{
@Override
public int compare(Person2 o1, Person2 o2) {
if(o1==null || o2==null)
throw new NullPointerException();
if(o1.age < o2.age)
return -1;
else if(o1.age > o2.age)
return 1;
return 0;
}
}
/**
* 对象的克隆:将一个对象复制一份(克隆要比new效率高)
* 一个类要想实现克隆功能,必须:
* 1.实现Cloneable接口,该接口必须是一个标记接口
* 2.重写Obejct类中的Clone方法
*/
public class Main {
public static void main(String[] args) {
Cat c1 = new Cat("a",10);
System.out.println("c1="+c1);
try{
Cat c2 = (Cat)c1.clone();
System.out.println("c2="+c2);
}catch(CloneNotSupportedException e){
e.printStackTrace();
}
}
} class Cat implements Cloneable{
private String name;
private int age; public Cat(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Cat{" + "name=" + name + ", age=" + age + '}';
}
@Override
//重写Obejct的Clone方法
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
/**
* 二叉树
*/
public class Main {
public static void main(String[] args) {
BinaryTree t1 = new BinaryTree();
t1.add(8);
t1.add(9);
t1.add(3);
t1.add(4);
t1.print();
}
} class BinaryTree{
private Node root; public void add(int data){
if(root==null){
root = new Node(data);
}else{
root.addNode(data);
}
}
public void print(){
if(root!=null){
root.printNode();
}else{
System.out.println("NULL");
}
} class Node{
private int data;
private Node left;
private Node right;
public Node(int data){
this.data = data;
}
public void addNode(int data){
if(data <= this.data){
if(this.left==null){
this.left = new Node(data);
}else{
this.left.addNode(data);
}
}else{
if(this.right==null){
this.right = new Node(data);
}else{
this.right.addNode(data);
}
}
}
public void printNode(){
System.out.println(this.data);
if(this.left!=null)
this.left.printNode();
if(this.right!=null)
this.right.printNode();
}
}
}

JAVA笔记10__Math类、Random类、Arrays类/日期操作类/对象比较器/对象的克隆/二叉树的更多相关文章

  1. 菜鸡的Java笔记 日期操作类

    日期操作类        Date 类与 long 数据类型的转换        SimpleDateFormat 类的使用        Calendar 类的使用                如 ...

  2. 使用日期操作类(Calendar)获得几秒、几分钟、几小时之前的时间

    public String dealDate(String case_time){ // 日期操作类 Calendar calendar = Calendar.getInstance(); // 当前 ...

  3. Java笔记:与系统交互、系统相关的类,Object类

    1.程序与用户交互 (1)运行一个Java程序的时候要给它提供一个main方法入口,这边分析一下这个main方法的签名public static void main(String[] args);pu ...

  4. java编程--04比较几个常用的日期时间相关类的区别

    第一篇,介绍日期的比较 第二篇,介绍日期的格式化 第三篇,介绍关于日期常用的计算 第四篇,比较几个常用的日期时间相关类的区别 第五篇,jdk9对日期类进行了更新,写一些i自己的学习心得. 下面以一组思 ...

  5. 日期操作类--SimpleDateFormat类

    使用SimpleDateFormat格式化日期 SimpleDateFormat是一个以语言环境敏感的方式来格式化和分析日期的类.SimpleDateFormat允许你选择任何用户自定义日期时间格式来 ...

  6. 日期操作类--DateFormat类

    简单的DateFormat格式化编码 时间模式字符串用来指定时间格式.在此模式中,所有的ASCII字母被保留为模式字母,定义如下: 字母 描述 示例 G 纪元标记 AD y 四位年份 2001 M 月 ...

  7. 日期操作类--Date类

    Date-API ava.util包提供了Date类来封装当前的日期和时间.Date类提供两个构造函数来实例化Date对象.第一个构造函数使用当前日期和时间来初始化对象. Date( ) 第二个构造函 ...

  8. Util应用程序框架公共操作类(十二):Lambda表达式公共操作类(三)

    今天在开发一个简单查询时,发现我的Lambda操作类的GetValue方法无法正确获取枚举类型值,以至查询结果错误. 我增加了几个单元测试来捕获错误,代码如下. /// <summary> ...

  9. JavaLearning:日期操作类

    package org.fun.classdemo; import java.util.Calendar; import java.util.GregorianCalendar; public cla ...

随机推荐

  1. VSCode Remote-SSH 连接服务器

  2. 阿里云短信功能php

    1. 引入文件: https://help.aliyun.com/document_detail/53111.html?spm=a2c1g.8271268.10000.99.5a8ddf25gG0wW ...

  3. python刷题第二周

    1: 第3章-5 字符转换 (15 分) 本题要求提取一个字符串中的所有数字字符('0'--'9'),将其转换为一个整数输出. 输入格式: 输入在一行中给出一个不超过80个字符且以回车结束的字符串. ...

  4. Java_正则表达式和文本操作

    正则表达式语法 普通字符 字母.数字.汉字.下划线.以及没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符. 简单的转义字 ...

  5. maven插件maven-install-plugin

    maven-install-plugin负责将获取的jar包安装到本地仓库 <build> <plugin> <groupId>org.apache.maven.p ...

  6. 关于zimbra的复现以及突破

    Zimbra未登录RCE漏洞利用 首先我是根据这个PDF进行复现的,但是复现过程出现很多问题 首先使用这个XXE读取文件 <!DOCTYPE xxe [ <!ELEMENT name AN ...

  7. go语言游戏服务端开发(四)——RPC机制

    五邑隐侠,本名关健昌,12年游戏生涯. 本教程以Go语言为例. RPC指远程方法调用,游戏里引入RPC目的是降低跨进程交互的复杂度. 游戏业务设计为多go routine,一个玩家一个go routi ...

  8. Ysoserial Commons Collections2分析

    Ysoserial Commons Collections2分析 About Commons Collections2 CC2与CC1不同在于CC2用的是Commons Collections4.0; ...

  9. 我在阿里巴巴做 Serverless 云开发平台

    技术的成熟度源自大规模的实践,Java 领域,阿里将自身的实践源源不断的反哺给微服务技术体系:Node.js 领域,阿里正掀起了前所未有的前端革命浪潮,将实践反哺给 Serverless技术体系,并逐 ...

  10. 第30篇-main()方法的执行

    在第7篇详细介绍过为Java方法创建的栈帧,如下图所示. 调用完generate_fixed_frame()函数后一些寄存器中保存的值如下: rbx:Method* ecx:invocation co ...