API(ApplicationProgrammingInterface)

1.String和StringBuffer类位于java.lang中

Stringx="a"+4+"c";

字符串常量实际上就是一种特殊的匿名String对象

System.in.read();可以从键盘读取一个字节,需要捕捉IOException异常

[code="java"]publicclassReadLine
{
publicstaticvoidmain(String[]args)
{
byte[]buf=newbyte[1024];
StringstrInfo=null;
intpos=0;
intch=0;
while(true)
{
try{
ch=System.in.read();
}catch(IOExceptione){
e.printStackTrace();
}
switch(ch)
{
case'/r':
break;
case'/n':
strInfo=newString(buf,0,pos);
if(strInfo.equals("bye"))
{
return;
}
else
{
System.out.println(strInfo);
pos=0;
break;
}
default:
buf[pos++]=(byte)ch;
break;
}
}
}
}

构造方法:String(byte[]bytes,intoffset,intlength)

indexOf(intch)方法:用于返回字符在字符串首次出现的位置,没有返回-1

Substring(intbeginIndex,intendIndex):返回其间的字符

toString():返回一个String类型对象

2.基本数据类型的对象包装类

许多方法中都使用了Object对象,如果需要使用这样的方法就必须使用包装类

第三种方法与前两种不同的是第三种方法转换之后是一个Integer类型

集合类用于存储一组对象,其中每个对象称之为元素,经常会用到的 Vector,Enumeration,ArrayList,Collection,lterator,Set,List等

如果不能预先确定预先要保存的对象的数目,或者需要方便获得某个对象的存放 位置时,可以选择Vector类

[code="java"]publicclassTestVector
{
@SuppressWarnings("unchecked")
publicstaticvoidmain(Stringargs[])
{
Vectorv=newVector();
intb=0;
System.out.println("pleaseenternumber:");
while(true)
{
try{
b=System.in.read();
}catch(IOExceptione){
e.printStackTrace();
}
if(b=='/r'||b=='/n')
{
break;
}
else
{
intnum=b-'0';
v.addElement(newInteger(num));
//向Vector对象中加入这个整数对象
}
}
intsum=0;
Enumeratione=v.elements();
//v.elements()返回一个Enumeration接口对象
while(e.hasMoreElements()){//如果还有元素,指示器将返回true
IntegerintObj=(Integer)e.nextElement();
//nextElement()返回的是一个对象
//返回指示器正在指向的那个对象,并将指示器指向下一个对象
sum+=intObj.intValue();
//intValue可以把Integer对象转换为int类型
}
System.out.println(sum);
}
}

(2).Collection接口与Iterator接口

[code="java"]importjava.io.IOException;
importjava.util.ArrayList;
importjava.util.Iterator;

publicclassTestCollection
{
@SuppressWarnings("unchecked")
publicstaticvoidmain(Stringargs[])
{
ArrayListv=newArrayList();
intb=0;
System.out.println("pleaseenternumber:");
while(true)
{
try{
b=System.in.read();
}catch(IOExceptione){
e.printStackTrace();
}
if(b=='/r'||b=='/n')
{
break;
}
else
{
intnum=b-'0';
v.add(newInteger(num));
//向ArrayList对象中加入这个整数对象
}
}
intsum=0;
Iteratore=v.iterator();
//v.iterator()返回一个Enumeration接口对象
while(e.hasNext()){//如果还有元素,指示器将返回true
IntegerintObj=(Integer)e.next();
//next()返回的是一个对象
//返回指示器正在指向的那个对象,并将指示器指向下一个对象
sum+=intObj.intValue();
//intValue可以把Integer对象转换为int类型
}
System.out.println(sum);
}
}

以下是JDK文档中的提示:

(3).Collection,Set,List区别:

Collection各对象之间没有指定的顺序,允许有重复元素和多个null元素对象

List各元素对象之间有指定顺序,允许重复对象,和多个null元素对象

