当前位置: 首页 > news >正文

提供网站建设小程序制作广西网红排名第一是谁

提供网站建设小程序制作,广西网红排名第一是谁,上海嘉定区网站建设公司,网络推广培训班价格我们曾经讲过#xff0c;Java已经为编程者编制了许多类#xff0c;这些类已经经过测试#xff0c;基本上不存在错误#xff0c;这些类都是我们编程的基础。如果不利用这些已存在的类#xff0c;我们的 编程工作将变得异常复杂#xff0c;所以我们应尽可能多的掌握Java基本…      我们曾经讲过Java已经为编程者编制了许多类这些类已经经过测试基本上不存在错误这些类都是我们编程的基础。如果不利用这些已存在的类我们的 编程工作将变得异常复杂所以我们应尽可能多的掌握Java基本类库的内容。这一章和下一章将向读者介绍Java基本类库的结构和一些常用类以及如何参考 Java技术文档让读者能进一步提高自己   学习重点 ● 包的概念 ● java.lang中的几个基本类 ● 如何查阅Java技术文档 ● 常用工具类                                              第八章    JAVA基本类库介绍           8.1 包的概念       包是由.class文件组成的一个集合.class文件时可以用Java解释其解释执行的文件它也是由Java源的文件即.Java文件经编译而生 成的。Java是一种面向对象的语言它的特点就是重用包就是组织和管理.class文件的一种工具因此它存在的目的就是帮助我们实现代码的重用。 包是一种松散的概念一般情况下功能相同或者相关的类组织在一个包中例如java.io包中的类都与输入、输出有关java.applet包中的类 都与applet程序有关。 8.1.1 构建包     一个包事实上就是一个文件夹这个文件夹中存放着.class文件。包像目录结构一样可以由多层结构而各层之间以“.”来分隔如 java.iojava.awtjava.awt.color等。由于Java的类经常需要在互联网上运行所以有可能出现同名的类程序就不知道使 用哪一个类了。但如果把类都放在不同的包中并且使包的名字独一无二就不会出现混乱状况。 程序中定义包用package这个关键词它的格式如下 package 包名 例如 package MyJavaProgram; package cn.com.companyname.myname 这个语句必须放在一个源文件的第一句并且语句前面无空格。包名一般全部用小写。我们知道一个源文件可能有多个类其中只有一个类是公共类这些类 经编译都会产生.class文件上面的意思是这个源文件中的类经编译产生的.class文件属于一个包名为MyJavaProgram。这就定义 了MyJavaProgram包。一般把要打包的源文件放到包中然后再包中对源文件进行编译就把.class文件放入包中了。当然javac编译器还 有几个参数可以实现确定源文件来源和.class文件放置等功能可以实现源文件和.class文件不在同一个目录。下面是各种参数及其解释。 -g 生成所有debug信息 -g:none 不生成任何debug信息 -g:{lines,vars,source} 只生成部分debug信息 -O 优化 -nowarn 不生成警告 -verbose 输出编译器的工作记录 -deprecation 输出所有过期API的位置 -classpathpath 声明查找用户类库的路径 -sourcepathpath 声明查找源文件的路径 -bootclasspathpath 覆盖引导类文件路径 -extdirsdirs 覆盖安装扩展路径 -ddirectory 声明将生成的.class文件放在何处 -encondingencoding 声明源文件的编码方式 -tragetrelease 未指定版本的虚拟机生成类文件 8.1.2 包的引用   用import语句就可以引入所需的公共类如 import java.io.*;    这个语句表示java.io中所有的公共类被引入当前包。系统先根据classpath只是的路径然后按照包名找到所需的类如classpath为 c:\package\mypakage,而包名为cn.com.companyname.myname,系统则按照以下路径去寻找所需的类c: \package\mypackage\cn\com\companyname\myname,也就是把环境变量和包名相连形成路径然后在这个路径下 寻找类。对于Java类库由于安装时已经自动注册了路径所以不需要添加classpath而使用自己定义的包中的类就必须更改classpath。 还有一种方法使用某个包中的类就是在程序中写全它的包名但很麻烦而不使用import语句如 java.io.FileInputStream in new java.io.FileInputStream(); 如果我们使用了一个包中的大多数类可是使用通配符的方式引用包否则最好把需要类一一列出来这样可以节省大量系统资源。                              8.2 Java语言类库的结构      Java 2平台类库1.3.1版共为程序员提供了76个包每个包都分别负责不同的功能除了java.lang之外其它包的内容只要经过import语句引 用就可以在程序中使用。所有这些类的介绍和使用方法Java都提供了极其完善的技术文档这种机制在极大程度上释放了程序员让他们何以把更多的时间 放在对象的设计上而不是语法和一些局部算法上。 为了方便读者自己使用Java文档我们先把Java提供的这些包介绍一下读者可以根据自己的需要来查阅。其中包名后面带”.*”的表示其中包括一系列相关的包。 表8.1 Java提供的包 包名 内容介绍 java.applet 提供了创建applet需要的类包括帮助applet访问其内容的通讯类 java.awt.* 提供了创建用户界面以及绘制、管理图形、图像的类 java.beans.* 提供开发Java Beans需要的类 java.io 提供了通过数据流、对象序列以及文件系统实现的系统输入、输出 java.lang.* Java编程语言的基本类库 java.math 提供了简明的整数算术以及十进制算数的基本函数 java.net 提供了用于实现网络通讯应用的所有类 java.rmi.* 提供了与远程方法调用相关的所有类 java.security.* 提供了设计网络安全方案需要的类 java.sql 提供了访问和处理来自于Java标准数据源数据的类 java.text 提供了一些类和接口用于处理文本、日期、数字以及语法独立于自然语言之外格式的消息 java.util.* 包括集合类、事件处理模式、日期时间工具等各类常用工具包 javax.accessibility 定义了用户界面组件之间相互访问的一种机制 javax.naming.* 未命名服务提供了一系列类和接口 javax.rmi.* 为用户提供了远程方法调用的应用程序接口 javax.sound.* 提供了MIDI输入、输出以及合成需要的类和接口 javax.swing.* 提供了一系列轻量级的用户界面组件是目前Java用户界面常用的包                    8.3 java.lang包中的常用类介绍     这个包是Java语言最基本的包没有这个包中的类我们的编程很难它们是编程最基本内容。这个包中的所有类都有系统自动引入所以程序不用import语句就可以使用其中的任何一个类。这个包有4个部分接口、类、例外和错误。 8.3.1 Object类     Object类是Java程序中所有类的直接或间接父类也是类库中所有类的父类任何一个类都是由Object类派生出来的它是继承树上的根节点。所以它含有的属性和方法将被所有的类继承下面就是Object类的方法也是所有类都含有的方法 ● protected Object clone()throws CloneNotSupportedException 生成当前对象的一个复制并返回这个复制的对象该对象类型为Object但所有需要使用该方法的类都必须实现接口cloneable否则运行时将抛出CloneNotSupportedException类的例外。 ● public final Class getClass() 返回一个当前对象在运行期的Class类对象。 ● public int hashCode() 返回一个hash code value,不同的对象有不同的hash code value. ● public Boolean equals(Object obj) 如果当前对象与形参对象相同则返回true否则返回false。 ● public String toString() 返回一个反映这个对象信息的字符串通常使对象所属类。 ● public final void notify() 这是关于多线程的方法这个方法用来唤醒等待对向监视器的多个线程中的一个 ● public final void notifyAll() 这个方法是唤醒所有等待监视器的线程 ● public final void wait(long timeout)throws InterrupedException 这个方法是让当前线程放弃对这个对象的同步的声明即放弃对这个对象的锁定进入等待行列直到由notify()或notifyAll()方法唤醒或形参中规定的时间到期timeout的单位是毫秒。 ● public final void wait(long timeout,int nanos)throws InterrupedException 这个方法比上一个多了一个形参第二个形参的意思是nanoseconds(十亿分之一秒)这个方法的等待时间变为两个形参所指示的时间的和时间控制更精确。 ● public final void wait()throws InterrupException 这个方法的含义同wait(0) ● protected void finalize()throws Throwable 这个方法用来把对象从内存中清除由圾收集器自动调用编程者可以重载这个方法在对象被清除时显示某些信息。 8.3.2 Class类    Class类是非常特殊的它的对象将伴随每个类。当一个类X被编译后就有一个特殊的对象Class对象产生它隐藏在X.class文件中Class对象是由编译系统自动生成的。 为了读者进一步理解类是在何时载入内存的先来看一个例子 例8.1 类的载入时机 SweetShop.java的源文件如下 class Candy{ static{ System.out.println(Loading Candy); } } classGum{ static{ System.out.println(Loading Gum); } } class Cookie{ static{ System.out.println(Loading Cookie); } } public class SweetShop{ public static void main(String[] args){ System.out.println(inside main); new Candy(); System.out.println(After creating Candy); try{ Class.forName(Gum); }catch(ClassNotFoundException e){ e.printStackTrace(); } System.out.println(After Class.forName(\Gum\)); new Cookie(); System.out.println(After creating Cookie); } } 这个程序首先定义了3个类每个类只有一个静态初始化器由于静态初始化器是在类载入内存时就被执行所以可用它来指示类何时被载入内存的。然后在 每个对象创建之前输入一定的提示语这样我们就很清楚的看到每个类何时加载内存的了。程序中Class.forName(“Gum”);依据的进一步解 释看下面的部分。程序输出如下 inside main Loading Candy After creating Candy Loading Gum After Class.forName(“Gum”) Loading Cookie After creating Cookie 从以上的结果可以看出类的加载是在对象创建的时候。 这个特殊的Class对象含有所属类的所有信息可以通过Class类的方法提取这些信息下面我们就介绍Class类的一些方法。 ● public static Class forName(String className)throws ClassNotFoundException 这个方法是静态方法所以用Class直接调用格式可以参考上面的例题。这个方法的形参是一个类名方法的返回值是形参指示的类的Class对象。这个方法的结果是产生一个形参所表示的类的Class对象。如 class tClass.forName(“java.lang.Thread”) ● public String getName() 该方法返回Class对象代表的实体类、接口、数组、基本数据类型等的名字。例如(new Object()).getClass().getName()的值是java.lang.Object当然可以放到println()语句中输出。其 中的getClass()用来得到当前对象的Class对象同一个类的对象有相同的Class对象。 GetName()返回的字符串中以不同的字母及符号表示该实体的信息“”表示数组有几个“”表示几维数组以下的字母代表不同的数据类型“L”表示类或接口。 再看几个例子 (new Object[3]).getClass.getName()的值为“Ljava.lang.Object”它表示当前Class对象对应着一个一维数组数组元素是java.lang.Object类的对象。 (new int[3][4][5][6][7][8][9]).getClass().getName()的值为“I”它表示当前Class对象对应着一个七维数组数组元素是int类简单变量。 ● public Class getSuperclass() 这个方法不同于Object类的方法getClass()它返回的是一个数组这些数组成员是Class对象这些对象是当前类中的成员为公共或接口所对应的Class类的实例。 ● public ClassLoader getClassLoader() ClassLoader是一个抽象类在java.lang包中。任何一个类加载内存都是通过一个对象来实现的这个对象就是它衍生类的实例因为类的定义都是一字节码文件形式存在加载一个类就是读取这些字节码。 ● public Class getComponentType() 返回数组成员的类型如果当前对象不是数组返回null。 ● public int getModifiers() 返回类或接口的修饰语例如public,protected,private,final,static和abstract等但它们用一个 int数表示例如public为0x0001,final为0x0010abstract为0x0400这些数字以十六进制表示是Java虚拟 机用来鉴别修饰语用的 ● public Class getDeclaringClass() 如果当前对象是另一个类的成员则返回那个类的Class对象否则为空。 8.3.3 Math类 Math类是一个最终类类头定义是public final class Math extends Object。它包含了常用的科学计算方法。这些方法都是静态方法可以通过类名直接调用。下面我们列出其中常用的属性和方法的定义 ● public static final double E ● public static final double PI 三角函数 ● public static double sin(double a) ● public static double cos(double a) ● public static double tan(double a) ● public static double asin(double a) ● public static double acos(double a) ● public static double atan(double a) 弧度、角度转换如下 ● public static double toRadians(double angdeg) ● public static double toDegrees(double angrad) 代数函数 ● public static double exp(double a) ● public static double log(double a) ● public static double sqrt(double a) ● public static double ceil(double a) ● public static double floor(double a) ● public static double random() 以下3个方法都有其他数据类型的重载方法 ● public static int abs(int a) ● public static int max(int a,int b) ● public static int min(int a,int b) 8.3.4 String与StringBuffer类     Java提供了两个用于字符串操作的类一个是经常用到的String,另一个是StringBuffer。字符串类提供了丰富的字符串操作方法程序员可以方便的使用这些常用的算法和操作而不需要自己再重复编写这就是面向对象的好处。 1. 为什么要使用两个类 String类用与处理那些值不会发生改变的字符串以前程序中的String变量全都是其取值没有发生过变化的字符串。而 StringBuffer类则用于那些可能发生变化的字符串的处理。例如在程序中拼接字符串、从文件中读取字符串等等。由于String类对象都是常 量它的处理效率要比StringBuffer类对象高得多因此读者在编程时尽可能使用String类。 下面我们来看一个简单的例子它同时使用了String和StringBukffer 例8.2 用两种不同的字符串类来逆转字符串 StringDemo.java测源程序如下 public class StringDemo{ public static void main(String[] args){ String palindromeDot saw I was Tod; int lenpalindrome.length(); StringBuffer destnew StringBuffer(len); for(int i(len-1);i0;i--){ dest.append(palindrome.charAt(i)); } System.out.println(dest.toString()); } } 在这个程序中我们先创建了一个String类对象并将字符串“Dot saw I was Tod”赋值给它然后创建了一个和它一样长的StringBuffer类对象。利用它来进行逆转处理。这个程序的执行结果很有趣实际上和输入字符串几 乎是一样的除了第一个字母的大写问题即 doT sw I was toD 2. 对象的创建     一般情况下创建一个String都是采用直接给一个String对象赋值的方法其值用双引号括起来如: String palindrome”Dot saw I was Tod”; 当然也可以象创建其它对象那样新建一个String对象出来Java为String提供了几种比较常用的构造期。如使用字符数组或者StringBuffer等下面是一个使用字符数组创建String对象的例子: char[] helloArray{‘h’,’e’,’,’l’,’l’,’o’}; String helloStringnew String(helloArray); System.out.println(hellostring); 3. String的常用方法 String的常用方法如下 ● public int length() 返回字符串长度 ● public char charAt(int index) 返回index位置的字符index从0到length()-1 ● public void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin) 这个方法是把字符串中的字符复制到一个字符数组中 ● public Boolean equals(Object anObject) 这是对Object类中同方法的重载 ● public int compareTo(String anotherString) 这是实现Serializable接口中的方法如果实际字符串比形参字符串以字典排序时靠前返回负数相反时为正数。 ● public Boolean startsWith(String prefix) ● public Boolean endsWith(String suffix) 上面两个方法分别判断字符串是否以形参字符开始或结束。 ● public int indexOf(int ch) 该方法返回字符串中第一个出现形参所指示的字符的位置如果没有该字符返回-1。 ● public int indexOf(int ch,fromIndex) 从fromIndex开始查找返回第一个是ch字符的位置或者返回-1。 ● public int lastIndexOf(int ch) 返回字符串中最后一个ch字符的位置或-1。 ● public String Substring(int beginIndex) 返回从当前字符串中的beginIndex开始形成的新字符串。 ● public String substring(int beginIndex,int endIndex) 返回从当前字符串截取的新字符串beginIndex是开始位endIndex是结束位减1。 ● public string concat(String str) 把形参字符串连接到当前字符串后字符串的加法运算就是这个方法。 ● public String replace(char oldChar,char newChar) 把字符串中所有相同的某个字符换成另一个。 4. StringBuffer的常用方法    由于StringBuffer类是可变字符串所有它的操作主要集中在对字符串的更改上因此先介绍它的append()和insert()方法这两个方法都有多个重载方法以实现不同的操作。 ● public StringBuffer append(String str) 从方法名就可以知道这是一个扩充字符串的方法它的功能是把形参字符串加到当前字符串之后形成一个新的可变字符串。例如 StringBuffer new StringBuffer(); s.append(“start”); s.append(“le”); 以上几个语句的结果是得到一个含有“startle”的可变字符串。 ● public StringBuffer insert(int offset,String str) 这个方法是在当前字符串中插入形参字符串形成一个新的可变字符串。其中形参offset是偏移量它指示在何处插入0offsetlength(). 下面介绍该类的其它一些常用方法 ● public StringBuffer delete(int start,int end) 删除start含到end(不含)之间的字符。 ● public StringBuffer deleteCharAt(int index) 删除指定位置的字符。 ● public StringBuffer replace(int start,int end,String str) 从start(含)到end(不含)之间的字符串以str代替。 ● public void setCharAt(int index,char ch) 改变指定位置的字符 ● public StringBuffer reverse() 使字符串逆转 ● public int length() 返回字符个数 ● public int capacity() 返回容量通常会大于等于length() ● public void setLength(int newlength) 改变字符个数如果newLength大于原个数则新添的字符都为空“”。相反字符串中最好几个字符将被删除。形参newLength不能为负数。 ● public String substring(int start,int end) 提取子字符串返回的是String类对象。 ● public String toString() 把可变字符串中内容变成String类对象。事实上在用println打印可变字符串内容时就自动调用了该方法。 在String类和StringBuffer类中有一点值得注意许多方法中用到的形参是用来指示字符串中的位置假设这个形参为int index那么字符串的第一个字符的index值为0第二个字符为1依此类推。 8.3.5 System类     系统类是一个独特的类它是一个final类所有的方法都是用类变量调用的换句话说没有人可以实例话一个System类。System类主要提供了标准输入、输出以及一些系统环境信息。 1. 标准输入、输出 ● public static final InputStream in——标准输入 这个属性是InputSream类的一个对象关于InputStream类和下面的PrintStream类我们在java.io包中一并介绍 这些类都是关于输入、输出方面的他们都有各自的属性和方法我们用过的read()就是InputStream类的方法println()和 print()就是PrintStream类的方法。 ● public static final PrintStream out——标准输出 ● public static final PrintStream err——标准错误输出 这些输入、输出属性可以根据其所使用的参数来自动的转换输出格式下面的例子利用标准输出打印了几种常见数据类型的数据它们使用的是println方法但系统可以根据不同类型以不同的方式打印这些数据的值。 例8.3 用标准输出打印各种类型的对象 DataTypePrintTest.java的源程序如下 public class DataTypePrintTest{ public static void main(String[] args){ Thread objectDatanew Thread(); String stringDataJava Mania; char[] charArrayData{a,b,c}; int integerData4; long longDataLong.MIN_VALUE; float floatDAtaFloat.MAX_VALUE; double doubleDataMath.PI; boolean booleanDatatrue; System.out.println(objectData); System.out.println(stringData); System.out.println(charArrayData); System.out.println(integerData); System.out.println(longData); System.out.println(floatData); System.out.println(doubleData); System.out.println(booleanData); } } 其输出结果为 Thread[Thread-0,5,main] Java Mania abc 4 -9223372036854775808 3.4028235E38 3.141592653589793 true 我们注意到打印一个String类型变量系统的动作就是打印出它的内容而打印一个Thread型变量则系统打印它的格式为 类名名称优先级组 2.系统环境信息 System类提供了一个方法用来返回系统环境信息: Public static Properties getProperties(argument); Java虚拟机维护了一系列系统环境信息它们都是以“键名值”对的形式出现的一旦Java虚拟机启动之后系统就自动将这些变量初始化其中包含了与运行环境相关的很多信息。 另外System类提供的与系统环境信息相关的方法还有 ● public static String setProperty(String key,String value); 设置系统变量的值key为键名value为键值。 ● public static Properties getPorperties(); 返回所有的系统环境环境。 下面看一个例子假设有一文本文件叫myProperties.txt其中只有一行 subliminal.messageBuy Java Now! 我们利用这个文件来设置变量它的名字叫做subliminal其取值就是文本文件中存贮的内容。 3.其它有用方法 System类有许多方法用这些方法可以管理Java虚拟机的运行和获得虚拟机的运行信息下面是该类的几个方法它们可以反映System类的一些功能。 ● public static long currentimeMillis() 返回系统时间单位毫秒。 ● public static void exit(int status) 在用户的程序还未执行完之前强制关闭Java虚拟机并把状态信息status传递给操作系统status非零时表示非正常退出 ● public static void ge() 运行垃圾收集器 以上的内容可以让我们对System类的内容有一定的了解这个类中的属性和方法都与系统有关而且这个类的许多方法借用了其它类的方法。 8.3.6 数据类型类 每一类简单数据类型都对应着一个数据类型类例如int对应着Integer类double对应着Double类这些类能把一个简单数据封装 成一个类。某些场合必须使用这种数据类型类如后面的集合类它的成员必须是类而不能是简单的变量。而且使用这些类能完成简单变量不能完成的工作如将 一个数字字符串转化成一个整数等。下面我们就以Integer类来说明这些类的某些方法。 ●MAX_VALUE和MIN_VALUE规定了int类型量的最大值和最小值。 ●构造函数public Integer(int value)和public Integer(String s)分别把数字和数字字符串封装成Integer类。 ● 下面几个方法是把当前数据类型类的对象所对应的int量转化成某种基本数据类型值 public int intValue() public long longValue() public double doubleValue() ● 下面是数字字符串和数字之间的转换 public String toString() public static int parseInt(String s) ● public static static Integer valueOf(String s)方法把s转化成Integer类对象。                    8.4 关于Java的技术文档      上面的内容是我们对包中的内容有了一定的了解这一节研究JavaDOC中的类库。 在下载完j2sdk-1_3_1-doc后找到它下面的docs文件夹打开index文件HTML文件找到 APILanguage Documentation下的Java2 Platfrom API Specificaion然后选择需要的那个包进而查看类、接口等内容。或者直接进入docs文件夹下的api文件夹打开index(HTML文 件)也可以进入选择包的界面。 选择一个包后可以看到包的名称以及简单描述然后是包中的内容分为interface summary,class summary,exception summary和error summary等如果想看包中各类的继承结构可以选择最上面的菜单中的tree就可以了解包中的总体结构。当选择一个类进入后可以看到如下的内容 Double类的说明 java.lang //包名 Class.Double //类名 Java.lang.Object //继承结构java.lang包中的Double类的直接父类 | //是java.lang中的Number类 --java.lang.Number //Number类的父类是java.lang中的Object类 | --java.lang.Double All Implemented Interfaces: //这个类实现的接口 Comparable,Serializable 然后就是属性、方法、构造函数的概述表summary最后是属性、方法、构造函数的详细说明。 转载于:https://www.cnblogs.com/qw26213/p/4773413.html
http://www.zqtcl.cn/news/715459/

