导航:首页 > 编程语言 > java常用类详解

java常用类详解

发布时间:2023-05-16 08:11:38

① 说出java中一些常用的类,包,接口,请各举5个~~~

类:1.java.lang.Object
2.java.lang.String
3.java.lang.System
4.java.io.file
5.java.io.FileInputStream
包:1.java.lang包
2.java.io包
3.java.swt包
4.java.util包
5.java.sql包
接口:1.java.util.List<E>
2.java.util.Map<E>
3.java.util.Iterator<E>
4.java.sql.CallableStatement
5.java.lang.Comparable<T>

② 请举出5个常用的类、接口、包

  1. java常用的类:BufferedReader BufferedWriter ,FileReader FileWirter ,String Integer java.util.Date, Class, HashMap

  2. java常用的接口:List ,Map ,Document ,NodeList ,Servlet, HttpServletResponse, Transaction(Hibernate)、 Session(Hibernate), HttpSession

  3. java常用的包:java.lang ,java.io ,java.util ,java.sql ,javax.servlet ,org.apache.strtuts.action ,org.hibernate

拓展资料:

Java(计算机编程语言):Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等

③ JAVA的常用的类库有哪些

一、日志相关类库

日志库是很常见的,因为你在每一个项目中都需要他们。打印日志是服务器端应用中最重要的事情,因为日志是你了解你的程序发生了什么的唯一途径。尽管JDK附带自己的日志库,但是还是有很多更好的选择可用,例如 Log4j 、 SLF4j 和 LogBack。

Java开发人员应该熟悉日志记录的利弊, 并且了解为什么SLF4J要比Log4J要好。

二、jsON解析库

在当今世界的web服务和物联网中(IoT),JSON已经取代了XML,成为从客户端到服务器传送信息的首选协议。有一个好消息和一个坏消息。坏消息 是JDK没有提供JSON库。好消息是有许多优秀的第三方库可以用来解析和创建JSON消息,如 Jackson 和 Gson

一个Java web开发人员应该熟悉Jackson 和 Gson这两种中的至少一种库。

三、单元测试库

单元测试技术的使用,是区分一个一般的开发者和好的开发者的重要指标。程序员经常有各种借口不写单元测试,但最常见的借口就是缺乏经验和知识。常见的单测框架有 JUnit , Mockito 和PowerMock 。

《2020最新Java基础精讲视频教程和学习路线!》


四、通用类库

有几个很好的第三方通用库可供Java开发人员使用,例如 Apache Commons 和 Google Guava 。我会经常在我的代码中使用这些通用类库,因为这些类库都是经过无数开发者实践过的,无论是实用性还是在性能等方面都是最佳的。

五、Http 库

我不是很喜欢JDK的一个重要原因就包括他们缺乏对HTTP的支持。虽然可以使用java.net包类,但是这和直接使用像 Apache HttpClient 和 HttpCore 等开源类库比起来麻烦太多了。

尽管JDK 9将开始HTTP 2.0,也对HTTP的支持做了优化,但是我还是强烈建议所有的Java开发人员熟悉流行的HTTP处理类库,例如HttpClient和HttpCore HTTP等库。

六、XML解析库

市面上有很多XML解析的类库,如 Xerces , JAXB , JAXP , Dom4j , Xstream 等。 Xerces2是下一代高性能,完全兼容的XML解析工具。Xerces2定义了 Xerces Native Interface (XNI)规范,并提供了一个完整、兼容标准的 XNI 规范实现。该解析器是完全重新设计和实现的,更简单以及模块化。

七、Excel读写库

许多应用程序需要提供把数据导出到Excel的功能,如果你要做相同的Java应用程序,那么你需要 Apache POI API 。

这是一个非常丰富的类库,你可以从Java程序读写XLS文件

八、字节码库

如果你正在编写一个框架或者类库。有一些受欢迎的字节码库如 javassist 和 Cglib Nodep 可以供你选择,他们可以让你阅读和修改应用程序生成的字节码。

