API:(Appilcation Programming Interface)
就是一些已经写好,可以直接拿来用的功能,在java中以类的形式封装;
包的作用:将所有的类库进行分类,就像一个学校分成不同学院,
常用的包:
Java.lang : 基础类,如字符串,多线程,不需要import
Java.util : 常用工具类,如集合随机产生器,日历,时钟
Java.io : 文件操作,输入输出操作
Java.net : 网络操作
Java.math : 数学运算相关操作
Java.security: 安全相关操作
Java.sql: 数据库访问
Java.text: 处理文字,日期数字,信息的格式
文档注释:
/** 文档注释 */
加在类和方法的开头,用于说明作者,时间,版本,要实现功能的详细描述等信息
通过javadoc,将注释转换为HTML文档说明;
String:
- Java.lang.String 使用了final修饰,不能被继承;
- 字符串底层封装了字符数组及针对字符数组的操作算法;
- 字符串一旦创建,对象永远无法改变,但字符串引用可以重新赋值;
比如string str = “Hello World”:则在堆中有Hello World内存,栈中是str变量保存地址
如果str = str+“!”;怎在堆中加了一个“Hello World !”新的对象,由str重新指向;原先的“Hello World”会被回收
- Java字符串在内存中采用Unicode编码方式,任何一个字符对应两个字节的定长编码
String常量池:
- 对于重复出现的字符串直接量,jvm会首先在常量池中查找,如果存在即返回该对象
- 字符串是不利于频繁修改的;
1 /** 2 * 用于测试String 3 * @author Administrator 4 */ 5 public class demo01 { 6 public static void main(String[] args){ 7 String str ="HelloWorld"; 8 String str1 = "HelloWorld";//重用了str的对象 9 System.out.println(str==str1);//true 10 /* 11 * 编译器小特性: 12 * 如果一个运算两边都是字面量,那么 13 * 编译过程中就会计算,将结果生成在表达式的位置 14 * 可以节省运算时的开销 15 */ 16 String str2 = "Hello"+"World"; 17 //String str2= "Hello World" 字节码文件中的样子,编译过程自己转变的 18 System.out.println(str==str1);//true 19 20 String str3 = new String("Hello World"); 21 System.out.println(str==str3);//flase 因为用的new,创建新对象 22 } 23 }
时间: 2024-10-06 11:29:24