系统包介绍
*
- java long.* 包装类 主要包括:Object类型,String类型字符串处理类
-
数据类型的包装类(Integer,Long。。。)math类,System/runtime类,类加载器类
- java util.* 工具类 工具包中放置的是:日期,数组,数据结构类(栈、链表、向量、Hash表)随机数类,数组,集合,数字相关的一个API
-
列如:Scanner、Arrays、Calendar...
- java.awt. /javax.swing.* 了解 提供了绘图和图像类,主要用于编写GUI程序 ,包括按钮、标签等常用组件以及相应的事件类
- java.io.* /java.nio.* java中用于系统的输入输出的相关类
- java.net.* 网络通信包,实现网络应用程序的类,主要包括用于实现Socket通信的Socket类
java.applet. 创建Applet程序提供的包,它包含了基本的applet类和通信类,目前基本上被淘汰了 - java.* SUN公司开发的核心包 jvax.|org. 一些开源组织开发的扩展包 com.* 一些商业组织开发的扩展包
*/ - Runtime:相对于程序而言,他是JVM的代表
- 每一个应用程序都有一个独立的Ru你time对象
String类:
字符串:有字符组成的串(集合)
- 字符串的特点:字符串一旦确定,那么内容,长度均不可改变
- 字符串的创建方法:new Strig(); 字面量(最常用的)放置在方法去的静态常量池中
- 为了解决String类的缺点,Java给我们提供了2个可变的字符串操作类:
-
StringBuffer,StringBuilder主要用来解决String类型的内容和长度不可变的问题
-
它们采用的是SuperArray的思想来进行动态扩容
- StringBufer和StringBuilder的区别在于:
- StringBuffer的方法使用synchronized 关键字进行了加载
- 它们两者的实现原理:都是SuperArray自动扩容的方式
- 唯一的区别就在于:StringBuffer做了线程同步
- 而StringBuilder没做线程同步
*做了线程同步:可以保证数据的准确性,每次只能由1根线程去操作该对象
-
没做线程同步,数据的准确性无法保证
- 但是考虑到性能:线程同步整体性能较低,线程异步整体性能较高,数据的准确性无法保证。
- 程序员:都要考虑 对数据准确性要求不高的,就用StringBuilder
-
对数据准确性要求高的,就用StringBuffer。