Javassist使得JAVA字节码操作非常简单。它是一个为编辑Java字节码而生的类库。 ASM 是另一个有用的字节码编辑库。

九、数据库连接池库

如果你的Java应用程序与数据库交互不是使用数据库连接池库的话,那么你就大错特错了。因为在运行时创建数据库连接非常耗时并且会拖慢你的程序。所以墙裂建议使用,有些好用的连接池可供选择,如 Commons Pool 和 DBCP 。

在web应用程序中,web服务器通常提供了这些功能。但是在java项目中需要把数据库连接池的类库导入到应用中。

十、消息传递库

像日志和数据库连接池一样,消息传递也是很多实际的Java项目中必备的。Java提供了JMS Java消息服务,但这不是JDK的一部分,你需要单独的引入jms.jar。类似地,如果您准备使用第三方消息传递协议, Tibco RV 是个不错的选择。

十一、PDF处理库

除了Excel和Word,PDF也是一种常用的文件格式。如果你的应用程序要支持PDF格式的文件处理,你可以使用 iText 和 Apache FOP 类库。两者都提供了非常有用的PDF处理功能。

十二、日期和时间库

在Java之前,JDK的日期和时间库一直被人们所诟病,比如其非线程安全的、不可变的、容易出错等。很多开发人员会选择更好用的 JodaTime 类库。

但是在Java8推出之后,我们就可以彻底放弃JodaTime了,因为Java 8提供了其所有功能。但是,如果你的代码运行在一个低版本的JDK中,那么JodaTime还是值得使用的。

十三、集合类库

虽然JDK有丰富的集合类,但还是有很多第三方类库可以提供更多更好的功能。如 Apache Commons Collections 、 Goldman Sachs collections 、 Google Collections 和 Trove 。Trove尤其有用,因为它提供所有标准Collections 类的更快的版本以及能够直接在原语(primitive)(例如包含int 键或值的Map 等)上操作的Collections 类的功能。

FastUtil是另一个类似的API,它继承了Java Collection Framework,提供了数种特定类型的容器,包括映射map、集合set、列表list、优先级队列(prority queue),实现了java.util包的标准接口(还提供了标准类所没有的双向迭代器),还提供了很大的(64位)的array、set、list,以及快速、实用的二进制或文本文件的I/O操作类。

十四、邮件API

javax.mail 和 Apache Commons Email 提供了发送邮件的api。它们建立在JavaMail API的基础上,提供简化的用法。

十五、HTML解析库

和XML与JSON类似,HTML是另外一种我们可能要打交道的传输格式。值得庆幸的是,我们有jsoup可以大大简化Java应用程序使用HTML。你不仅可以使用 JSoup 解析HTML还可以创建HTML文档。

十六、加密库

Apache Commons家族中的 Commons Codec 就提供了一些公共的编解码实现,比如Base64, Hex, MD5,Phonetic and URLs等等。

十七、嵌入式SQL数据库库

我真的是非常喜欢像 H2 这种内存数据库,他可以嵌入到你的Java应用中。在你跑单测的时候如果你需要一个数据库,用来验证你的SQL的话,他是个很好的选择。顺便说一句,H2不是唯一嵌入式DB,你还有 Apache Derby 和 HSQL 可供选择。

十八、JDBC故障诊断库

有不错的JDBC扩展库的存在使得调试变得很容易,例如P6spy,这是一个针对数据库访问操作的动态监测框架,它使得数据库数据可无缝截取和操纵,而不必对现有应用程序的代码作任何修改。 P6Spy 分发包包括P6Log,它是一个可记录任何 Java 应用程序的所有JDBC事务的应用程序。其配置完成使用时,可以进行数据访问性能的监测。

十九、序列化库

Google Protocol Buffer是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。

二十、网络

一些有用的网络库主要有 Netty 的和 Apache MINA 。如果您正在编写一个应用程序,你需要做的底层网络任务,可以考虑使用这些库。