[code="java"]importjava.util.ArrayList;
importjava.util.Collections;
publicclassTestSort
{
@SuppressWarnings("unchecked")
publicstaticvoidmain(String[]args)
{
ArrayListal=newArrayList();
al.add(newInteger(1));
al.add(newInteger(3));
al.add(newInteger(2));
System.out.println(al.toString());
Collections.sort(al);//用来操作集合类对象
System.out.println(al.toString());
}
}

(4).Hashtable类

代码如下:

[code="java"]importjava.util.Enumeration;
importjava.util.Hashtable;

publicclassHashtableTest
{
@SuppressWarnings("unchecked")
publicstaticvoidmain(String[]args)
{
Hashtablenumbers=newHashtable();
numbers.put(newMyKey("zhangsan",18),newInteger(1));
numbers.put(newMyKey("lisi",15),newInteger(2));
numbers.put(newMyKey("wangwu",20),newInteger(3));
Enumeratione=numbers.keys();
//取出所有关键字的集合(Integer)
while(e.hasMoreElements()){
MyKeykey=(MyKey)e.nextElement();
System.out.print(key.toString()+"=");
//key隐式的调用toString方法,可以直接写成key...
System.out.println(numbers.get(key));
//这里的key是直接从hastable里面取出来的,不用再比较了
//key是hastable的一部分,这样检索比较方便
}
System.out.println(numbers.get(new MyKey("zhangsan",18))); }
}
publicclassMyKey
{
privateStringname=null;
privateintage=0;
publicMyKey(Stringstring,inti){
this.name=string;
this.age=i;
}
publicStringtoString()
{
returnname+","+age;
}
//equals方法,hashCode方法并不是被程序调用的,而是被get方法调用
//numbers.get(key)
publicbooleanequals(Objectobj)
{
if(objinstanceofMyKey)
{
MyKeyobjTemp=(MyKey)obj;
if(name.equals(objTemp.name)&&age==objTemp.age)
{
return true;
}
else
{
return false;
}
}
else{
returnfalse;
}
}
publicinthashCode(){
returnname.hashCode()+age;
}
}

(5).Properties类是Hashtable的子类

示例代码:

#Programisused:

count=0

[code="java"]importjava.util.Properties;
importjava.io.*;

publicclassPropertiesFile
{
publicstaticvoidmain(Stringargs[])
{
Propertiessettings=newProperties();
try{
settings.load(newFileInputStream("C://Users//姜康 //Desktop//java//count.txt"));
}catch(IOExceptione){
e.printStackTrace();
settings.setProperty("count",String.valueOf(0));
System.out.println("!!");
}
//settings.get("count");需要转换成字符串
intc=Integer.parseInt(settings.getProperty("count"))+1;
//getProperty直接得到一个字符串
System.out.println("这个第"+c+"次运行");
//settings.put("count",newInteger(c).toString());
//Integer(c).toString()把整数类型转换为string类型
//put方法可以接收非字符串对象做参数,setProperty只能是字符串
settings.setProperty("count",newInteger(c).toString());
try{
settings.store(newFileOutputStream("C://Users//姜康 //Desktop//java//count.txt"),"Programisused:");
}catch(IOExceptione){
System.out.println(e.getMessage());
}
//把properties属性列表加入到输出流中,第二个参数是设置标题
}
}
(6).System与Runtime类

JVM的系统属性

Runtime类

不能通过new来创建Runtime

实例程序:

[code="java"]importjava.util.*;
publicclassTestProperties、
{
@SuppressWarnings("unchecked")
publicstaticvoidmain(String[]args)
{
Propertiessp=System.getProperties();
Enumeratione=sp.propertyNames();
while(e.hasMoreElements())
{
Stringkey=(String)e.nextElement();
System.out.println(key+"="+sp.getProperty(key));
}
}
}
下面一个例子是打开一个文件,然后几秒钟后关闭

