何小伟-高手总结java常用API
- 格式:doc
- 大小:222.00 KB
- 文档页数:27
Java必知必会的20种常⽤类库和API 个⼈感觉⼯具类对⽇常开发是很重要的,所以推荐⼀下这篇⽂章,虽然有的类库过时了 本⽂总结了⽇志、JSON解析、单测、XML解析、字节码处理、数据库连接池、集合类、邮件、加密、嵌⼊式SQL数据库、JDBC故障诊断以及序列化等20个⽅⾯的常⽤类库。
都是你⽇常开发经常可能要⽤到的,现在不⽤不要紧,但是你要知道有这么⼀篇⽂章可以供你参考。
⼀、⽇志相关类库 ⽇志库是很常见的,因为你在每⼀个项⽬中都需要他们。
打印⽇志是服务器端应⽤中最重要的事情,因为⽇志是你了解你的程序发⽣了什么的唯⼀途径。
尽管JDK附带⾃⼰的⽇志库,但是还是有很多更好的选择可⽤,例如 Log4j、SLF4j 和LogBack。
Java开发⼈员应该熟悉⽇志记录的利弊,并且了解为什么SLF4J要⽐Log4J要好。
⼆、JSON解析库 在当今世界的web服务和物联⽹中(IoT),JSON已经取代了XML,成为从客户端到服务器传送信息的⾸选协议。
有⼀个好消息和⼀个坏消息。
坏消息是JDK没有提供JSON库。
好消息是有许多优秀的第三⽅库可以⽤来解析和创建JSON消息,如Jackson、Gson 个⼈感觉fastjson也挺好的三、单元测试库 单元测试技术的使⽤,是区分⼀个⼀般的开发者和好的开发者的重要指标。
程序员经常有各种借⼝不写单元测试,但最常见的借⼝就是缺乏经验和知识。
常见的单测框架有JUnit,Mockito和PowerMock。
只⽤过Junit,尴尬。
四、通⽤类库 有⼏个很好的第三⽅通⽤库可供Java开发⼈员使⽤,例如Apache Commons和Google Guava(真的很好的类库)。
我会经常在我的代码中使⽤这些通⽤类库,因为这些类库都是经过⽆数开发者实践过的,⽆论是实⽤性还是在性能等⽅⾯都是最佳的。
五、Http 库 我不是很喜欢JDK的⼀个重要原因就包括他们缺乏对HTTP的⽀持。
虽然可以使⽤包类,但是这和直接使⽤像Apache HttpClient和HttpCore等开源类库⽐起来⿇烦太多了。
JavaAPI的常⽤包
1、ng 语⾔包
Java语⾔的核⼼类库包含Java语⾔必不可少的系统类定义,包括Object类、基本数据类型封装类、数学运算、字符串、线程、异常处理等2、java.util 实⽤包
⼯具类库,包含⽇期类、集合类等
3、java.awk 抽象窗⼝类
提供构建图形⽤户界⾯的类库,包含组件、时间及绘图功能
4、java.applet
实现applet应⽤程序
5、java.text ⽂本包
Format、DateFormat、SimpleDateFormat等类提供各种⽂本或⽇期格式
6、java.io 输⼊/输出流包
提供标准输⼊/输出及⽂件操作类库
7、 ⽹络包
提供与⽹络编程有关的类库,包括Socket通信⽀持、Internet访问⽀持等
8、java.sql
提供数据库应⽤功能的类库
9、javax.swing
扩充和增强⽤户图形界⾯功能的类库。
java中常用的api方法Java是一种面向对象的编程语言,提供了丰富的API(Application Programming Interface),使开发者能够方便地使用Java进行软件开发。
以下是Java中一些常用的API方法的简要介绍:1.字符串操作- `length(`:返回字符串的长度。
- `charAt(int index)`:返回指定位置的字符。
- `substring(int beginIndex, int endIndex)`:返回从指定位置开始到结束位置的子串。
- `split(String regex)`:按照指定的正则表达式拆分字符串。
- `trim(`:去除字符串两端的空格。
2.集合框架- `add(E element)`:向集合中添加元素。
- `remove(Object o)`:从集合中移除指定的元素。
- `size(`:返回集合中元素的数量。
- `contains(Object o)`:判断集合是否包含指定的元素。
- `iterator(`:返回用于遍历集合的迭代器。
3.文件操作- `File(String pathname)`:根据指定的路径创建File对象。
- `exists(`:判断文件或目录是否存在。
- `isFile(`:判断指定路径是否为文件。
- `isDirectory(`:判断指定路径是否为目录。
- `createNewFile(`:创建新文件。
- `delete(`:删除指定的文件或目录。
4.输入输出- `println(String str)`:输出字符串并换行。
- `print(String str)`:输出字符串。
- `next(`:从控制台读取下一个字符串。
- `nextInt(`:从控制台读取下一个整数。
- `close(`:关闭输入或输出流。
5.网络编程- `Socket(String host, int port)`:根据指定的主机名和端口创建Socket对象。
Java之常⽤APIAPI概述什么是APIAPI (Application Programming Interface) :应⽤程序编程接⼝java中的API指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关⼼这些类是如何实现的,只需要学习这些类如何使⽤即可,我们可以通过帮助⽂档来学习这些API如何使⽤。
Math1、Math类概述Math 包含执⾏基本数字运算的⽅法2、Math中⽅法的调⽤⽅式Math类中⽆构造⽅法,但内部的⽅法都是静态的,则可以通过类名.进⾏调⽤3、Math类的常⽤⽅法public static int abs(int a)返回参数的绝对值public static double ceil(double a)返回⼤于或等于参数的最⼩double值,等于⼀个整数public static double floor(double a)返回⼩于或等于参数的最⼤double值,等于⼀个整数public static int round(float a)按照四舍五⼊返回最接近参数的intpublic static int max(int a,int b)返回两个int值中的较⼤值public static int min(int a,int b)返回两个int值中的较⼩值public static double pow (double a,double b)返回a的b次幂的值public static double random()返回值为double的正值,[0.0,1.0)Systempublic static void exit(int status) 终⽌当前运⾏的 Java 虚拟机,⾮零表⽰异常终⽌public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)从指定源数组中复制⼀个数组,复制从指定的位置开始,到⽬标数组的指定位置结束。
Java常用API总结分享(二)4.数值,字符,布尔对象与简单类型的操作简单的对照表如下:Object Primitive 范围Number Long long -9223372036854775808 to 9223372036854775807 Integer int -2147483648 to 2147483647Short short -32768 to 32767Byte byte -128 to 127Double doubleFloat floatCharacter char '\u0000' to '\uffff'Boolean boolean false and true与C等其它语言不同的是数值的范围不随平台的改变而改变,这就保证了平台之间的统一性,提高了可移植性。
Number: Number本身是个抽象类,不能直接使用,所有直接从Number继承下来的子类都有以下几种方法:? byte byteValue() 返回字节值? double doubleValue() 返回double值? float floatValue() 返回float值? int intValue() 返回float值? long longValue() 返回long值? short shortValue() 返回short值在需要通过Object来取得简单数据类型的值的时候就得用到以上的方法,不过我不推荐不同类型之间的取值,比如Long型的Object不要直接去调用intValue(),精度可能会丢失。
如果想通过String来得到一个数值类型的简单类型值,一般在每个Number的类里面都有一个parseXXX(String)的静态方法,如下:? byte Byte.parseByte(String s)? double Double.parseDouble(String s)? float Float.parseFloat(String s)? int Integer.parseInt(String s)? long Long.parseLong(String s)? short Short.parseShort(String s)如果想直接从String得到一个Number型的Object,则每个Number类里面都有valueOf(String s) 这个静态方法。
Java编程规范
包名:包名是全小写的名词,中间可以由点分隔开,
例如:java.awt.event; java.io.*;
类名、接口名:首字母大写,通常由多个单词合成一个类名,要求每个单词的首字母也要大写,
例如class HelloWorld; interface Collection
方法名:往往由多个单词合成,第一个单词通常为动词,首字母小写,中间的每个单词的首字母都要大写,例如:setName,getUserName;
变量名:全小写,一般为名词,例如:length;
常量名:基本数据类型的常量名为全大写,如果是由多个单词构成,可以用下划线隔开。
例如:int YEAR, int WEEK_OF_MONTH。
注释
Java程序常见错误解析错误
1:类名与文件名不一致
错误2:main方法四要素缺少
错误3:Java代码区分大小写
错误4:缺少分号
Java程序小结
(1) Java的源文件必须以扩展名 .java结束,源文件的基本组成部分是类。
(2) 源文件名必须与公有类的名字相同,一个源文件中至多只能有一个public的class声明。
(3) Java程序的执行入口是main方法,它有固定的书写格式:
public static void main(String [] args){ ... }
(4) Java语言严格区分大小写。
(5) 每条语句都以分号(;)结束。
(6) 空格只能是半角空格符或是Tab字符。
Java第08天常用API文章目录◆API概述◆Scanner类◆Object类与String类◆StringBuilder类第1章API概述1.1A PI概念API(Application Programming Interface) : 应用程序编程接口也称之为: 帮助文档编写一个机器人程序去控制机器人踢足球,程序就需要向机器人发出向前跑、向后跑、射门、抢球等各种命令,没有编过程序的人很难想象这样的程序如何编写。
但是对于有经验的开发人员来说,知道机器人厂商一定会提供一些用于控制机器人的Java类,这些类中定义好了操作机器人各种动作的方法。
其实,这些Java类就是机器人厂商提供给应用程序编程的接口,大家把这些类称为API。
本章涉及的Java API指的就是JDK中提供的各种功能的Java类1.2快速使用API步骤:A:打开帮助文档B:点击显示,找到索引,看到输入框C:你要学习什么内容,你就在框框里面输入什么内容举例:RandomD:看包ng包下的类在使用的时候是不需要导包的E:看类的描述Random类是用于生成随机数的类F:看构造方法Random():无参构造方法Random r = new Random();G:看成员方法public int nextInt(int n):产生的是一个[0,n)范围内的随机数调用方法:看返回值类型:人家返回什么类型,你就用什么类型接收看方法名:名字不要写错了看形式参数:人家要几个参数,你就给几个,人家要什么数据类型的,你就给什么数据类型的int number = r.nextInt(100);第2章Scanner类与Object类2.1Scanner类2.1.1Scanner类作用用Scanner类的方法可以完成接收键盘录入的数据,接收的数据类型为基本数据类型和字符串类型.2.1.2Scanner类接受键盘录入的字符串2.1.2.1案例代码一:package com.itheima;import java.util.Scanner;/** Scanner:用于获取键盘录入数据。
Java常用API的运用,效率及技巧1. Java面向对象基本概念2. System3. String, StringBuffer4. 数值,字符,布尔对象与简单类型的操作5. Class, ClassLoader6. Java IO系统7. Java集合类8. ResourceBundle, Properties9. Exceptions10. JDBC类库11. 常用设计模式1. Java面向对象基本概念Java基本上是面向对象的程序设计语言, 除了一些简单类型(primitive)的变量以外,一切都是对象, 程序是对象的组合, 每个对象都有自己的空间, 并且每个对象都有一种类型, 同一类所有对象都能接受相同的消息。
下面只对Java中对象的结构作简单的说明: 类(class): class是定义类的关键字, 类中包含类变量, 方法, 内部类,内部接口等。
由class可以生成类的实例, 即一个个对象。
如果一个类的成员被定义成static的,则这个成员不专属于任何对象, 而是属于这个类, 所有的对象共享这个成员。
抽象类(abstract class): 抽象类不能直接生成一个实例, 抽象类中必需有方法是abstract的,抽象类的意思就是它实现了一部分的方法, 而定义为abstract的方法则需要在它的字类中去实现。
接口(interface): 接口可以理解为纯抽象的类, 它的每个方法都是未实现的, 它可以有成员变量, 但必须是static的。
一个类如果从这个接口继承(implements)则它必须实现这个接口的所有方法。
继承类用关键字:extends,继承接口用关键字:implements。
一个类只能从一个类继承下来,但可以从多个接口继承(类似于C++的多重继承)。
字类可以覆盖父类的方法(method), 但不能覆盖父类的成员变量(field)。
如果父类的方法为final或static的则不能被覆盖。
java api总结Java API(Application Programming Interface,应用程序编程接口)是Java平台提供的一系列类、方法和工具集,用于开发Java应用程序。
Java API包括多个不同领域的库,提供了丰富的功能和工具,涵盖了从基本的数据结构到高级的网络和图形处理等各种功能。
下面是Java API中一些重要的模块和功能1:Java标准库(Java Standard Edition,Java SE)ng:Java核心类,包括基本的数据类型、异常处理、线程和运行时环境等。
java.util:提供集合框架(如List、Map、Set)、日期时间处理、随机数生成等工具类。
java.io:用于文件和流的输入输出操作。
:网络编程相关类,支持Socket、URL、URLConnection等。
java.awt和javax.swing:图形用户界面(GUI)开发类,用于创建图形界面应用程序。
2:Java企业版API(Java Enterprise Edition,Java EE)Servlet:用于开发Web应用程序的Java组件。
JSP(JavaServer Pages):用于构建动态Web页面的Java技术。
EJB(Enterprise JavaBeans):用于构建分布式企业级应用程序的服务器端组件。
3:Java数据库连接(JDBC):用于Java应用程序与各种关系型数据库进行交互和操作的API。
4:Java安全性API:用于处理加密、数字签名、安全认证等安全相关操作的API,如java.security和javax.crypto。
5:其他API:Java还有许多其他领域的API,如XML处理(javax.xml)、国际化和本地化(java.util.Locale)、并发编程(java.util.concurrent)等。
Java API的广泛性和丰富性使得开发者可以利用这些现成的工具和库来构建各种类型的应用程序,从基本的控制台应用到复杂的企业级解决方案。
JAVA-基础-常⽤API(Math类,Arrays类,⼤数据运算) Math类Math 类是包含⽤于执⾏基本数学运算的⽅法的数学⼯具类,如初等指数、对数、平⽅根和三⾓函数。
其所有⽅法均为静态,且⼀般不会创建对象l abs⽅法,结果都为正数double d1 = Math.abs(-5); // d1的值为5double d2 = Math.abs(5); // d2的值为5l ceil⽅法,结果为⽐参数值⼤的最⼩整数的double值double d1 = Math.ceil(3.3); //d1的值为 4.0double d2 = Math.ceil(-3.3); //d2的值为 -3.0double d3 = Math.ceil(5.1); // d3的值为 6.0l floor⽅法,结果为⽐参数值⼩的最⼤整数的double值double d1 = Math.floor(3.3); //d1的值为3.0double d2 = Math.floor(-3.3); //d2的值为-4.0double d3 = Math.floor(5.1); //d3的值为 5.0l max⽅法,返回两个参数值中较⼤的值double d1 = Math.max(3.3, 5.5); //d1的值为5.5double d2 = Math.max(-3.3, -5.5); //d2的值为-3.3l min⽅法,返回两个参数值中较⼩的值double d1 = Math.min(3.3, 5.5); //d1的值为3.3double d2 = Math.max(-3.3, -5.5); //d2的值为-5.5l pow⽅法,返回第⼀个参数的第⼆个参数次幂的值double d1 = Math.pow(2.0, 3.0); //d1的值为 8.0double d2 = Math.pow(3.0, 3.0); //d2的值为27.0l round⽅法,返回参数值四舍五⼊的结果double d1 = Math.round(5.5); //d1的值为6.0double d2 = Math.round(5.4); //d2的值为5.0l random⽅法,产⽣⼀个⼤于等于0.0且⼩于1.0的double⼩数double d1 = Math.random(); Arrays类此类包含⽤来操作数组(⽐如排序和搜索)的各种⽅法。
Java常用类(API)石凤贵【知识点】理解Java API的概念,了解Object类,基本类型的封装类,熟悉String类和StringBuffer类,Hashtable与Properties类,System类与Runtime类,Date类、Calendar类、Math类、BigInteger 类,Math与Random类。
提示:查阅JDK API【内容】一、Object类类 Object 是类层次结构的根类。
每个类都使用 Object 作为超类。
所有对象(包括数组)都实现这个类的方法。
Object类的常用方法:equals()、getClass()、hashCode()、notify()、notifyAll()、toString()、wait();当用户自定义类时,要覆盖从父类Object继承过来的toString()方法,否则将得不到用户可理解的运行结果。
二、基本类型的封装类1、基本类型Java基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型。
它们是我们编程中使用最频繁的类型。
基本类型共有九种,它们分别都有相对应的包装类。
对于基本类型void以及它的包装类ng.Void,我们都无法直接进行操作。
基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。
数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。
JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。
对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了基本类型存储在栈中,因此它们的存取速度要快于存储在堆中的对应包装类的实例对象。
从Java5.0(1.5)开始,JAVA虚拟机(Java Virtual Machine)可以完成基本类型和它们对应包装类之间的自动转换。
Java常⽤API(Math类) Java常⽤API(Math类)
Math类的作⽤
ng.Math 类包含⽤于执⾏基本数学运算的⽅法,如初等指数、对数、平⽅根和三⾓函数。
类似这样的⼯具
类,其所有⽅法均为静态⽅法,并且不会创建对象,调⽤起来⾮常简单。
Math类的常⽤⽅法
public static double abs(double a );返回绝对值
public static double ceil(double a) :返回⼤于等于参数的最⼩的整数。
public static double floor(double a) :返回⼩于等于参数最⼤的整数
public static long round(double a) :返回最接近参数的 long。
(相当于四舍五⼊⽅法)
下⾯通过⼀段代码来带读者们使⽤
1public class Test {
2public static void main(String[] args) {
3double a=-5.4;
4 System.out.println("绝对值是:"+Math.abs(a));
5 System.out.println("向下取整:"+Math.floor(a));
6 System.out.println("向上取整:"+Math.ceil(a));
7 System.out.println("四舍五⼊:"+Math.round(a));
8
9 }
10 }
以上就是Math类的⼀些基本操作,更多⽅法查询API⽂档
若有错误还请各位读者批评指正。
Java的常⽤APIObject类1.toString⽅法在我们直接使⽤输出语句输出对象的时候,其实通过该对象调⽤了其toString()⽅法。
2.equals⽅法⽅法摘要:类默认继承了Object类,所以可以使⽤Object类的equals⽅法boolean equals(Object obj)指⽰其他某个对象是否与此对象“相等”。
equalse⽅法源码:public boolean equals(Object obj){return (this == obj);}参数:Object obj:可以传递任意的对象== ⽐较运算符,返回的是⼀个布尔值 true false基本数据类型:⽐较的是值引⽤数据类型:计较的是两个对象的地址值 Data类java.util.Date:表⽰⽇期和时间的类类Date 表⽰特定的瞬间,精确到毫秒。
毫秒:千分之⼀秒 1000毫秒=1秒把⽇期转换成毫秒:当前的⽇期:2019-07-18时间原点(0毫秒):1970-01-01 00:00:00(英国格林威治)就是计算当前⽇期到时间原点之间⼀共经历了多少毫秒注意:中国属于东⼋区,会把时间增加8个⼩时1970-01-01 08:00:00把毫秒转换为⽇期:1天 = 24*60*60 = 86400秒 = 86400*1000=86400000毫秒使⽤:Date类的带参数构造⽅法Date date = new Date();Date();//获取当前系统的时间和⽇期---------Date date = new Date(0L);Date(long date);//传递毫秒值,把毫秒值转化成Date⽇期-----------Date date = new Date();long time = date.getTime();long getTime() 把⽇期转换成毫秒(相当于System.currentTimeMillis()⽅法)返回⾃1970年1⽉1⽇ 00-00-00GMT 以来此Date 对象表⽰的毫秒数。
java中常用的api方法Java是一种面向对象的编程语言,提供了大量的API(应用程序接口)方法用于开发各种类型的应用程序。
下面是Java中常用的API方法:1. String类的方法:Java中最常用的API方法之一是String类的方法,包括length(、charAt(、substring(、inde某Of(、replace(等,用于处理字符串的长度、字符获取、子字符串处理、索引和替换等操作。
2. Math类的方法:Math类提供了大量的数学计算方法,如abs(、sqrt(、ma某(、min(、random(等,用于绝对值、平方根、最大值、最小值、随机数生成等常用数学运算。
3. Array类的方法:Array类提供了用于数组操作的方法,如sort(、binarySearch(、copyOf(、equals(等,用于数组排序、二进制、数组复制和比较等功能。
4. ArrayList类的方法:Java集合框架中的ArrayList类提供了用于操作动态数组的方法,如add(、remove(、get(、size(等,用于向数组添加元素、删除元素、获取数组大小等操作。
5. HashMap类的方法:HashMap类提供了用于操作键值对的方法,如put(、get(、remove(、containsKey(等,用于添加键值对、获取值、删除键值对、判断键是否存在等功能。
6. File类的方法:File类提供了用于操作文件和目录的方法,如e某ists(、isFile(、isDirectory(、mkdir(等,用于判断文件是否存在、是否为文件、是否为目录、创建目录等操作。
7. Scanner类的方法:Scanner类提供了用于读取用户输入的方法,如ne某t(、ne某tInt(、ne某tLine(等,用于读取字符串、整数、一行文本等用户输入。
9. SimpleDateFormat类的方法:SimpleDateFormat类提供了用于日期和时间的格式化和解析的方法,如format(、parse(等,用于将日期和时间转换为指定格式的字符串和将字符串解析为日期和时间。
Java常用API的运用,效率及技巧1. Java面向对象基本概念2. System3. String, StringBuffer4. 数值,字符,布尔对象与简单类型的操作5. Class, ClassLoader6. Java IO系统7. Java集合类8. ResourceBundle, Properties9. Exceptions10. JDBC类库11. 常用设计模式1. Java面向对象基本概念Java基本上是面向对象的程序设计语言,除了一些简单类型(primitive)的变量以外,一切都是对象,程序是对象的组合,每个对象都有自己的空间,并且每个对象都有一种类型,同一类所有对象都能接受相同的消息。
下面只对Java中对象的结构作简单的说明: 类(class): class是定义类的关键字,类中包含类变量,方法,内部类,内部接口等。
由class可以生成类的实例,即一个个对象。
如果一个类的成员被定义成static的,则这个成员不专属于任何对象,而是属于这个类,所有的对象共享这个成员。
抽象类(abstract class): 抽象类不能直接生成一个实例,抽象类中必需有方法是abstract的,抽象类的意思就是它实现了一部分的方法,而定义为abstract的方法则需要在它的字类中去实现。
接口(interface): 接口可以理解为纯抽象的类,它的每个方法都是未实现的,它可以有成员变量,但必须是static的。
一个类如果从这个接口继承(implements)则它必须实现这个接口的所有方法。
继承类用关键字:extends,继承接口用关键字:implements。
一个类只能从一个类继承下来,但可以从多个接口继承(类似于C++的多重继承)。
字类可以覆盖父类的方法(method),但不能覆盖父类的成员变量(field)。
如果父类的方法为final或static的则不能被覆盖。
类的初始化顺序是,如果有父类,则先初始化父类的field,然后执行父类的构造函数,如果子类没有显式的去调父类的构造函数则缺省的会去调父类的无参数构造函数。
然后是子类的field 与构造函数的初始化。
public interface SuperInterface {public staitc String SOME_FLAG = “1”;public void someMethod();}public Class SuperClass {{ System.out.println(“init SuperClass field”);}public SuperClass() {System.out.println(“init SuperClass Constructor”); }public void runMethod() { System.out.println(“run SuperClass runMethod()”); } }public Class SubClass extends SuperClass implements SuperInterface {{ System.out.println(“init SubClass field”); }public SubClass() {System.out.println(“init SubClass Constructor”); }public void someMethod() {System.out.println(“run SubClass someMethod()”); }public void runMethod() {System.out.println(“run SubClass runMethod()”); } }有以下test代码:public class Test {public void main(String[] args) {SubClass sub = new SubClass();sub. runMethod();}}则会输出:init SuperClass fieldinit SuperClass Constructorinit SubClass fieldinit SubClass Constructorrun SubClass runMethod()以下章节所讲述到的常用的Java API就是一些Java自带的一些Class或Interface的用法。
2.SystemSystem类位于package ng下面,凡是此package下面的类我们可以直接引用无需先import 进来,因为JVM缺省就load了这下面的所有class。
System包含了一些我们常用的方法与成员变量。
System不能被实例化,所有的方法都可以直接引用。
主要作用大致有:输入输出流:(PrintStream) System.out (标准终端输出流),(PrintStream) System.err(标准错误输出流),(InputStream) System.in(标准输入流)。
我们还可以重定向这些流,比如将所有的System.out的输出全部重定向至一文件中去。
System.setOut(PrintStream) 标准输出重定向System.setErr(PrintStream) 标准错误输出重定向System.setIn(InputStream) 标准输入重定向取当前时间:System.currentTimeMillis() 所取到的时间是从1970/01/01以来1/1000秒计算的long型值。
这个值可以转换至Date或Timestamp值。
它一般还可以用来计算程序执行的时间。
例:long beginTime = System. currentTimeMillis();……System.out.println(“run time = ” + (System. currentTimeMillis() – beginTime));数组拷贝:System.arraycopy(Object src, int src_position, Object dst, int dst_position,int length)src:源数组。
src_position:源数组拷贝的起始位置。
dst:目标数组dst_position:拷贝至目标数组的起始位置length:拷贝元素的长度利用System.arraycopy进行数组的拷贝效率是最高的,一般情况下我们自己很少直接用到这个方法,但在集合类的内部中都大量使用了这个方法。
例:int[] array1 = {1, 2, 3, 4, 5};int[] array2 = {4, 5, 6, 7, 8};int array3 = new int[8];System.arraycopy(array1, 0, array3, 0, 5);System.arraycopy(array2, 2, array3, 5, 3);此时array3 = {1, 2, 3, 4, 5, 6, 7, 8}这比用for循环来进行赋值效率要高。
存取系统的Properties:System.getProperties():取得当前所有的Properties, Properties将在后面的集合一节进行详细的论述。
System.setProperties(Properties props):设置系统的Properties。
System.getProperty(String key):根据一个键值来取得一个Property。
System.setProperty(String key, String value):设置系统的一个Property。
JVM起动的时候将会有一些缺省的Properties值,例如:java.version Java运行环境版本java.home Java主目录 installation directoryjava.class.path Java 的class pathjava.ext.dirs Java的扩展目录路径file.separator文件分隔符("/" on UNIX)path.separator路径分隔符(":" on UNIX)line.separator行分隔符 ("\n" on UNIX)用户名user.home用户主目录user.dir用户当前工作目录更详细的信息请参照Java API。
另外在起动一个java程序的时候可以通过-D来设置系统的Property,比如java –Dejb.file=ejb_Test PrintTest在PrintTest里面就可以通过System.getProperty(“ejb.file”)来取得值ejb_Test。
其它System. loadLibrary(String libname):加载native的动态库。
可以用C写JNI的库,然后在java中通过native方法来调用。
System.setSecurityManager(SecurityManager s)System.getSecurityManager():设置与取得系统的security class。
3.String, StringBuffer3.1基本用法String可以说是我们最常用的一个类,熟练掌握它的一些基本用法是很有用的。
String是由一组字符组成的字符串,下标由0开始。
一旦有必要改变原来的内容,每个String 方法都有返回了一个新的String对象。
char charAt(int index) 返回指定位置的字符。
int compareTo(Object o)int compareTo(String anotherString)与另外一个对象进行比较。
int compareToIgnoreCase(String str) 与另一个String进行比较,不区分大小写String concat(String str) 连接两字符串,可以直接用+,因为Java给String覆盖了+ static String copyValueOf(char[] data)static String copyValueOf(char[] data, int offset, int count)将data数组转换至Stringboolean endsWith(String suffix) 测试此String是否以suffix结尾。
boolean startsWith(String prefix) 测试此String是否以prefix开头。