这都是每位Java开发人员应该熟悉的,并且十分有用的库。Java生态系统非常庞大的,你会发现有很多不同的类库可以做不同的事情。每个你想到的东西,都可能有一个库可以做到。

要相信,你遇到的问题,肯定不止你一个遇到过。
要相信,也许有很多人比你更勤奋。
要相信,你用或不用,轮子就在那里。
要相信,使用这些类库,你和你的代码都会变得更好。

原文链接:https://blog.csdn.net/u011001084/article/details/79216958

④ 罗列出你常用的JAVA类

java.applet 提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类。
java.awt 包含用于创建用户界面和绘制图形图像的所有类。
java.awt.color 提供用于颜色空间的类。
java.awt.datatransfer 提供在应用程序之间和在应用程序内部传输数据的接口和类。
java.awt.dnd Drag 和 Drop 是一种直接操作操作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息。
java.awt.event 提供处理由 AWT 组件所激发的各类事件的接口和类。
java.awt.font 提供与字体相关的类和接口。
java.awt.geom 提供用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D 类。
java.awt.im 提供输入方法框架所需的类和接口。
java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口。
java.awt.image 提供创建和修改图像的各种类。
java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。
java.awt.print 为通用的打印 API 提供类和接口。
java.beans 包含与开发 beans 有关的类,即基于 JavaBeansTM 架构的组件。
java.beans.beancontext 提供与 bean 上下文有关的类和接口。
java.io 通过数据流、序列化和文件系统提供系统输入和输出。
java.lang 提供利用 Java 编程语言进行程序设计的基础类。
java.lang.annotation 为 Java 编程语言注释设施提供库支持。
java.lang.instrument 提供允许 Java 编程语言代理监测运行在 JVM 上的程序的服务。
java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。
java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。
java.lang.reflect 提供类和接口,以获取关于类和对象的反射信息。
java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。
java.net 为实现网络应用程序提供类。
java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。
java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的选择器。
java.nio.channels.spi 用于 java.nio.channels 包的服务提供程序类。
java.nio.charset 定义用来在字节和 Unicode 字符之间转换的 charset、解码器和编码器。
java.nio.charset.spi java.nio.charset 包的服务提供程序类。
java.rmi 提供 RMI 包。
java.rmi.activation 为 RMI 对象激活提供支持。
java.rmi.dgc 为 RMI 分布式垃圾回收提供了类和接口。
java.rmi.registry 提供 RMI 注册表的一个类和两个接口。
java.rmi.server 提供支持服务器端 RMI 的类和接口。
java.security 为安全框架提供类和接口。
java.security.acl 此包中的类和接口已经被 java.security 包中的类取代。
java.security.cert 提供用于解析和管理证书、证书撤消列表 (CRL) 和证书路径的类和接口。
java.security.interfaces 提供的接口用于生成如 RSA Laboratory Technical Note PKCS#1 中所定义的 RSA(Rivest、Shamir 和 Adleman AsymmetricCipher 算法)密钥,以及如 NIST 的 FIPS-186 中所定义的 DSA(数字签名算法)密钥。
java.security.spec 提供密钥规范和算法参数规范的类和接口。
java.sql 提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API。
java.text 提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。
java.util 包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。
java.util.concurrent 在并发编程中很常用的实用工具类。
java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁定的线程安全编程。
java.util.concurrent.locks 为锁定和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。
java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。
java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。
java.util.prefs 此包允许应用程序存储并检索用户和系统首选项和配置数据。
java.util.regex 用于匹配字符序列与正则表达式指定模式的类。
java.util.zip 提供用于读写标准 ZIP 和 GZIP 文件格式的类。
javax.accessibility 定义了用户界面组件与提供对这些组件进行访问的辅助技术之间的协定。
javax.crypto 为 cryptographic(加密)操作提供类和接口。
javax.crypto.interfaces 按在 RSA Laboratories' PKCS #3 中定义的那样提供 Diffie-Hellman 密钥接口。
javax.crypto.spec 为密钥规范和算法参数规范提供类和接口。
javax.imageio Java Image I/O API 的主要包。
javax.imageio.event Java Image I/O API 的一个包,用于在读取和写入图像期间处理事件的同步通知。
javax.imageio.metadata 用于处理读写元数据的 Java Image I/O API 的包。
javax.imageio.plugins.bmp 包含供内置 BMP 插件使用的公共类的包。
javax.imageio.plugins.jpeg 支持内置 JPEG 插件的类。
javax.imageio.spi 包含用于 reader、writer、transcoder 和流的插件接口以及一个运行时注册表的 Java Image I/O API 包。
javax.imageio.stream Java Image I/O API 的一个包,用来处理从文件和流中产生的低级别 I/O。
javax.management 提供 Java Management Extensions 的核心类。
javax.management.loading 提供实现高级动态加载的类。
javax.management.modelmbean 提供了 ModelMBean 类的定义。
javax.management.monitor 提供 monitor 类的定义。
javax.management.openmbean 提供开放数据类型和 Open MBean 描述符类。
javax.management.relation 提供 Relation Service 的定义。
javax.management.remote 对 JMX MBean 服务器进行远程访问使用的接口。
javax.management.remote.rmi RMI 连接器是供 JMX Remote API 使用的一种连接器,后者使用 RMI 将客户端请求传输到远程 MBean 服务器。
javax.management.timer 提供对 Timer MBean(计时器 MBean)的定义。
javax.naming 为访问命名服务提供类和接口。
javax.naming.directory 扩展 javax.naming 包以提供访问目录服务的功能。
javax.naming.event 在访问命名和目录服务时提供对事件通知的支持。
javax.naming.ldap 提供对 LDAPv3 扩展操作和控件的支持。
javax.naming.spi 提供一些方法来动态地插入对通过 javax.naming 和相关包访问命名和目录服务的支持。
javax.net 提供用于网络应用程序的类。
javax.net.ssl 提供用于安全套接字包的类。
javax.print 为 JavaTM Print Service API 提供了主要类和接口。
javax.print.attribute 提供了描述 JavaTM Print Service 属性的类型以及如何分类这些属性的类和接口。
javax.print.attribute.standard 包 javax.print.attribute.standard 包括特定打印属性的类。
javax.print.event 包 javax.print.event 包含事件类和侦听器接口。
javax.rmi 包含 RMI-IIOP 的用户 API。
javax.rmi.CORBA 包含用于 RMI-IIOP 的可移植性 API。
javax.rmi.ssl 通过安全套接字层 (SSL) 或传输层安全 (TLS) 协议提供 RMIClientSocketFactory 和 RMIServerSocketFactory 的实现。
javax.security.auth 此包提供用于进行身份验证和授权的框架。
javax.security.auth.callback 此包提供与应用程序进行交互所必需的类,以便检索信息(例如,包括用户名和密码的身份验证数据)或显示信息(例如,错误和警告消息)。
javax.security.auth.kerberos 此包包含与 Kerberos 网络身份验证协议相关的实用工具类。
javax.security.auth.login 此包提供可插入的身份验证框架。
javax.security.auth.spi 此包提供用于实现可插入身份验证模块的接口。
javax.security.auth.x500 此包包含应该用来在 Subject 中存储 X500 Principal 和 X500 Private Crendentials 的类。
javax.security.cert 为公钥证书类。
javax.security.sasl 包含用于支持 SASL 的类和接口。
javax.sound.midi 提供用于 MIDI(音乐乐器数字接口)数据的 I/O、序列化和合成的接口和类。
javax.sound.midi.spi 在提供新的 MIDI 设备、MIDI 文件 reader 和 writer、或音库 reader 时提供服务提供程序要实现的接口。
javax.sound.sampled 提供用于捕获、处理和回放取样的音频数据的接口和类。
javax.sound.sampled.spi 在提供新音频设备、声音文件 reader 和 writer,或音频格式转换器时,提供将为其创建子类的服务提供程序的抽象类。
javax.sql 为通过 JavaTM 编程语言进行服务器端数据源访问和处理提供 API。
javax.sql.rowset JDBC RowSet 实现的标准接口和基类。
javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。
javax.sql.rowset.spi 第三方供应商在其同步提供程序的实现中必须使用的标准类和接口。
javax.swing 提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。
javax.swing.border 提供围绕 Swing 组件绘制特殊边框的类和接口。
javax.swing.colorchooser 包含供 JColorChooser 组件使用的类和接口。
javax.swing.event 供 Swing 组件触发的事件使用。
javax.swing.filechooser 包含 JFileChooser 组件使用的类和接口。
javax.swing.plaf 提供一个接口和许多抽象类,Swing 用它们来提供自己的可插入外观功能。
javax.swing.plaf.basic 提供了根据基本外观构建的用户界面对象。
javax.swing.plaf.metal 提供根据 Java 外观(曾经代称为 Metal)构建的用户界面对象,Java 外观是默认外观。
javax.swing.plaf.multi 提供了组合两个或多个外观的用户界面对象。
javax.swing.plaf.synth Synth 是一个可更换皮肤 (skinnable) 的外观,在其中可委托所有绘制。
javax.swing.table 提供用于处理 javax.swing.JTable 的类和接口。
javax.swing.text 提供类 HTMLEditorKit 和创建 HTML 文本编辑器的支持类。
javax.swing.text.html 提供类 HTMLEditorKit 和创建 HTML 文本编辑器的支持类。
javax.swing.text.html.parser 提供默认的 HTML 解析器以及支持类。
javax.swing.text.rtf 提供一个类 (RTFEditorKit),用于创建富文本格式(Rich-Text-Format)的文本编辑器。
javax.swing.tree 提供处理 javax.swing.JTree 的类和接口。
javax.swing.undo 允许开发人员为应用程序(例如文本编辑器)中的撤消/恢复提供支持。
javax.transaction 包含解组期间通过 ORB 机制抛出的三个异常。
javax.transaction.xa 提供定义事务管理器和资源管理器之间的协定的 API,它允许事务管理器添加或删除 JTA 事务中的资源对象(由资源管理器驱动程序提供)。
javax.xml 根据 XML 规范定义核心 XML 常量和功能。
javax.xml.datatype XML/Java 类型映射关系。
javax.xml.namespace XML 名称空间处理。
javax.xml.parsers 提供允许处理 XML 文档的类。
javax.xml.transform 此包定义了用于处理转换指令,以及执行从源到结果的转换的一般 API。
javax.xml.transform.dom 此包实现特定于 DOM 的转换 API。
javax.xml.transform.sax 此包实现特定于 SAX2 的转换 API。
javax.xml.transform.stream 此包实现特定于流和 URI 的转换 API。
javax.xml.validation 此包提供了用于 XML 文档验证的 API。
javax.xml.xpath

