03.13
常用类操作
System类代表当前Java程序的运行平台
Runtime类代表java程序的运行时环境
常用类
api中的包作用
java.awt:包含创建用户界面和绘制图形图像的类
java.io:提供数据流、序列化,以及文件系统
java.lang:提供了java进行编程过程中的一些基础类
java.math:提供了数学中的各种计算方式,或者计算方法
java.text:提供一些类处理文本 日期 以及数字和消息
java.util:包含在开发过程中用到的各种工具类(collection框架 随机数生成器等)
javax.sql:java用于提供访问数据库的一些接口和类
java.xml:提供用于解析xml文件的接口和类
创建包的时候,不要用以上这些名字
arrays 拷贝数组
System 类
程序运行时间计算器
System类
java在不同操作系统可能会获取平台的一些属性,或者调用平台的一些命令来完成特定的功能。System类目的提供开发者,可以供我们操作平台一些内容
特点:
1、final类,终态类,不能再被继承
2、类中所有的属性和方法都是static的。在操作的时候可以通过类名。属性 或 类名。方法
Runtime类
代表java运行时的环境,每一个java程序都会有一个Runtime类,应用程序通过Runtime类可以和运行环境相连,通过Runtiame可以获取当前运行环境的信息。比如虚拟机的内存,CPU核心数或者执行操作系统的命令
Runtime 不能直接new
String类
特点
1、Sting并不是基本数据类型,表示字符串意思,是一个对象,当前string类是final类
2、string表示字符串,在操作string的时候每次才做当前string都会产生一个新的对象(一旦创建一个字符串,字符串就不能被变更,直到被销毁)
创建字符串:
<>在这里插入代码片
string s =“abc”;
string s2 = new string (“abc”);
字符串加载的流程(面试重点)
在java中常量池分为两种
1、静态常量池: *.class 文件中的常量池,class文件中的常量池不仅包含了字符串的字面量信息(数字) 还包含了类、方法之类的信息。就是这些东西占据了class文件的空间。string s3 =“a”+“bc” 在class文件中的常量池里面就已经计算后存放的值为“abc”
2、动态常量池 :运行时的常量池,在jvm加载完当前类后,将class文件中的常量池内容加载内存中,保存方法区里面,方法区单独有一块空间用来存放这些数据。方法区常量池
在编译期间无法确定值得时候,无法确定地址
final 存放在常量池中
常量池中 常量和常量可以直接相加
== 比较地址,equals比较直(默认比较地址,自己重写后比较值)
字符串特性 :不可变更特性
通过字符数组来实现
final类 不能被继承 能被创建
不可变更特性
原理:
string 使用pubic static final char[] 来保存的字符串数据,将你定义的每一个字符装到字符数组,但是字符数组final类型,不可变更。你在操作字符串的时候,产生一个新的对象,将原来的引用指向新的对象。
api方法
charAt
输出字符串中第几个字符
compareTo
比较字符串的大小
concat
字符串拼接
第一次出现的位置intdexOf
最后一次的出现的位置lastIndexOf
拆分字符串 split
拆分成每一个字符 to
转换成大写 toUpperCase
toLowerCase
trim 去掉首尾空格
静态方法通过类名来调
StringBuffer和StringBuilder
StringBuffer:
1、和string一样 都是用来存储字符串的 内部实现的方式有区别 对应的使用范围不一样。它在处理字符串的时候,在原来的值上面进行修改,不会产生新的内容。
在某些时候他的性能优于string
当前对象他是线程安全的对象
2、StringBuffer对象不能使用=来初始化,只能构造的形式来初始化数据
3、因为他是可变得,经常用它来操作变化的字符串,比如有的字符串频繁 增加 、修改、删除内容
创建StringBuffer类型的字符串
api:
append 拼接
delete 删除 .delete(0,5);
insert
StringBuilder
特点同StringBuffer一样
StringBuilder: 是线程不安全的。效率非常高
可变
线程安全
效率不同