黑马程序员_javaAPI
2015-07-21 12:24
531 查看
API就是应用程序编程接口,给java程序员提供的接口和操作方法。
常用的API;
String类和StringBuffer
String:字符串数据类型。属于引用数据类型。
String一旦初始化就不可修改,是常量
示例:
字符串并没有改变只是指向了新建的字符串对象“bcx”
String重写了Object中的equals方法,不再比较地址值,比较的是字符串内容
字符串创建的时候有一个常量池,如果常量池中字符串内容相同,则不会新建一个字符串对象,而是指向已有的字符串对象
示例:
class StringTest
{
public static void main(String[] args)
{
String s = "abc";
String s1="abc";
System.out.println(s==s1);
}
}
如果定义一个S1对象在常量池中,定义另一个S2对象在堆内存中,用==判断会显示false,因为其比较的是地址值,而用equals判断,会显示true,因为String的equals比较的是字符串内容
示例:
String的获取方法示例:
class stringTest1
{
public static void main(String[] args)
{
method_get();
}
public static void method_get()
{
String s="abcdrfgcdfdd";
sop(s.length());//求出字符串的长度
sop(s.charAt(3));//求出索引为3的字符
sop(s.indexOf('f'));//返回f第一次出现的位置
sop(s.indexOf('f',6));//从索引6以后,第一次出现的位置
sop(s.indexOf("cd"));//返回cd第一次出现的位置
sop(s.indexOf("cd",6));//从索引6以后,第一次出现的位置
sop(s.lastIndexOf('c'));//从最后开始反向搜索第一次出现的位置
sop(s.lastIndexOf('c',4));//从索引4开始反向索引
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
String的判断方法示例:
String的转换方法示例:
class arrayTest2
{
public static void main(String[] args)
{
method_str();
}
public static void method_str()
{
//将字符数组转换成字符串
char[] arr={'a','v','c','d','w','e','f','q'};
String s=new String(arr,1,3);
sop(s);
//方法二,将字符数组转换成字符串
String s1=new String();
sop(s1.copyValueOf(arr,2,4));
//将字符串转成字符数组
String s2="sdjasifh";
char[] chs=s2.toCharArray();
for(int i=0;i<chs.length;i++)
{
sop(chs[i]);
}
//将字节数组转换成字符串
byte[] b1={65,66,67,88,99,66};
String s4=new String(b1);
sop(s4);
//将字符串转换成字节数组
String s3="qwertyuuii";
byte[] b=s3.getBytes();
for(int i=0;i<b.length;i++)
{
sop(b[i]);
}
//将基本数据转换成字符串
String s5=new String();
int i=358;
char c ='q';
sop(s5.valueOf(i));
sop(s5.valueOf(c));
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
String的其他方法示例:
class arrayTest3
{
public static void main(String[] args)
{
method_1();
}
public static void method_1()
{
String s="superbug";
//替换字符把bug替换成age
String s1=s.replace("bug","age");
sop(s);
sop(s1);
//切割字符串,并存入数组,依据某个特定点来切割
String s2="zhangsan,lisi,wangwu,zhaoliu";
String s3="zheyimkeiermshuijiaomgg";
String[] arr=s2.split(",");
for(int i=0;i<arr.length;i++)
{
sop(arr[i]);
}
String[] arr1=s3.split("m");
for(int j=0;j<arr1.length;j++)
{
sop(arr1[j]);
}
//获取字符串中的一部分
String s4="hellow java";
sop(s4.substring(2,9));
sop(s4.substring(2));
//将字符串转换成大写和小写,并去除两端的空格
String s5=" ARRAYlistTest.JavA ";
sop(s5.toUpperCase());//转换成大写
sop(s5.toLowerCase());//转换成小写
sop(s5.trim());
String s6=s5.toUpperCase();
sop(s6.trim());
//对两个字符串的自然顺序进行比较
sop(s5.compareTo(s4));
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
StringBuffer和StringBuilder区别:
方法都相同,只不过StringBuffer是同步的,而StringBuilder是不同步的。
以StringBuffer为例:
基本数据包装类
8大基本数据类型都有其对应的包装类
Integer int
Character char
Float float
Double double
Byte byte
Long long
Short short
Boolean boolean
该包装类用于和字符串之间的转化
字符串装换成基本类型
格式:xxx parsexxx(“字符串”);
除了Character以外。
基本类型转字符串
String.valueOf(基本数据类型);或者是基本数据类型+“”即可
System类
常用方法:
static void exit(int status)终止虚拟机运行
static void CurrentTimeMillis 返回一毫秒为单位的当前时间
static Properties getProperties 确定当前系统属性
示例:
Runtime类:运行进程,不能直接创建Runtime示例,但可以通过静态方法Runtime.getRuntime获取正在运行的对象引用,
示例:
class runtimeDemo
{
public static void main(String[] args) throws Exception
{
Runtime r=Runtime.getRuntime();
r.exec("notepad.exe systemDemo.java");//将Java文件用文本形式打开
}
}
Date与DateFormat,Calendar类
Date类用于表示日期和时间
DateFormat,Calendar类是来解决Date类产生的国际化问题
Calendar类是一个抽象基类
综合应用:
编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,程序计算这一天是星期几,并且计算出是一年中的第几天。
Math类和Random类
Math类几乎包含了所有用于几何和三角的浮点运算方法
示例:
import java.util.*;
class MathDemo
{
public static void main(String[] args)
{
for(int i=0;i<10;i++)
{
int z=(int)(Math.random()*10+1);//返回1到10的随机数
sop(z);
//方法二,util包中有Random类
Random r = new Random();
int s=r.nextInt(10)+1;
sop(s);
}
double d = Math.ceil(-13.35);//ceil返回大于指定数据的最小整数
double d1 = Math.floor(-13.35);//ceil返回小于指定数据的最小整数
long l = Math.round(13.35);//四舍五入
double d2 = Math.pow(2,3);//前面是底数,后面是指数,即2的3次饭
sop(d);
sop(d1);
sop(l);
sop(d2);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
Random类是一个随机数产生器,是按照某种算法产生的,严格意义上来说是伪随机数
示例:
import java.util.*;
class RandomDemo
{
public static void main(String[] args)
{
Random r = new Random();//定义一个随机流对象
for(int i=0;i<=10;i++)//循环打印出随机值
{
System.out.println(r.nextInt(10)+1);//1到10的随机数,包含1,也包含10
}
}
}
总之API文档要多看看,会有很多惊喜的!
常用的API;
String类和StringBuffer
String:字符串数据类型。属于引用数据类型。
String一旦初始化就不可修改,是常量
示例:
<span style="font-size:24px;">class StringTest { public static void main(String[] args) { String s = "abc"; s="bcx"; System.out.println(s); } }</span>
字符串并没有改变只是指向了新建的字符串对象“bcx”
String重写了Object中的equals方法,不再比较地址值,比较的是字符串内容
字符串创建的时候有一个常量池,如果常量池中字符串内容相同,则不会新建一个字符串对象,而是指向已有的字符串对象
示例:
class StringTest
{
public static void main(String[] args)
{
String s = "abc";
String s1="abc";
System.out.println(s==s1);
}
}
如果定义一个S1对象在常量池中,定义另一个S2对象在堆内存中,用==判断会显示false,因为其比较的是地址值,而用equals判断,会显示true,因为String的equals比较的是字符串内容
示例:
class StringTest { public static void main(String[] args) { String s = "abc"; String s1=new String("abc"); System.out.println(s==s1); System.out.println(s.equals(s1)); } }
String的获取方法示例:
class stringTest1
{
public static void main(String[] args)
{
method_get();
}
public static void method_get()
{
String s="abcdrfgcdfdd";
sop(s.length());//求出字符串的长度
sop(s.charAt(3));//求出索引为3的字符
sop(s.indexOf('f'));//返回f第一次出现的位置
sop(s.indexOf('f',6));//从索引6以后,第一次出现的位置
sop(s.indexOf("cd"));//返回cd第一次出现的位置
sop(s.indexOf("cd",6));//从索引6以后,第一次出现的位置
sop(s.lastIndexOf('c'));//从最后开始反向搜索第一次出现的位置
sop(s.lastIndexOf('c',4));//从索引4开始反向索引
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
String的判断方法示例:
class stringTest1 { public static void main(String[] args) { method_judge(); } public static void method_judge()//判断 { String s="arrayTest.java"; s.contains("Test");//判断是否包含Test if(s.indexOf("Test")!=-1)//判断是否包含Test,如果包含并返回所在位置 sop("true________"+s.indexOf("Test")); else sop("false"); sop(s.isEmpty());//数组长度是否为0, sop(s.startsWith("array"));//字符串是不是以array开头 sop(s.endsWith(".java"));//字符串是否以.java结尾 sop(s.equalsIgnoreCase("arrAYtest.JAVA"));//判断字符串是否相同,不区分大小写 } public static void sop(Object obj) { System.out.println(obj); } }
String的转换方法示例:
class arrayTest2
{
public static void main(String[] args)
{
method_str();
}
public static void method_str()
{
//将字符数组转换成字符串
char[] arr={'a','v','c','d','w','e','f','q'};
String s=new String(arr,1,3);
sop(s);
//方法二,将字符数组转换成字符串
String s1=new String();
sop(s1.copyValueOf(arr,2,4));
//将字符串转成字符数组
String s2="sdjasifh";
char[] chs=s2.toCharArray();
for(int i=0;i<chs.length;i++)
{
sop(chs[i]);
}
//将字节数组转换成字符串
byte[] b1={65,66,67,88,99,66};
String s4=new String(b1);
sop(s4);
//将字符串转换成字节数组
String s3="qwertyuuii";
byte[] b=s3.getBytes();
for(int i=0;i<b.length;i++)
{
sop(b[i]);
}
//将基本数据转换成字符串
String s5=new String();
int i=358;
char c ='q';
sop(s5.valueOf(i));
sop(s5.valueOf(c));
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
String的其他方法示例:
class arrayTest3
{
public static void main(String[] args)
{
method_1();
}
public static void method_1()
{
String s="superbug";
//替换字符把bug替换成age
String s1=s.replace("bug","age");
sop(s);
sop(s1);
//切割字符串,并存入数组,依据某个特定点来切割
String s2="zhangsan,lisi,wangwu,zhaoliu";
String s3="zheyimkeiermshuijiaomgg";
String[] arr=s2.split(",");
for(int i=0;i<arr.length;i++)
{
sop(arr[i]);
}
String[] arr1=s3.split("m");
for(int j=0;j<arr1.length;j++)
{
sop(arr1[j]);
}
//获取字符串中的一部分
String s4="hellow java";
sop(s4.substring(2,9));
sop(s4.substring(2));
//将字符串转换成大写和小写,并去除两端的空格
String s5=" ARRAYlistTest.JavA ";
sop(s5.toUpperCase());//转换成大写
sop(s5.toLowerCase());//转换成小写
sop(s5.trim());
String s6=s5.toUpperCase();
sop(s6.trim());
//对两个字符串的自然顺序进行比较
sop(s5.compareTo(s4));
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
StringBuffer和StringBuilder区别:
方法都相同,只不过StringBuffer是同步的,而StringBuilder是不同步的。
以StringBuffer为例:
class stringbufferTest { public static void main(String[] args) { //buffcreate(); //bufferdel(); //bufferget(); //bufferupdate(); //bufferreverse(); //将缓冲区中指定的容器存到指定的字符数组中 StringBuffer sb=new StringBuffer(); sb.append("lisi1234568").append("qwerty").append("asdfgh"); char[] arr=new char[6]; sb.getChars(0,4,arr,1); for(int x=0;x<arr.length;x++) { sop(arr[x]); } } //StringBuffer容器的添加与插入 public static void buffcreate() { StringBuffer sb=new StringBuffer(); sb.append("lisi1234568").append("qwerty").append("asdfgh"); sb.insert(4,"f"); sop(sb); } //StringBuffer容器的删除 public static void bufferdel() { StringBuffer sb=new StringBuffer(); sb.append("lisi1234568").append("qwerty").append("asdfgh"); //sb.delete(0,sb.length());//删除sb容器中的全部数据 sb.deleteCharAt(3);//删除指定位置的字符 sop(sb); } //StringBuffer容器的获取 public static void bufferget() { StringBuffer sb=new StringBuffer(); sb.append("lisi1234568").append("qwerty").append("asdfgh"); sop(sb.charAt(3));//得到容器中指定位置的值 sop(sb.indexOf("i"));//返回指定值在容器中第一次出现的位置 sop(sb.lastIndexOf("i"));//反向返回指定值在容器中第一次出现的位置,即倒过来第一次出现的位置 sop(sb.substring(0,4));//得到该容器中指定的字符串,包含头不包含尾 } //StringBuffer容器的修改 public static void bufferupdate() { StringBuffer sb=new StringBuffer(); sb.append("lisi1234568").append("qwerty").append("asdfgh"); sop(sb); sop("替换后"); sb.replace(0,4,"ggggg");//使用给定的字符串替换容器中的子串,包含头不包含尾 sop(sb); sop("设置后"); sb.setCharAt(4,'f');//修改指定位置的值 sop(sb); } //StringBuffer容器的反转 public static void bufferreverse() { StringBuffer sb=new StringBuffer(); sb.append("lisi1234568").append("qwerty").append("asdfgh"); sop(sb.reverse()); } public static void sop(Object obj) { System.out.println(obj); } }
基本数据包装类
8大基本数据类型都有其对应的包装类
Integer int
Character char
Float float
Double double
Byte byte
Long long
Short short
Boolean boolean
该包装类用于和字符串之间的转化
字符串装换成基本类型
格式:xxx parsexxx(“字符串”);
除了Character以外。
基本类型转字符串
String.valueOf(基本数据类型);或者是基本数据类型+“”即可
System类
常用方法:
static void exit(int status)终止虚拟机运行
static void CurrentTimeMillis 返回一毫秒为单位的当前时间
static Properties getProperties 确定当前系统属性
示例:
import java.util.*; class systemDemo { public static void main(String[] args) { //确定当前系统属性,方法一 Properties prop = System.getProperties(); System.setProperty("mykey","myvalue");//设置指定键指示的系统属性 sop(System.getProperty("os.name"));//获取指定键的指示的系统属性 sop(System.getProperty("mykey")); String value=System.getProperty("GG"); sop("value="+value); /*Set<Object> st = prop.keySet(); Iterator<Object> is= st.iterator(); while(is.hasNext()) { String key=(String)is.next(); String value=(String)prop.get(key); System.out.println(key+"::"+value); }*/ //方法二 /*System.out.println(":-----------------------------------:"); for(Object obj:prop.keySet())//冒号前代表容器中的类型,冒号后代表容器 { String value=(String)prop.get(obj); System.out.println(obj+"::"+value); }*/ } public static void sop(Object obj) { System.out.println(obj); } }
Runtime类:运行进程,不能直接创建Runtime示例,但可以通过静态方法Runtime.getRuntime获取正在运行的对象引用,
示例:
class runtimeDemo
{
public static void main(String[] args) throws Exception
{
Runtime r=Runtime.getRuntime();
r.exec("notepad.exe systemDemo.java");//将Java文件用文本形式打开
}
}
Date与DateFormat,Calendar类
Date类用于表示日期和时间
DateFormat,Calendar类是来解决Date类产生的国际化问题
Calendar类是一个抽象基类
综合应用:
编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,程序计算这一天是星期几,并且计算出是一年中的第几天。
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner; public class Test9 { public static void main(String[] args) { //定义一个键盘输入 Scanner in = new Scanner(System.in); //输出一个提示 System.out.println("请按“yyyy-MM-dd”的格式输入一个日期,格式要正确"); //定义一个字符串接收输入的时间 String s=in.nextLine(); //定义输入格式,必须一样,不然会报异常 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); //定义一个日期类, Date d=null; try { //用DateFormat的转换功能把字符串按照指定格式传给Date d = df.parse(s); } catch(Exception e) { throw new RuntimeException("说了格式要正确,重来吧!!!"); } //获得一个Calendar类,返回类型也是Calendar Calendar c = Calendar.getInstance(); //把日历的时间设置为用户输入进来的时间 c.setTime(d); //输出用户输入的时间 System.out.println("您输入的日期是:"+s); //用get得到日历中的一星期中的天数,因为是以星期天作为第一天,会导致天数不对,使用查表法 int weekday=c.get(Calendar.DAY_OF_WEEK); //得到一年中的天数 int yearday=c.get(Calendar.DAY_OF_YEAR); //定义一个数组 String[] day ={"","星期天","星期一","星期二","星期三","星期四","星期五","星期六"}; //根据上面数组得到具体星期天数 String todayweek = day[weekday]; //输出具体星期天数 System.out.println("这一天是:"+todayweek); //输出第几天 System.out.println("这是一年中的第:"+yearday+"天"); } }
Math类和Random类
Math类几乎包含了所有用于几何和三角的浮点运算方法
示例:
import java.util.*;
class MathDemo
{
public static void main(String[] args)
{
for(int i=0;i<10;i++)
{
int z=(int)(Math.random()*10+1);//返回1到10的随机数
sop(z);
//方法二,util包中有Random类
Random r = new Random();
int s=r.nextInt(10)+1;
sop(s);
}
double d = Math.ceil(-13.35);//ceil返回大于指定数据的最小整数
double d1 = Math.floor(-13.35);//ceil返回小于指定数据的最小整数
long l = Math.round(13.35);//四舍五入
double d2 = Math.pow(2,3);//前面是底数,后面是指数,即2的3次饭
sop(d);
sop(d1);
sop(l);
sop(d2);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
Random类是一个随机数产生器,是按照某种算法产生的,严格意义上来说是伪随机数
示例:
import java.util.*;
class RandomDemo
{
public static void main(String[] args)
{
Random r = new Random();//定义一个随机流对象
for(int i=0;i<=10;i++)//循环打印出随机值
{
System.out.println(r.nextInt(10)+1);//1到10的随机数,包含1,也包含10
}
}
}
总之API文档要多看看,会有很多惊喜的!
相关文章推荐
- java基础面试题
- 如何提高程序员的逼格
- 黑马程序员--iOS--C基础(一)
- 剑指offer-面试题5.从尾到头打印链表
- 黑马程序员---面向对象中的内部类
- 黑马程序员—JAVA基础—String类 javaAPI学习
- 面试时可以向面试官提那些问题
- 推荐!国外程序员整理的 PHP 资源大全
- 剑指offer-面试题4.替换空格
- 告别迷茫与忧伤的程序员
- 面试-阻塞队列及线程池
- 面试-锁相关
- 面试-并发概述
- 面试-JVM
- 黑马程序员—— 6,多态
- 面试-MySQL
- 索引面试题荟萃
- 黑马程序员——java基础——多态
- 黑马程序员----JAVA基础----IO流_1
- 黑马程序员——java基础——接口