⑤ Java五个最常用的集合类之间的区别和联系

常用的集合类有一下几种:
List结构的集合类:ArrayList类,LinkedList类,Vector类,Stack类
Map结构的集合类:HashMap类,Hashtable类
Set结构的集合类:HashSet类,TreeSet类
Queue结构的集合:Queue接口

HashMap和Hashtable的区别:
HashMap和Hashtable都是java的集合类,都可以用来存放java对象,这是他们的相同点
以下是他们的区别:
1.历史原因:
Hashtable是基于陈旧的Dictionary类的,HashMap是java 1.2引进的Map接口的一个现实。
2.同步性:
Hashtable是同步的,这个类中的一些方法保证了Hashtable中的对象是线程安全的,而HashMap则是异步的,因此HashMap中的对象并不是线程安全的,因为同步的要求会影响执行的效率,所以如果你不需要线程安全的结合那么使用HashMap是一个很好的选择,这样可以避免由于同步带来的不必要的性能开销,从而提高效率,我们一般所编写的程序都是异步的,但如果是服务器端的代码除外。
3.值:
HashMap可以让你将空值作为一个表的条目的key或value
Hashtable是不能放入空值(null)的

ArrayList和Vector的区别:
ArrayList与Vector都是java的集合类,都是用来存放java对象,这是他们的相同点,
区别:
1.同步性:
Vector是同步的,这个类的一些方法保证了Vector中的对象的线程安全的,而ArrayList则是异步的,因此ArrayList中的对象并不 是线程安全的,因为同步要求会影响执行的效率,所以你不需要线程安全的集合那么使用ArrayList是一个很好的选择,这样可以避免由于同步带来的不必 要的性能开销。
2.数据增长:
从内部实现的机制来讲,ArrayList和Vector都是使用数组(Array)来控制集合中的对象,当你向两种类型中增加元素的时候,如果元素的数目超过了内部数组目前的长度他们都需要扩展内部数组的长度吵手薯,Vector缺省情况下自动增长原来一倍的数组长度,ArrayList是原来的50%,所以最后你获得的这个集合所占的空间总是比你实际需要的要大,所以如果你要在集合中保存大量的数据,那么使用Vector有一些优势,因为你可以通过设置集合的初始大小来避免不必要的资源开销。

