常用的类
一,概念;
String是我们最常用的;可以直接赋字符串常量
properties文件操作类
System运行的平台
二,System类
1,System类
1,System.in;代表当前提供的标准输入流;往往特指控制台输入
用法在创建Scanner(System.in).
2,System.out 代表当前系统提供的标准输入流;往往特指控制台输出
3,System.err 代表当前系统提供的错误流,也是指代控制台输出,红色字符表示错误
2,方法
1,System.gc() 召唤垃圾回收,不是操控只能是招呼
2,System.arraycopy(src,srcpos,dest,destpos,length) 完成数组拷贝
3,System.exit(0); 完成关闭虚拟机,参数表示结束的状态,非0就是异常结束!
4,System.currentimemillis() 返回的是当前毫秒数(1秒等于1000毫秒)
5,System.getProperty()一个参数,String类型的,获取系统属性!
6,String a=System.getproperty("file.separator") 斜杠转换不同系统转换
3,系统属性
1,String javaHome = System.getProperty("java.home");
java运行环境的安装目录
System.out.println(javaHome);
2,String javaVersion = System.getProperty("java.version");
Java运行环境的版本
System.out.println(javaVersion);
3,String osName = System.getProperty("os.name");
操作系统名称
System.out.println(osName);
4,String fs = System.getProperty("file.separator");
文件分隔符
String file = "D:"+fs+"hello"+fs+"work.txt";
三,runtime类
1,Runtime rt=Runtime.getRuntime(); 获得当前运行环境绑定的运行对像
1,System.out.println("当前内存总数:" + rt.totalMemory());
2,System.out.println("当前空闲内存:" + rt.freeMemory());
3,System.out.println("当前处理器数量:" + rt.availableProcessors());
四,字符串;
1,概念;
1,String 是Java中表示字符串的一种类型;是我们用的最多的一种字符串类型;
2,所有的输入输出都是针对字符串,类型的变化是程序内部的需要,
3,因为String是用的最多的数据类型,所以Java中有许多针对它的特殊设计
4,语法上,他是一个可以直接赋常量值的引用数据类型
5,String常量在内存中有特殊处理,
1,String常量是对象
2,String常量在加载时已经写入内存中(数据段的字符串常量池)
6,String对象内容不可变,对String对象做任何内容改变都是得到一个新的String对象
7,String提供了非常丰富的API.
2,常见的API;
1,String与字符数组相关的操作
String str = "Abaacd";
1,char[] array = str.toCharArray();
//把String转换成char[]数组
2,int length = str.length();
//得到String的长度;
3,char c = str.charAt(0);
//根据下标得到String的第几个字符;
4,int postion = str.indexOf('a');
//根据下标得到字符在String中首次出现的位置,没有返回-1
5,postion = str.lastIndexOf('a');
//根据下标得到字符在String中最后出现的位置,没有返回-1
6,String subStr = str.substring(2,5);
//根据位置截取字串,开关区间!
7,subStr = str.substring(2);
//重载方法,只给起始位置,一直截取到最后
2,String与比较操作相关的
1,System.out.println("Hello".equals(str));
//比较的是类容
2,System.out.println("Hello".equalsIgnoreCase(str));
//忽略大小比较!
System.out.println(str.compareTo("HHHHHH"));//区分大小写
System.out.println(str.compareToIgnoreCase("hhhhhhh"));//不区分大小写
//字符串是可以比较大小的,使用的是字典顺序
//特点;结果是第一个字符串减去第二个字符串的差值,
得到正数说明第一个数比第二个大,得到负数说明第二个数比第一个大;
//差值首先是返回第一个比较返回的ASCII之差,如果某个字符串比较完了,
他的每个字符都和对象相同,则在返回两个字符串的长度之差;
//只要当字符串都一样长度也一样才返回0
3,//与字符串内容相关的
1,String upStr=str.toUpperCase();//把String转换成全大写
2,String dnStr = "WorLd".toLowerCase();//把String转全小写
3,String newStr=str.replace('a', 'A');//替换字符串中的某个字符为另一个字符
4,newStr="abc".replace("a", "fuck");//替换字符串中的某个字符为另一个字符串
5,newStr="abc".replaceAll("i[od]", "fuck");//根据正则表达式进行替换
6,String hi="Holle".concat("ninin");//把一个字符串拼接到另一个的末尾
7,System.out.println(hi.contains("ni"));//查看一个字符串是否在另一个当中
4,三个特殊方法
1,trim();--去掉字符串前后的空格,应该养成习惯
在比较的时候需要用
2,split();-----支付串拆分
返回一个字符串数组
如果以分隔符开头,都会正常拆分,如果以分隔结尾,后面都不会拆分,
分隔符可以用正则表达式表示
3,matches();--正则表达式
正则表达式(regex);用来规定一个字符串样式的模板,其本身也是字符串形式!
任何一个字符串都是一个正则表达式!
1,[]一个[]表示一个字符,里面填上这个字符所允许的符号,
^异或符号在正则表达式中相当于取返
2,{m,n}表示前面表达式最少出现m次,最多n次,没有n表示不限,
只有m表示只能出现几次;
?;0-1
+;1-n
*;0-n
3,(表达式1|表达式2|表达式3)可选表达式
4,例
String a=new Scanner(System.in).nextLine();
if(a.matches("(1[0-9]|200|[0-9]){2}00|[0-9]00")){
System.out.println("输入正确");
}else{
System.out.println("输入错误");
}
5,StringBuilder
1,字符串最大的问题内容不可变;StringBuilder内容可变
2,当需要操作到大量的字符串拼接时,String就会对性能产生影响
3,由此提出StringBuilder;也是jdk中提供的字符串类型,
专门用来解决内容不可变的问题;
4,它与String没有任何继承关系
5,StringBuilder不能做+号的拼接,只能支持它直接的方法
6,append();在尾部进行拼接
7,insert(5,"");在中间进行拼接
8,当我们做大量的String拼接时会出现性能消耗(String了内容不可变),
因此我们使用StringBuilder调用他的append()方法或insert()方法来进行替换
6,StringBuffer
1,跟StringBuilder一样,内容可变,用来解决String拼接的问题
2,两个提供的API都是一样的。
3,StringBuffer是线程安全的
4,StringBuffer是线程不安全的
5,凡是线程安全的由于执行了同步动作,导致效率低,
凡是线程不安全的表示他没有使用同步操作,效率高
6,线程安全性问题只会在多线程的特殊情况下才会出现,不是说多线程一定会出现,
所以没有安全问题的多线程或单线程优先使用StringBuilder
3,注意
String st=new String("NIHAO");//产生了两个String对象,一共产生了三个对象
五,包装类
1,用来做基本数据类型和引用数据类型之间转换
int转Ineger new Ineger()参数就是int
Ineger转int in.intValue();
Ineger转String in.toString();
String转Ineger new Ineger()参数是String
int转String Integer.toString();参数是int型,返回一个String
String转int Integer.parseInt();参数是字符串类型,返回一个int
Integer in=12;//自动封箱
int nem = in; //自动拆箱