好程序员大数据学习路线之大数据自学路线一
System类
exit():终止虚拟机
gc():运行垃圾回收机制
currentTimeMillis():返回以毫秒为单位的当前时间
arraycopy(Object src,int srcPos, Object dest,int destPos,int length):
从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束
String
不可变字符串:String
String s = "s";
不可变字符串是一个常量,改变会指向新开辟空间
存储在堆区的字符串常量区
同一个字符串常量在常量区只允许存储一个值
s1 = "1000"; s2 = "1000"; s1==s2;//true
a = "00"; s3 = "10"+a; s1==s3;//false
s4 = "10"+new String("00"); s1==s4;//false
String默认重写了Object的equals()方法,可以进行值的比较
String常用方法
1.boolean contains(CharSequence s):判断是否包含一个子字符串
2.boolean equals(Object anObject):判断两个字符串的内容是否相同
3.boolean equalsIgnoreCase(String anotherString):忽略大小写判断两个字符串的内容是否相同
4.boolean startsWith(String prefix):判断是否以某字符串开头
5.boolean endsWith(String suffix):判断是否以某字符串结尾
6.将字符数组转换成字符串:
1.构造方法:String(char[] value) 、String(char[] value, int offset, int count)
2.使用静态方法:static String copyValueOf(char[] data)、static String copyValueOf(char[] data, int offset, int count)
7.将字符串转成字符数组:toCharArray()
8.将基本数据类型转换成字符串:String.valueOf()-----字符串转int:Integer.parseInt()
9.替换:String replace(char oldChar, char newChar)
10.获取字串:String substring(int beginIndex)、String substring(int beginIndex, int endIndex):不包括右边界
11.大小写转换:String toLowerCase()、String toUpperCase()
12.去除字符串两端的空格:String trim()
13.字典顺序比较两个字符串:int compareTo(String anotherString)
14.切割:String[] split(String)
StringBuffer和StringBuilder
可变字符串:StringBuffer(线程安全)、StringBuilder(线程不安全)
*线程是工作的最小单位
*软件更新的作用:增加功能;修改bug;增加安全性;提升用户体验
StringBuffer sb = new StringBuffer("sb");//可以传String参
常用方法:
1.从最后插入元素:StringBuffer append(boolean b)
2.从指定位置插入元素:StringBuffer insert(int offset, boolean b)
3.删除一部分字符串:StringBuffer delete(int start, int end)
4.删除一个字符:StringBuffer deleteCharAt(int index)
5.替换指定的子字符串:StringBuffer replace(int start, int end, String str)
6.修改一个字符:void setCharAt(int index, char ch)
7.获取:char charAt(int index)
8.从左到右返回指定子字符串的下标:int indexOf(String str)
9.返回长度(字符数):int length()
10.反转:StringBuffer reverse()
网址
实现客户端与服务器的通信
网址:协议+域名+端口+资源在服务器的路径+查询条件
http协议:超文本传输协议
https协议:安全的http协议
作业:切割网址
日期类Date
Date date = new Date();//获取当前时间(西方日期格式)
Date date = new Date(3000);//获取当前时间(西方日期格式)
获取long型的时间,从1970年开始计算的毫秒数
long time = date.getTime;//毫秒
日期格式转换器:
```java
//1.使用系统提供的默认的格式-DateFormat--提供了四种可选模式:short,long,full,default
//第一个参数用于指定日期格式 第二个参数用于指定时间格式
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
String stringDate = dateFormat.format(new Date());
System.out.println(stringDate);
//1993-02-03 23:23:12 1993/02/03 23:23:12
//2.使用自定义的日期格式转换器实现自由转换----SimpleDateFormat
//"E yyyy.MM.dd 'at' hh:mm:ss a zzz"
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//HH代表24小时制
String stringDate1 = simpleDateFormat.format(new Date());
System.out.println(stringDate1);
```
日历类Calendar
Calendar calendar = Calendar.getInstance();
| Calendar.YEAR | 年份 |
| --------------------- | ------------------------------ |
| Calendar.MONTH | 月份 |
| Calendar.DATE | 日期 |
| Calendar.DAY_OF_MONTH | 日期,和上面的字段意义完全相同 |
| Calendar.HOUR | 12小时制的小时 |
| Calendar.HOUR_OF_DAY | 24小时制的小时 |
| Calendar.MINUTE | 分钟 |
| Calendar.SECOND | 秒 |
| Calendar.DAY_OF_WEEK | 星期几 |
#### 权限修饰符:
private:同一个类
默认(default/friendly):同一个包
protected:同一个包、不同包的所有继承关系
public:所有都能访问
数组工具类Arrrays
内部封装了大量操作数组的静态方法:
toString(arr):简单数据类型数组转字符串
asList(arr):简单数据类型数组转集合,将整个数组作为1个元素
asList(strings):引用数据类型数组转集合,一个数组元素对应一个元素
数组转过来的集合长度固定,不能执行增加,删除,可以执行修改,遍历
binarySearch(arr,key);//二分查找
正则表达式
qq = "4446512";
String regex = "[1-9]\\d{4,12}";
boolean istrue = qq.matches(regex);
[]:限定某一位,能取到的值的范围
\d:代表数字
{}:限定个数
匹配:matches(regex); 切割:split(regex);
替换:replaceAll(regex,place)
```
正则表达式:
预定义字符:
. 匹配任何字符(与行结束符可能匹配可能不匹配)
\d 数字[0-9]
\D 非数字 [^0-9]
\s 空白字符 [ \t \n \x0B \f \r]
\S 非空白字符 [^\s]
\w 单词字符[a-z A-Z _ (下划线) 和0-9]
\W 非单词字符[^\w]
注意 任何预定义字符没有没有加上数量词之前都只能匹配一个字符而已
数量词 :
X? 一次或者一次都没有
X* 零次或多次
X+ 一次或多次
X{n} 恰好n次
X{n,} 至少n次
X{n,m} 至少n次,不超过m次
范围词:
[abc] a, b, c中的一个
[^abc] 任何字符 除了 a b c
[a-zA-Z] a到z A到Z 两头的字母包括在内
[a-d[m-p]] a到d 或 m到p:[a-dm-p](并集)
注意 范围次不管有多长,没有数量词只能匹配一个字符而已
```