总结:
1)如升者果要求线程安全,使用Vector,Hashtable
2)如果不要求线程安全,使用ArrayList,LinkedList,HashMap
3)如果要求键值对,则使用HashMap,Hashtable
4)如果数据量很大,又要求线程安全考虑Vector

1.ArrayList: 元素单个,效率高,多用于查询
2.Vector: 元素单个,线程安全,多用于查询
3.LinkedList:元素单个,多用于插入和删除
4.HashMap: 元素薯亮成对,元素可为空
5.HashTable: 元素成对,线程安全,元素不可为空

ArrayList
底层是Object数组,所以ArrayList具有数组的查询速度快的优点以及增删速度慢的缺点。
而在LinkedList的底层是一种双向循环链表。在此链表上每一个数据节点都由三部分组成:前指针(指向前面的节点的位置),数据,后指针(指向后面的节点的位置)。最后一个节点的后指针指向第一个节点的前指针,形成一个循环。
双向循环链表的查询效率低但是增删效率高。
ArrayList和LinkedList在用法上没有区别,但是在功能上还是有区别的。

LinkedList
经常用在增删操作较多而查询操作很少的情况下:队列和堆栈。
队列:先进先出的数据结构。
栈:后进先出的数据结构。
注意:使用栈的时候一定不能提供方法让不是最后一个元素的元素获得出栈的机会。

