java API学习记录
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学习记录相关推荐
- Java设计模式学习记录-解释器模式
前言 这次介绍另一个行为模式,解释器模式,都说解释器模式用的少,其实只是我们在日常的开发中用的少,但是一些开源框架中还是能见到它的影子,例如:spring的spEL表达式在解析时就用到了解释器模式,以 ...
- SIEMENS PLC Web API 学习记录
SIEMENS PLC Web API 学习记录 为顺应时代发展,西门子为 S7-200SMART/1200/1500 PLC 添加IT通讯所需要的 Web API.(由于S7-200 SMART 新 ...
- Java设计模式学习记录-单例模式
前言 已经介绍和学习了两个创建型模式了,今天来学习一下另一个非常常见的创建型模式,单例模式. 单例模式也被称为单件模式(或单体模式),主要作用是控制某个类型的实例数量是一个,而且只有一个. 单例模式 ...
- Java SE 学习记录06
@学习记录 开始学习Java 遵从同学的指导,从Java se开始学习 黑马的JavaSE零基础入门 day06-01 面向对象 package day06;import java.util.Arra ...
- Java SE 学习记录——进阶版11
@学习记录 开始学习Java 遵从同学的指导,从Java se开始学习 黑马的JavaSE零基础入门[网络编程] 第一章 网络编程入门 1.1 软件结构 22-02 软件结构 1.2 网络通信协议 2 ...
- Java注解学习记录(反射也能实现ButterKnife)
文章目录 什么是注解(Annotation) 注解有什么用 注解怎么用 注解关键字 @interface 注解属性的数据类型 元注解 @Retention @Target @Documented @I ...
- Java 8 Stream API学习记录
Stream简介 1.Java 8引入了全新的Stream API.这里的Stream和I/O流不同,它更像具有Iterable的集合类,但行为和集合类又有所不同. 2.stream是对集合对象功能的 ...
- java之学习记录 5 - 1 - 模拟拉勾项目介绍与后台系统搭建
项目架构(此文章只供个人学习的记录) 1 项目介绍 拉勾教育后台管理系统,是提供给拉勾教育的相关业务人员使用的一个后台管理系统, 业务人员可以在这个后台管理系统中,对课程信息.讲师信息. 学员信息等数 ...
- Java 基础学习记录
Java 基础 DAY1 1.关于进制的运算 2.关于存储单元 3.关于CMD的基本命令 4.JRE与JDK 5.Java环境变量 6.程序开发步骤 7.HelloWorld 8.标识符 9.常量 1 ...
最新文章
- Ninja Blocks物联网平台简介
- SQL SERVER 系列(7)数据表排序和聚集函数
- ubuntu防火墙操作
- 分析udp数据报_深入的理解UDP编程
- 良好的编码风格 java_关于java:编码风格是否遵循良好做法
- Asp .Net Mvc在DeBug模式下设置自定义IP
- React常用的命令解析
- The process cannot access the file '' because it is being used by another process.....
- moodle4.04无法上传中文文件名
- Android腾讯微博开放平台入门(四)发表一条文字微博
- android 源码编译adb,ADB 源程序从android源码中提取
- 管理linux文件的pe软件,诺达佳U盘启动盘制作工具v5.51(UD+EFI三分区linuxPE+winPE版)...
- sipp命令 各参数含义
- html cat文本,网页管理好管家CatHtml
- tao的开源代码_获取并编译TAO
- springboot实现pdf里面插入图片
- 拯救懒癌、码农、减肥人士的代餐,有多大的掘金前景
- 射频:杂散和谐波的区别
- Stronger Data Poisoning Attacks Break Data Sanitization Defenses
- 软件测试 如何测试qq,一个新项目如何进行测试?——QQ对话录
热门文章
- 简洁介绍信号量sem_t的起因、原理与使用
- 第一章笔记MySQL数据库的安装目录详解
- 河南省专利申请费用一览表,郑州专利申请的费用
- 数电学习(六、时序逻辑电路)(三)
- 牛客网 2018校招真题 美团点评 K的倍数
- It‘s highly recommended that you fix the library with ‘execstack -c <libfile>‘, or link it with ‘-z
- opencv的mat赋值_OpenCV Mat 类型定义和赋值
- 冠军斩获10万奖金!首届“域见杯”医检AI开发者大赛精彩落幕
- [附源码]计算机毕业设计的高校资源共享平台Springboot程序
- python 股票指标库talib_talib金融库怎么用?