Java基础学习之常用API(16)
常用API
1、Math
1.1 Math类概述
包含基本数字运算的方法。
package Java16.Math;public class demo1 {public static void main(String[] args) {//绝对值函数absSystem.out.println(Math.abs(88));System.out.println(Math.abs(-88));System.out.println("------------");//返回大于或等于参数的最小double值,向上取整ceilSystem.out.println(Math.ceil(12.31));System.out.println(Math.ceil(12.545));System.out.println("------------");//返回小于等于参数的最小double值,向下取整floorSystem.out.println(Math.floor(12.31));System.out.println(Math.floor(14.21));System.out.println("----------------");//四舍五入取最近参数int型,roundSystem.out.println(Math.round(12.31F));System.out.println(Math.round(11.99f));System.out.println("------------------");//比较int型数据取较大,maxSystem.out.println(Math.max(12,14));System.out.println(Math.max(131,2391));System.out.println("-----------------");//比较int型数据取较小,minSystem.out.println(Math.min(13,31));System.out.println(Math.min(1344,1412));System.out.println("----------------");//计算幂指数,powSystem.out.println(Math.pow(2,3));System.out.println(Math.pow(4.1,3));System.out.println("---------------");//取0-1随机数,randomSystem.out.println(Math.random());System.out.println((int)(Math.random()*100));}
}
System 类
包含几个有用的类字段和方法,它不能被实例化。
package Java16.System;public class demo {public static void main(String[] args) {System.out.println("star");//终止当前运行的Java虚拟机,非零表示异常终止,exit(int status)
// System.exit(0);System.out.println("end");//返回当前时间以毫秒为单位,currentTimeMillis().
// System.out.println(System.currentTimeMillis()*1.0/1000/60/60/24/365+"年");long start = System.currentTimeMillis();for (int i=0;i<10000;i++){System.out.println(i);}long end = System.currentTimeMillis();System.out.println("消耗时间"+(end-start)+"毫秒");}
}
3. Object类
Object是类层次结构的跟,每个类都可以将Object作为超类。所有类都直接或者间接的继承自该类。
构造方法: public Object()
为什么说子类的构造方法默认访问的是父类的无参构造方法?因为它们的顶级父类只有无惨构造方法
4.Arrays
4.1冒泡排序法
对要进行排序的数据中相邻的数据进行两两比较将较大的数据放在后面,依次对所有数据进行操作,直到所有数据完成排序。
package Java16.Array.paixu;public class demo {public static void main(String[] args){int[] arr={24,69,80,57,13};System.out.println("排序前:"+arrayToString(arr));
/* for(int i=0;i<arr.length-1;i++){for(int j=i+1;j<arr.length;j++){if(arr[i]>arr[j]){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}*///冒泡排序法for(int x=0;x<arr.length;x++){for(int i=0;i<arr.length-1-x;i++){if (arr[i] > arr[i+1]){int temp=arr[i];arr[i] = arr[i+1];arr[i+1] = temp;}}}System.out.println("排序后:"+arrayToString(arr));}//将数组元素组成一个字符串public static String arrayToString(int[] arr){StringBuilder sb = new StringBuilder();sb.append("[");for(int i=0;i<arr.length;i++){if(i == arr.length-1){sb.append(arr[i]);}else{sb.append(arr[i]).append(", ");}}sb.append("]");String s = sb.toString();return s;}
}
4.2 Arrays类的概述和常用方法
Arrays类包含操作数组的各种方法
package Java16.Array.Arraysdemo;import java.util.Arrays;public class demo {public static void main(String[] args){//定义一个数组int[] arr={14,54,24,27,46,73};System.out.println("排序前:"+ Arrays.toString(arr));Arrays.sort(arr);System.out.println("排序后:"+Arrays.toString(arr));}
}
工具类的设计思想:
构造方法用private修饰
成员用public static修饰
5. 基本类型包装类
将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据
常用的操作之一:用于基本数据类型与字符串之间的转换。
基本数据类型和包装类的对于关系
5.1 Integer类的概述和使用(其它几个自学)
Integer类包装一个对象中的原始类型int的值。 类型为Integer的对象包含一个单一字段,其类型为int 。
此外,该类还提供了一些将int转换为String和String转换为int ,以及在处理int时有用的其他常量和方法。
(已过时)
推荐使用静态方法获取对象:
package Java16.Demo;public class demo2 {public static void main(String[] args){//构造方法
/* Integer i1 = new Integer(100);System.out.println(i1);Integer i2 = new Integer("100");System.out.println(i2);
// Integer i2 = new Integer("abc");//NumberFormatException
// System.out.println(i2);*///静态方法获取对象Integer i1 = Integer.valueOf(100);System.out.println(i1);Integer i2 = Integer.valueOf("100");System.out.println(i2);}
}
5.3 int和String的相互转换
package Java16.Demo;public class demo3 {public static void main(String[] args){//int ----- Stringint number = 100;//方式1String s1 = ""+number;System.out.println(s1);//方式2//public static String valueOf(int i)String s2 = String.valueOf(number);System.out.println(s2);System.out.println("--------------------");//String ----- intString s = "100";//方式1//String --- Integer --- intInteger i = Integer.valueOf(s);//public int intValue()int x = i.intValue();System.out.println(x);//方式2//public static int parseInt(String s)//静态修饰可以通过类名直接调用int y = Integer.parseInt(s);System.out.println(y);}
}
- Int 转换为String
public static String valueOf(int i):返回int参数的字符串表示形式。该方法是String类中的方法
String s2 = String.valueOf(number);
- String转化为int
public static int parseInt(String s):将字符串解析为int类型,该方法是Integer类中的方法
int y = Integer.parseInt(s);
案例
1、字符串中数据排序
字符串“91 27 46 38 50”
public class demo4 {public static void main(String[] args){String s = "91 27 46 38 50";//split方法将字符串以regex参数进行分割形成String数组,此处regex为空格String[] sArray = s.split(" ");
/* for(int i=0;i<sArray.length;i++){System.out.println(sArray[i]);}*///定义一个int数组,存储String数组中的元素int[] arr = new int[sArray.length];for(int i=0;i<sArray.length;i++){//将String型转化为int型------Integer.parseInt(s)arr[i] = Integer.parseInt(sArray[i]);}
/* for(int i=0;i<arr.length;i++){System.out.println(arr[i]);}*///对arr数组进行排序,冒泡排序法
// for(int x=0;x<arr.length;x++){// for(int i=0;i<arr.length-1-x;i++){// if (arr[i] > arr[i+1]){// int temp=arr[i];
// arr[i] = arr[i+1];
// arr[i+1] = temp;
// }
// }
// }//可以直接调用方法Arrays类中的sort方法,需要调用包Arrays.sort(arr);//把排序后的int数组拼接得到一个字符串,采用StringBuilderStringBuilder s1 = new StringBuilder();for(int i=0;i<arr.length;i++){if(i == arr.length-1){//最后一个元素s1.append(arr[i]);}else{s1.append(arr[i]).append(" ");}}String result = s1.toString();System.out.println("result:"+result);}
}
5.4 自动装箱和拆箱
- 装箱:将基本数据类型转换为对应的包装类类型
- 拆箱:将包装类类型转换为对应的基本数据类型
package Java16.Demo;public class demo5 {public static void main(String[] args) {//装箱,基本数据类型----------包装类类型//i和ii就是包装类类型Integer i = Integer.valueOf(100);//自动装箱Integer ii = 100;//Integer.valueOf(100);//拆箱,包装类类型-----------基本数据类型//ii.intValue()就是拆箱;//ii += 200;ii = ii.intValue() + 200;//自动拆箱+自动装箱ii += 200;System.out.println(ii);}
}
6.日期类
6.1 Data类概述和构造方法
package Java16.Data;import java.util.Date;public class datademo {public static void main(String[] args) {//public Date();分配一个 Date对象并对其进行初始化,以便它表示分配的时间,测量到最近的毫秒。Date d1 = new Date();System.out.println(d1);//public Date(long date);分配一个 Date对象,并将其初始化为表示从标准基准时间(称为“时代”)即1970年1月1日00:00:00 GMT起的指定毫秒数。long date = 1000*60*60;Date d2 = new Date(date);System.out.println(d2);}
}
6.2 Data类的常用方法
package Java16.Data;import java.util.Date;public class demo2 {public static void main(String[] args) {//创建日期对象Date d = new Date();//public long getTime();返回自1970年1月1日以来,由 Date对象表示的00:00:00 GMT的毫秒数
// System.out.println(d.getTime()*1.0/1000/60/60/24/365+"year");//public void setTime(long time);设置此 Date对象以表示1970年1月1日00:00:00 GMT后的 time毫秒的时间点。
// long time = 1000*60*60;//System.currentTimeMillis();当前时间与1970年的毫秒数;//currentTimeMillis()----在1970年1月1日UTC之间的当前时间和午夜之间的差异,以毫秒为单位。long time = System.currentTimeMillis();d.setTime(time);System.out.println(d);}
}
6.3 SimpleDateFormat类概述
SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。
日期和时间格式由日期和时间模式字符串指定。 在日期和时间模式字符串中,从’A’到’Z’和从’a’到’z’的非引号的字母被解释为表示日期或时间字符串的组件的模式字母。
package Java16.Data;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class demo3 {public static void main(String[] args) throws ParseException {//SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。//SimpleDateFormat允许您从选择日期时间格式化的任何用户定义的模式开始//格式话:从Date-----String//public final String format(Date date);将日期格式化成日期/时间字符串Date d = new Date();
// SimpleDateFormat sdf = new SimpleDateFormat();SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");String s = sdf.format(d);System.out.println(s);System.out.println("-----------------");//解析 String----Date//public Date parse(String text);从给定字符串的开始解析文本以生成日期String ss = "2021-3-21 11:11:11";//两者格式要一致"2021-3-21 11:11:11"------"yyyy-MM-dd HH:mm:ss"SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date dd = sdf2.parse(ss);System.out.println(dd);}
}
6.4 日期工具类案例
package Java16.Data;import java.text.ParseException;
import java.util.Date;public class demo4 {public static void main(String[] args) throws ParseException {//创建日期对象Date d = new Date();String s1 = DataUtils.dateToString(d,"yyyy年MM月dd日 HH:mm:ss");System.out.println(s1);String s2 = DataUtils.dateToString(d,"yyyy年MM月dd日");System.out.println(s2);System.out.println("----------------");String s = "2048-08-09 12:23:43";Date dd = DataUtils.stringToDate(s, "yyyy-MM-dd HH:mm:ss");System.out.println(dd);}
}
package Java16.Data;//工具类
//构造方法私有
//成员方法静态import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class DataUtils {private DataUtils(){}/* 把日期转化为指定格式的字符串返回值类型String参数:Date data,String format */public static String dateToString(Date data,String format){SimpleDateFormat sdf = new SimpleDateFormat(format);String s = sdf.format(data);return s;}/*把字符串解析为指定格式的日期* 返回值类型为Date* 参数String s,String format */public static Date stringToDate(String s,String format) throws ParseException {SimpleDateFormat sdf = new SimpleDateFormat(format);Date d = sdf.parse(s);return d;}}
6.6 Calendar 类概述
Calendar类是一个抽象类,可以为在某一特定时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法。
Calendar提供了一种类方法getInstance ,用于获取Calendar对象,其日历字段已使用当前日期和时间初始化:
Calendar rightNow = Calendar.getInstance();
package Java16.Data;import java.util.Calendar;public class demo5 {public static void main(String[] args){//获取Calendar类对象Calendar c = Calendar.getInstance();//多态的形式
// System.out.println(c);
// public int get(int field)返回给定日历字段的值//Calendar.YEAR获取年的字段int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH)+1;int date = c.get(Calendar.DATE);System.out.println(year+"年"+month+"月"+date+"日");}
}
package Java16.Data;import java.util.Calendar;public class demo6 {public static void main(String[] args) {//获取日历对象Calendar c = Calendar.getInstance();//public int get(int field);返回给定日历字段的值、//public abstract void add(int field,int amount);抽象方法// 根据日历的规则,将指定的时间量添加或减去给定的日历字段//三年前的今天
/* c.add(Calendar.YEAR,-3);int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH)+1;int date = c.get(Calendar.DATE);System.out.println(year+"年"+month+"月"+date+"日");*///十年后的5天前
/* c.add(Calendar.YEAR,10);c.add(Calendar.DATE,-5);int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH)+1;int date = c.get(Calendar.DATE);System.out.println(year+"年"+month+"月"+date+"日");*///public final void set(int year,int month,int date,int hourOfDay,int minute,int second)//设置当前日历的年月日c.set(2020,11,11);int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH)+1;int date = c.get(Calendar.DATE);System.out.println(year+"年"+month+"月"+date+"日");}
}
6.8 案例二月天
需求获取任意一年的二月有多少天
package Java16.Data;import java.util.Calendar;
import java.util.Scanner;public class dateOfFebruary {//获取任意一年的二月有多少天public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入年:");int year = sc.nextInt();//设置日历对象的年月日Calendar c = Calendar.getInstance();c.set(year,2,1);//三月一日往前一天就是2月的最后一天c.add(Calendar.DATE,-1);//获取这一天输出int date = c.get(Calendar.DATE);System.out.println("这一年的二月有"+date+"天");}
}
Java基础学习之常用API(16)相关推荐
- 测开基础串讲-Java基础-测开常用API之Random类
在日常的测试开发工作中,Random类算是使用比较频繁的一个类了,有时候创建测试数据,可能需要随机生成一些姓名.年龄.号码.编号等,这个时候我们可能就会在固定的名称后面加上随机数字.字符等:下面就来看 ...
- 尚学堂JAVA基础学习笔记_2/2
尚学堂JAVA基础学习笔记_2/2 文章目录 尚学堂JAVA基础学习笔记_2/2 写在前面 第10章 IO技术 1. IO入门 2. IO的API 3. 装饰流 4. IO实战 5. CommonsI ...
- JAVA基础学习精简心得笔记整理
JAVA基础学习精简心得笔记整理 配置java环境变量 Java的运行过程 基本数据类型 引用数据类型 逻辑运算符 数组 方法重载 封装 继承 多态 多态的作用 单例设计模式 接口interface ...
- 【Java基础学习笔记】- Day11 - 第四章 引用类型用法总结
Java基础学习笔记 - Day11 - 第四章 引用类型用法总结 Java基础学习笔记 - Day11 - 第四章 引用类型用法总结 4.1 class作为成员变量 4.2 interface作为成 ...
- Java基础学习:尚硅谷项目三 开发团队调度软件
Java基础学习:尚硅谷项目三 开发团队调度软件 一.软件功能与结构设计 1. 软件功能 该软件实现以下功能: 软件启动时,根据给定的数据创建公司部分成员列表(数组) 根据菜单提示,基于现有的公司成员 ...
- Java基础学习——第十四章 网络编程
Java基础学习--第十四章 网络编程 一.网络编程概述 计算机网络: 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大.功能强的网络系统,从而使众多的计算机可以方便地互相传递信 ...
- Java基础学习(9)
Java基础学习 一.常用方法(API) 1.1 Math 1.2 System 1.3 Runtime 1. 4 .object 1.5 Objects 1.6 BigInteger BigInte ...
- Java基础学习—— IO流
Java基础学习-- IO流 1 文件 1.1 文件的创建 1.2 文件常用的方法 2 IO流 2.1 FileInputStream 2.2 FileOutputStream 2.3 文件的拷贝 2 ...
- Java基础学习Day09--字符串
Java基础学习Day09--字符串 一.简介: 二.String类字符串 三.String字符串的存储原理 四.字符串常用方法 1.equals()方法 2.字符串的搜索 3.截取子字符串 4.去除 ...
最新文章
- [转]安装和使用JD-Eclipse插件
- Access denied for user 'root'@'localhost' (using password:YES) 解决方案
- STP生成树连载:制服网络广播风暴(1)
- hive explode
- Windows 搭建 C/C++ 开发环境之Eclipse
- Java Spring MVC框架搭建(一)
- 安装CentOS的注意事项
- matlab2c使用c++实现matlab函数系列教程-ismember函数
- 生物聚集细胞生物化学反应的组织者Biomolecular condensates: organizers of cellular biochemistry
- 80x86汇编小站站长简单介绍-2014年08月23日
- 立体几何相关公式推导理解(球体、台体体积)
- 二元函数可导与可微的关系_如何理解多元函数可微与可偏导的关系?
- QGraphicsView使用详解
- ROS 教程2 机器人雷达建图 蒙特卡洛定位 导航 路径规划 仿真
- 现代C++教程1X读书笔记
- 提高转化率和获取手淘流量的技巧方法,如何提高转化率?
- windows7 为系统盘瘦身
- 正负压产生电路(9V,12V)
- 【计算机网络】彻底明白IP地址——计算相关地址
- OpenSea钓鱼攻击事件得到的启发警惕