Vector
(与ArrayList相似,区别是Vector是重量级的组件,使用使消耗的资源比较多。)
结论:在考虑并发的情况下用Vector(保证线程的安全)。
在不考虑并发的情况下用ArrayList(不能保证线程的安全)。

面试经验(知识点):
java.util.stack(stack即为堆栈)的父类为Vector。可是stack的父类是最不应该为Vector的。因为Vector的底层是数组,且Vector有get方法(意味着它可能访问到并不属于最后一个位置元素的其他元素,很不安全)。
对于堆栈和队列只能用push类和get类。
Stack类以后不要轻易使用。
实现栈一定要用LinkedList。
(在JAVA1.5中,collection有queue来实现队列。)

Set-HashSet实现类:
遍历一个Set的方法只有一个:迭代器(interator)。
HashSet中元素是无序的(这个无序指的是数据的添加顺序和后来的排列顺序不同),而且元素不可重复。
在Object中除了有finalize(),toString(),equals(),还有hashCode()。
HashSet底层用的也是数组。
当向数组中利用add(Object o)添加对象的时候,系统先找对象的hashCode:
int hc=o.hashCode(); 返回的hashCode为整数值。
Int I=hc%n;(n为数组的长度),取得余数后,利用余数向数组中相应的位置添加数据,以n为6为例,如果I=0则放在数组a[0]位置,如果I=1,则 放在数组a[1]位置。如果equals()返回的值为true,则说明数据重复。如果equals()返回的值为false,则再找其他的位置进行比 较。这样的机制就导致两个相同的对象有可能重复地添加到数组中,因为他们的hashCode不同。
如果我们能够使两个相同的对象具有相同hashcode,才能在equals()返回为真。
在实例中,定义student对象时覆盖它的hashcode。
因为String类是自动覆盖的,所以当比较String类的对象的时候,就不会出现有两个相同的string对象的情况。
现在,在大部分的JDK中,都已经要求覆盖了hashCode。
结论:如将自定义类用hashSet来添加对象,一定要覆盖hashcode()和equals(),覆盖的原则是保证当两个对象hashcode返回相同的整数,而且equals()返回值为True。
如果偷懒,没有设定equals(),就会造成返回hashCode虽然结果相同,但在程序执行的过程中会多次地调用equals(),从而影响程序执行的效率。