[code="java"]packageapi.test;
importjava.io.IOException;
importjava.util.*;

publicclassTestProperties
{
@SuppressWarnings("unchecked")
publicstaticvoidmain(String[]args)
{
//Process为一个类,代表JVM启动的一个子线程
Processp=null;
try{
p = Runtime.getRuntime().exec("notepad.exeC://Users// 姜康//Desktop//java//Test.java");
}catch(IOExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
try{
Thread.sleep(5000);
}catch(InterruptedExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
p.destroy();
}
}

(7).与日期和时间有关的类

Calendar类:add()方法

Set()方法修改年月日...

GregorianCalendar子类

@SuppressWarnings("static-access")

Calendarc1=Calendar.getInstance();

System.out.print(c1.get(c1.YEAR)+"年"+c1.get(c1.MONTH)+"月"+c1.get(Calendar.DAY_OF_MONTH)+"日");

c1.add(c1.DAY_OF_YEAR,315);

System.out.println(c1.get(c1.HOUR)+":"+c1.get(c1.MINUTE)+":"+c1.get(c1.SECOND));

}

[code="java"]importjava.util.Date;
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
publicclassTestCalendar
{
publicstaticvoidmain(String[]args)
{
SimpleDateFormatsdf1=new
SimpleDateFormat("yyyy-mm-dd");
SimpleDateFormatsdf2=new
SimpleDateFormat("yyyy年mm月dd");
Dated=null;
try
{
d=sdf1.parse("2003-03-15");
}catch(ParseExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
System.out.println(sdf2.format(d));
//用于把指定对象的值输出
}
}
(8).Timer/TimerTask类

与每个Timer对象相对应的是单个后台线程,用于顺序地执行所有计时器任务。计时器任务应该迅速完成。如果完成某个计时器任务的时间太长,那么它会“独占”计时器的任务执行线程。因此,这就可能延迟后续任务的执行,而这些任务就可能“堆在一起”,并且在上述令人讨厌的任务最终完成时才能够被快速连续地执行。

Schedule(TimerTasktask,longdelay)

TimerTask实现Runable接口,要执行的任务由它里面实现的run方法完成

[code="java"]importjava.util.Timer;
importjava.util.TimerTask;
publicclassTestTimer{
publicstaticvoidmain(Stringargs[])
{
//使用匿名对象来完成,无法访问到Timer对象
/*newTimer().schedule({
//需要覆盖子类的run方法
publicvoidrun(){
try{
Runtime.getRuntime().exec("calc.exe");
}catch(Exceptione){
e.printStackTrace();
}
}
},1000);*/
//结束任务线程的代码
Timertm=newTimer();
tm.schedule(newMyTimerTask(tm),3000);
}
}
classMyTimerTaskextendsTimerTask{
@SuppressWarnings("unused")
privateTimertm=null;
//传递过来的是tm对象
publicMyTimerTask(Timertm){
this.tm=tm;
}
publicvoidrun(){
try{
Runtime.getRuntime().exec("calc.exe");
}catch(Exceptione){
e.printStackTrace();
}
tm.cancel();
//可以结束线程
}
}

(9).Math与Random类

Random类是一个伪随机数产生器

java API学习记录相关推荐

  1. Java设计模式学习记录-解释器模式

    前言 这次介绍另一个行为模式,解释器模式,都说解释器模式用的少,其实只是我们在日常的开发中用的少,但是一些开源框架中还是能见到它的影子,例如:spring的spEL表达式在解析时就用到了解释器模式,以 ...

  2. SIEMENS PLC Web API 学习记录

    SIEMENS PLC Web API 学习记录 为顺应时代发展,西门子为 S7-200SMART/1200/1500 PLC 添加IT通讯所需要的 Web API.(由于S7-200 SMART 新 ...

  3. Java设计模式学习记录-单例模式

    前言 已经介绍和学习了两个创建型模式了,今天来学习一下另一个非常常见的创建型模式,单例模式. 单例模式也被称为单件模式(或单体模式),主要作用是控制某个类型的实例数量是一个,而且只有一个. 单例模式 ...

  4. Java SE 学习记录06

    @学习记录 开始学习Java 遵从同学的指导,从Java se开始学习 黑马的JavaSE零基础入门 day06-01 面向对象 package day06;import java.util.Arra ...

  5. Java SE 学习记录——进阶版11

    @学习记录 开始学习Java 遵从同学的指导,从Java se开始学习 黑马的JavaSE零基础入门[网络编程] 第一章 网络编程入门 1.1 软件结构 22-02 软件结构 1.2 网络通信协议 2 ...

  6. Java注解学习记录(反射也能实现ButterKnife)

    文章目录 什么是注解(Annotation) 注解有什么用 注解怎么用 注解关键字 @interface 注解属性的数据类型 元注解 @Retention @Target @Documented @I ...

  7. Java 8 Stream API学习记录

    Stream简介 1.Java 8引入了全新的Stream API.这里的Stream和I/O流不同,它更像具有Iterable的集合类,但行为和集合类又有所不同. 2.stream是对集合对象功能的 ...

  8. java之学习记录 5 - 1 - 模拟拉勾项目介绍与后台系统搭建

    项目架构(此文章只供个人学习的记录) 1 项目介绍 拉勾教育后台管理系统,是提供给拉勾教育的相关业务人员使用的一个后台管理系统, 业务人员可以在这个后台管理系统中,对课程信息.讲师信息. 学员信息等数 ...

  9. Java 基础学习记录

    Java 基础 DAY1 1.关于进制的运算 2.关于存储单元 3.关于CMD的基本命令 4.JRE与JDK 5.Java环境变量 6.程序开发步骤 7.HelloWorld 8.标识符 9.常量 1 ...

最新文章

  1. Ninja Blocks物联网平台简介
  2. SQL SERVER 系列(7)数据表排序和聚集函数
  3. ubuntu防火墙操作
  4. 分析udp数据报_深入的理解UDP编程
  5. 良好的编码风格 java_关于java:编码风格是否遵循良好做法
  6. Asp .Net Mvc在DeBug模式下设置自定义IP
  7. React常用的命令解析
  8. The process cannot access the file '' because it is being used by another process.....
  9. moodle4.04无法上传中文文件名
  10. Android腾讯微博开放平台入门(四)发表一条文字微博
  11. android 源码编译adb,ADB 源程序从android源码中提取
  12. 管理linux文件的pe软件,诺达佳U盘启动盘制作工具v5.51(UD+EFI三分区linuxPE+winPE版)...
  13. sipp命令 各参数含义
  14. html cat文本,网页管理好管家CatHtml
  15. tao的开源代码_获取并编译TAO
  16. springboot实现pdf里面插入图片
  17. 拯救懒癌、码农、减肥人士的代餐,有多大的掘金前景
  18. 射频:杂散和谐波的区别
  19. Stronger Data Poisoning Attacks Break Data Sanitization Defenses
  20. 软件测试 如何测试qq,一个新项目如何进行测试?——QQ对话录

热门文章

  1. 简洁介绍信号量sem_t的起因、原理与使用
  2. 第一章笔记MySQL数据库的安装目录详解
  3. 河南省专利申请费用一览表,郑州专利申请的费用
  4. 数电学习(六、时序逻辑电路)(三)
  5. 牛客网 2018校招真题 美团点评 K的倍数
  6. It‘s highly recommended that you fix the library with ‘execstack -c <libfile>‘, or link it with ‘-z
  7. opencv的mat赋值_OpenCV Mat 类型定义和赋值
  8. 冠军斩获10万奖金!首届“域见杯”医检AI开发者大赛精彩落幕
  9. [附源码]计算机毕业设计的高校资源共享平台Springboot程序
  10. python 股票指标库talib_talib金融库怎么用?