java-常用API
来源:互联网 发布:vue.js 2.0 radio 编辑:程序博客网 时间:2024/05/19 23:54
一.object类
Object类是类层次结构的根。每个类都有 Object作为超类。所有对象,包括数组,实现这个类的方法。
方法:
equals:比较地址的
Object中的equals实现用==
1.判断是否是当前的类型(的子类)
2.强转
3.根据自己的意愿比较
==:比较值(栈中所存放的)
toString: 看看当前对象的属性(自动调用),不重写的时候:完整的类名@哈希码值
hashCode:返回对象的哈希码值,每个对象的哈希码值是不相同的
getClass:获取当前运行时候的类
finalize:垃圾回收机制,自动调用
线程:wait/notify(唤醒一个在这个对象的监视器上等待的单个线程。)
public class TestObject { int age; String name;/* @Override public boolean equals(Object obj) { //地址相同 if (this == obj) return true; //null if (obj == null) return false; //类 if (getClass() != obj.getClass()) return false; TestObject other = (TestObject) obj; if (a != other.a) return false; return true; }*/ public static void main(String[] args) { /** * 存储任意的10个对象 */ Object [] tens = new Object[10]; int [] a = new int[3]; tens [0] = new Date();//多态 tens [1] = new Scanner(System.in); tens[2] = a; print(tens[0]); tens[3] = new Date(); //获取当前运行的TextObject的类对象 Class c = new TestObject().getClass(); System.out.println(c); int num1 = new TestObject().hashCode(); int num2 = new TestObject().hashCode(); System.out.println(num1+" "+num2); int num3 = "你".hashCode(); int num4 = "你".hashCode(); System.out.println(num3+" "+num4); } //A?B:C /** * 用户根据自己的需求进行比较2个对象,重写了hashcode */ @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + age; result = prime * result + ((name == null) ? 0 : name.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; TestObject other = (TestObject) obj; if (age != other.age) return false; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; return true; } /** * 方法:传入一个对象,获取对象的地址 */ public static void print(Object obj){ System.out.println(obj); } /** * 方法:传入一个数字,1:返回时间 2 返回Scanner */ public static Object a(int num ){ if(num==1){ return new Date(); }else{ return new Scanner(System.in); } }}
二.String
1.String(不可变字符序列)
1.1三种构造方法
String str1 = new String(); String str2 = new String("你好!4"); char [] a = {'你','好','!'}; //通过字符数组 String str3 = new String(a,0,3);//String的构造方法 System.out.println(str1); System.out.println(str2); System.out.println(str3); 结果:(此处为空)你好!4你好!
设置字符为GBK的格式
//获取字符串的字节数组(GBK格式)
byte [] b = “你好!”.getBytes(“GBK”);
String str4 = new String(b,0,b.length);
System.out.println(str4);
//通过构造函数创建GBK格式的字符串
String str5 = new String(b,”GBK”);
System.out.println(str5);
结果:
你好!
你好!
1.2charAt(int index):获取指定下标字符串的字符
length():获取字符串的长度
String str5 = new String(b,"GBK"); System.out.println(str5); String str6 = "今天的天气挺好的,温度适宜"; char c = str6.charAt(3);//0---- int len = str6.length(); System.out.println(c+" "+len);结果:天 13//获取字符串的每一个字符for (int i = 0; i < str6.length(); i++) { System.out.println(str6.charAt(i)); }
1.3compareTo();比较返回int类型 正数,负数,0
int num = str2.compareTo(str5); System.out.println(num);
1.4concat():拼接字符串
str2.concat("拼接字符串"); //你好!4拼接字符串 System.out.println(str2);
1.5contains():是否包含
//是否包含 boolean flag = str2.contains("你好"); System.out.println(flag);
1.6endswith():以什么结尾,过滤
String strFile = "a.txt"; //以什么结尾:过滤 if(strFile.endsWith(".java")){ System.out.println("这是一个java文件"); }else{ System.out.println("这不是java文件"); }
1.7indexof():从左往右字符串的位置,第一次出现
1.public int indexOf(String str) //str6="今天的天气挺好的,温度适宜" int index = str6.indexOf('你');//自动转换 System.out.println(index); //-1 (没有这个) index = str6.indexOf("挺好的");//按着第一个字符出现的索引“挺”为5 index = str6.indexOf('天');//1,第一个字符(天)2.public int indexOf(int ch,int fromIndex)index = str6.indexOf('天',2);//从第二个天开始,返回值为3
1.8lastindexof():从右往左
index = str6.lastIndexOf('天');//只是寻找方式变了,结果也为3
1.9isEmpty
flag = str2.isEmpty(); System.out.println(flag);
2.0 trim:之去除字符串首和尾的所有空格,字符串中间的去除不了
str8 = " 你好 "; str8 = str8.trim()+1; System.out.println(str8);
2.1 split:以“ ”分割
String str8 = "1332456789@qq.com"; String [] arrStr = str8.split("@"); for (int i = 0; i < arrStr.length; i++) { System.out.println("arrStr["+i+"]="+arrStr[i]); } str8 = "abccbacd"; arrStr = str8.split("a"); for (int i = 0; i < arrStr.length; i++) { System.out.println("arrStr["+i+"]="+arrStr[i]); }
2.2replace:用新的替换旧的
public String replace(char oldChar, char newChar) str6 = str6.replace('天', '地'); System.out.println(str6);//今地的地气挺好的,温度适宜
2.3replaceAll
public String replaceAll(String regex,String replacement) String str7 = "13302341587";//133****1587 str7 = str7.replaceAll("\\d{3}", "哈哈");//每三个数字替换,\转移字符 System.out.println(str7);//哈哈哈哈哈哈87
2.4matches
str1 = "1"; flag = str1.matches("[a-zA-Z]"); System.out.println(flag);//false //简单匹配一个字符串判断他是否是手机号 str1.matches("[0-9]{11}"); //匹配一个QQ邮箱 前面数字 [5-10] @ qq.com str1.matches("[0-9]{5,10}@qq.com");
2.5正则表达式:Class Pattern类中
正则表达式描述:正则表达式是一串特定的字符,组成一个“规则字符串“,这个规则字符串是描述文本规则的工具,正则表达式就是记录文本规则的代码。例如:正则式“[a-z]”表示a到z的任意一俄国字符,正则表达式“[a-z]+”表示有一个或多个字符串组成的字符串。正则式既然是一种字符串组合的规则,那么我们就可以按着规则组合自己想要的正则式。[]:代表可以出现一个字符[abc]这个字符可以是a或b或c[^abc]不能是a或b或c的其他字符[a-z]这个字符只能是小写字母[a-zA-Z0-9]可以是字母或数字[a-z&&[^bc]]是小写字母但不能是b或c. :任意一个字符\d:任一一个数字,等同[0-9]\D:任一一个非数字字符,等同[^0-9]\s:任一一个空白字符\S:非空白字符\w:单词字符 [0-9a-zA-Z_]\W:非单词字符[^\w]量词:?:表示0-1次[\w]?:表示0或1个单词字符[\w][\w]?:表示1或2个单词字符*:表示0-无穷次[\d]*:任意次数字[\d][\d]*:至少一次+:表示1-无穷次[\d]+:至少一个数字{n}:n次.n只能是数字[\d]{11}:11次数字{n,}:n次以上{n,m}:n到m次[\d]{3,5}:3-5位的数字():将内容看作一个整体(abcd):要出现一个abcd(abcd)+:至少一次abcd()中可以使用或关系。在几个整体中选其一(138|135|130):是138或135或130下面列出常见的正则式:[abc] a,b,c中任意一个字符[^abc] 除了a,b,c任意一个字符[a-z] a~z的任意一个字符[a-zA-Z0-9] a~z,A~Z,0~9中任意一个字符[a-z&&[^bc]] a~z中除了b,c以外任意一个字符,其中&&表示“与”的关系。. 任意一个字符\d 任意一个数字字符,相当于[0-9]\D 任意一个非数字字符,相当于[^0-9]\s 空白字符,相当于[\t\n\x0B\f\r]\S 非空白字符,[^\s]\w 任意一个单词字符,[a-zA-Z_0-9]\W 任意一个非单词字符,[^\w]X? 表示0个或1个XX* 表示0个或任意多个XX+ 表示0到任意多个X(大于等于1个X)X[n] 表示n个XX[n,] 表示n到任意多个X(大于等于n个X)X[n,m] 表示n个到m个X(大于等于n个且小于m个X)
2.6valueof(返回为string的形式)
三system/Stringbuilder/StringBuffer
1. StringBuilder:可变字符序列:final 线程不安全 速度快,3个构造方法
StringBuffer: 可变字符序列: final 线程安全 速度慢
这两个的区别在于StringBuffer的方法多一个synchronized
1.1)Stringbuilder(构造方法)
StringBuilder() 构造一个没有字符的字符串生成器,并构造了16个字符的初始容量。 StringBuilder(CharSequence seq) 构建一个包含指定的 CharSequence相同字符的字符串生成器。 StringBuilder(int capacity) 构造一个字符串生成器没有字符和一个初始容量的 capacity参数指定。 StringBuilder(String str) 构造一个初始化为指定字符串的内容的字符串生成器。
1.2)append/toString/insert/delete/reverse
StringBuilder builder = new StringBuilder();//字符数组的大小:16 builder = new StringBuilder(3);//字符数组的大小是:3 builder = new StringBuilder("哈哈哈哈");//字符数字的长度:字符串的大小+16 builder.append(true).append(12).append(new Date()).append("哈哈"); System.out.println(builder.toString()); builder.insert(4, "INSERT"); System.out.println(builder); builder.delete(4, 10);//包头不包尾 System.out.println(builder); builder.reverse();//反转数组 System.out.println(builder);
2.system类
system流:(err/out/in)
system.exit:终止当前正在运行的java虚拟机
system.gc:运行垃圾收集器。(手动垃圾回收机制)
runFinalization :运行任何对象待定型的定型方法。
getProperties() :确定当前系统属性
getProperty(String key) :获取指定的键指示的系统属性。
currentTimeMillis()//返回当现在为止的毫秒值
public static void arraycopy(Object src, int srcPos,Object dest, int destPos,int length)//数组复制
src -源阵列。 srcPos -源数组中的起始位置。 dest -目标数组。 destPos在目标数据的起始位置。 length -数组元素的数目被复制。
四.Math
ceil(大于/等于某数的最小整数)
floor(返回小于/等于某数的最大整数)
Max/min
random(大于或等于0.0到小于1.0之间)
sqrt()//开平方,获取正数
public class TestMath { public static void main(String[] args) { //大于等于-12.9的最小整数-12.0 double num = Math.ceil(-12.9); System.out.println(num); //小于等于-12.9的最大整数-13.0 num = Math.floor(-12.9); System.out.println(num); int num1 = Math.max(-10,10); num1 = Math.min(-10,10); System.out.println(num1); //开10的平方,获取那个正数 num = Math.sqrt(10); System.out.println(num); //0.0----1.0的随机数 Math.random(); }}
五.Number类
抽象类是平台类 Number表示数值转换为原始类型 byte, double, float, int, long,和 short父类。从一个特定的 Number实现数值给定的原始类型转换的具体语义是由实现定义的 Number问题。
抽象类
大数据类:BigInter/BigDecimal
import java.math.BigInteger;public class TestBig { public static void main(String[] args) { BigInteger bi = new BigInteger("-1233"); bi = bi.abs(); System.out.println(bi); double num = bi.doubleValue(); System.out.println(num+1); }}
六.Runtime:当前运行的对象
七.Date:
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class Date_Test { public static void main(String[] args) throws ParseException { // TODO Auto-generated method stub //获取当前时间 Date date=new Date(); System.out.println(date.toLocaleString());//本地时间 System.out.println(date.toGMTString());//格林时间 System.out.println(date.toString()); //获取年月日:时分秒 System.out.println("年:"+(date.getYear()+1900));//此处需要加上1900 System.out.println("月:"+(date.getMonth()+1));//(getMonth:从0-11需要加一) System.out.println("星期:"+(date.getDay()));//getDay(为星期几) System.out.println("日:"+(date.getDate()));//获取日 System.out.println("时"+(date.getHours()));//时 System.out.println("分"+(date.getMinutes()));//分 System.out.println("秒"+(date.getSeconds()));//秒 System.out.println(date.getTime());//获取从1970年1月1日开始的毫秒值 System.out.println(date.getTimezoneOffset());//时区偏移,在几分钟内,用于当前时区。c //格式化 SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //data---字符串 String val=format.format(date); System.out.println(val); //字符串转换成data String str1="2017-1-10 09:3:5"; System.out.println(format.parse(str1)); }}
八.Format类
1.SimpleDateFormat:格式化
//parse表示(由string类型的转换成想要格式化的类型),
//format表示(由想要格式化的类型转换成string类型),
public class Date_Test { public static void main(String[] args) throws ParseException { // TODO Auto-generated method stub //获取当前时间 Date date=new Date(); //格式化 SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //data---字符串 String val=format.format(date); System.out.println(val); //字符串转换成data String str1="2017-1-10 09:3:5"; System.out.println(format.parse(str1)); }}
2.NumberFormat类
import java.text.DecimalFormat;import java.text.NumberFormat;import java.text.ParseException;public class NumberFormat_Test { public static void main(String[] args) throws ParseException { // TODO Auto-generated method stub NumberFormat numberFormat=new DecimalFormat("0.00%");//DecimaFormat/choiceFormat为NumberFormat的子类 double num=0.1124253822;// numberFormat.parse(字符串);//parse(表示由字符串到格式化的类型) numberFormat.format(num); System.out.println(numberFormat.format(num));//format(表示) String str1="19.8888934567888%"; double num1=(double) numberFormat.parse(str1); System.out.println(num1); System.out.println(numberFormat.parse(str1)); } //parse表示(由string类型的转换成想要格式化的类型) //format表示(由想要格式化的类型转换成string类型)}
九.Calendar类
Calendar.getInstance()创建对象
calendar.set()的容错性
ca1.get(Calendar.DATE)采用的是Calendar类的默认字段
package day12;import java.util.Calendar;public class Calenda_Test { public static void main(String[] args) { // TODO Auto-generated method stub Calendar ca1=Calendar.getInstance();//使用getInstance创建对象/* //ca1.get(Calendar.DATE):返回的是一个int类型 System.out.println(ca1.get(Calendar.DATE));//返回的是日这个类型 System.out.println(ca1.get(Calendar.DAY_OF_WEEK) +" "+ca1.get(Calendar.DAY_OF_MONTH));//一周的第几天,一个月中的第几天 System.out.println(ca1.get(Calendar.DAY_OF_WEEK_IN_MONTH));//一个月中的第几周 System.out.println(ca1.get(Calendar.HOUR));//12小时制 System.out.println(ca1.get(Calendar.HOUR_OF_DAY));//24小时制 System.out.println(ca1.get(Calendar.MONTH)+1);//月*/ ca1.set(Calendar.YEAR, 2069);//set给年赋值 System.out.println(ca1.get(Calendar.YEAR)); ca1.add(Calendar.DATE, 50);//add有容错性,给日期向后相加某个天数 System.out.println((ca1.get(Calendar.MONTH)+1)+" "+ca1.get(Calendar.DATE)); }}
- java 常用API 方法
- Java 常用API文档
- Java 常用API文档
- Java常用API
- 常用Java API
- java常用api(不断完善)
- java常用API
- Java常用API
- java工程师常用API
- Java String 常用 API
- Java Date 常用 API
- Java File 常用 API
- Java基础知识:常用API
- Java基础知识:常用API
- java常用API
- java常用API
- Java常用的 API
- Java常用API
- SQL join 子句中加入 top 子句嵌套 文章2
- hdu 1302 The Snail
- Java基础之抽象类和接口
- 2017年多校联合训练 第五场(吉如一)
- Dijkstra(邻接矩阵有向图)C 实现~
- java-常用API
- 标记 LoRaWAN介绍
- laravel 关联关系遍历数组
- 安卓通过SurfaceView类实现手写功能(下)
- spring注解 配置属性 Environment@PropertySource 配置数据源
- 2017 Multi-University Training Contest
- qt 获取网关
- UVA
- JavaScript中的异步编程-ES5 & ES6