⑥ java常用类有哪些呢请说20个

String 字符串类
System 可得到系统信息
StringBuilder 字符串工具类
Thread 线程类
Math 与数学有关的工具类

ArrayList 底层用数组实现的集合
LinkedList 底层用链表实现的集合
HashMap 接口Map的一个实现类
HashSet 接口Set的一个实现类
Scanner 简单文本扫描器
Calendar 日期类
Date 日期类

File 目录或文件操作类
FileInputStream 输入流
FileOutputStream 输出流
PrintWriter
BufferedInputStream 具有缓冲的输入流
BufferedOutputStream 具有缓冲的输出流
BufferedReader 从字符输入流中读取文本,缓冲各个字符,
BufferedWriter 将文本写入字符输出流,缓冲各个字符

⑦ java中总共有哪些类各种类的作用具体是什么

初学java的时候主要用到5个类。。
java.lang-包含一些java语言的核心类,如String,Math,Integer,System,Treak.
java.net-包含执行也网络有关的操作的类。
java.io-包含能提供多种输入/输出功能的类。
java.util-包含一些实用工具类以及数据结构类。如使用与日期日历有关的函数、集合等。
java.sql-包含用于访问数据库的类。

⑧ java中有哪些常用的类啊

java.lang.* java.util.* 这个一个是基本的,一个是工具集。。其中细致的有各种数据类型,都被封装成类了。io流,字符流,字节流。然后是分隔流,管道流,序列化。。。还有线程中的。thread runnable等接口。做gui的时候还有awt,swing。后面对字符的操作还有正则表达式。。java中的类很多都是关联的。最重要的还是会自己查阅api这个才是能源源不断出代码的东西。

阅读全文

与java常用类详解相关的资料

热点内容
ubuntuqt创建工程没有配置文件 浏览:126
网站登录变成其他网站怎么处理 浏览:202
ug数控编程学校有哪些 浏览:203
java图片上传显示 浏览:402
ppt的文件名后缀 浏览:902
ug编程软件下载到哪个盘 浏览:359
炫酷字体APP下载的文件在哪里 浏览:668
廊坊哪里有少儿编程机构 浏览:312
cad新文件能找回来吗 浏览:951
导出手机qq文件到u盘 浏览:456
电脑如何打开ppt文件怎么打开方式 浏览:782
魅族锁定区文件夹 浏览:357
刻字cnc怎么编程 浏览:182
学校的网络拓扑结构图 浏览:784
收集100个pdf文件里关键词 浏览:594
苹果关闭4g网络设置 浏览:289
如何监测数据库 浏览:967
拷贝过来的pdf文件 浏览:751
抖音小店的访客数据怎么看 浏览:670
怎么把c语言编程的字符向下移动 浏览:786

友情链接