相关文章:

  • 做淘宝客网站挣钱济南百度竞价代运营
  • 国外网站404错误页网站地址搜索
  • 做 暧视频在线观看网站北京安卓app开发公司
  • h5哪个网站可以做惠州+企业网站建设
  • 网站运营知识哪个网站可以做免费商业推广
  • 电脑做网站怎么解析域名河南郑州静默管理
  • 项目网站制作冯提莫斗鱼前在哪个网站做直播
  • 网站建设 思路wordpress 访问记录插件
  • 网站建设diyseo课程培训班费用
  • 舞蹈培训东莞网站建设做直播网站
  • app建设网站公司网站制作预算
  • 移动端网站如何开发市辖区郑州网站建设
  • 山东省双体系建设网站wordpress 帮助 主题
  • 手机怎么做三个视频网站网站建设协议一百互联
  • 创建一个网站一般步骤有哪些安徽软件定制开发
  • 网站建设平台协议书模板下载佳木斯建网站的
  • 部队网站建设招标二级域名注册平台
  • 做网站怎么调用栏目织梦搞笑图片网站源码
  • 开个小网站要怎么做南宁seo外包服务商
  • 济宁做网站的企业app网站开发学习
  • 哪个网站可以做危险化学品供求html静态网站作品
  • 豪圣建设项目管理网站创建网站的视频
  • 网站做接口自己做的网站只能用谷歌浏览器打开
  • 建设网站具体步骤python 做 网站
  • 网站源代码怎么上传wordpress标题字体大小
  • 营销型网站哪家好网页设计一张多少钱
  • 怎么搭建购物网站山东德州网站建设
  • 网站 404 错误页面是否自动跳转太原网站建设王道下拉惠
  • 美仑-专门做服装的网站淘宝详情页制作
  • 网站商城制作策划公司组织结构图