---恢复内容开始---

Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。所有类在创建对象的时候,最终找的父类就是Object。

* String toString()  : 返回该对象的字符串表示

*  return getClass().getName() + "@" + Integer.toHexString(hashCode());

*  getClass():返回一个字节码对象

*  Integer.toHexString():返回指定参数的十六进制字符串形式

*  hashCode():返回该对象的哈希码值(内部地址)

重写equals()方法

1@Override 2 public booleanequals(Object obj) {3 //提高效率

4 if (this ==obj)5 return true;6

7 if (obj == null)8 return false;9 //提高健壮性

10 if (getClass() !=obj.getClass())11 return false;12

13 //向下转型

14 Person other =(Person) obj;15

16 if (age !=other.age)17 return false;18 if (name == null) {19 if (other.name != null)20 return false;21 } else if (!name.equals(other.name))22 return false;23 return true;24 }

返回两个数中间的随机数:

1         int number = (int) (Math.random() * (end - start + 1)) + start;

2         return number;

* Random:产生随机数的类

*

* 构造方法:

* public Random():没有给种子,用的是默认种子,是当前时间的毫秒值

* public Random(long seed):给出指定的种子

*

* 给定种子后,每次得到的随机数是相同的。

*

* 成员方法:

* public int nextInt():返回的是int范围内的随机数

* public int nextInt(int n):返回的是[0,n)范围的内随机数

1 //创建对象

2 //Random r = new Random();

3 Random r = new Random(1111);4

5 for (int x = 0; x < 10; x++) {6 //int num = r.nextInt();

7 int num = r.nextInt(100) + 1;8System.out.println(num);9 }

* System:包含一些有用的类字段和方法。它不能被实例化

* static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

* 复制数组

* 参数1:源数组

* 参数2:源数组的起始索引位置

* 参数3:目标数组

* 参数4:目标数组的起始索引位置

* 参数5:指定接受的元素个数

1 //定义数组

2 int[] arr = { 11, 22, 33, 44, 55};3 int[] arr2 = { 6, 7, 8, 9, 10};4

5 //请大家看这个代码的意思

6 System.arraycopy(arr, 1, arr2, 2, 2);7

8System.out.println(Arrays.toString(arr));9 System.out.println(Arrays.toString(arr2));

*  static long currentTimeMillis() :以毫秒值返回当前系统时间

*  这个毫秒的时间是相对时间,相对于1970-1-1 00:00:00 : 0

1   long start =System.currentTimeMillis();2 for (int i = 0; i < 100000; i++) {3System.out.println(i);4}5 long end =System.currentTimeMillis();6 System.out.println(end - start);

static void exit(int status)

终止当前正在运行的 Java 虚拟机

static void gc()

运行垃圾回收器

* BigInteger:可以让超过Integer范围内的数据进行运算

* public BigInteger add(BigInteger val):加

* public BigInteger subtract(BigInteger val):减

* public BigInteger multiply(BigInteger val):乘

* public BigInteger divide(BigInteger val):除

* public BigInteger[] divideAndRemainder(BigInteger val):返回商和余数的数组

* 因为float类型的数据存储和整数不一样导致的。它们大部分的时候,都是带有有效数字位。由于在运算的时候,float类型和double很容易丢失精度,演示案例。所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal

*

* BigDecimal类:不可变的、任意精度的有符号十进制数,可以解决数据丢失问题。

* 构造方法:

* public BigDecimal(String val)

*

* public BigDecimal add(BigDecimal augend)

* public BigDecimal subtract(BigDecimal subtrahend)

* public BigDecimal multiply(BigDecimal multiplicand)

* public BigDecimal divide(BigDecimal divisor)

* public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode):商,几位小数,如何舍取

System.out.println("divide:" +

bd7.divide(bd8, 8, BigDecimal.ROUND_HALF_UP));

* Date: 表示特定的瞬间,精确到毫秒,他可以通过方法来设定自己所表示的时间,可以表示任意的时间

*

System.currentTimeMillis():返回的是当前系统时间,1970-1-1至今的毫秒数

*

* 构造方法:

*

Date() :创建的是一个表示当前系统时间的Date对象

Date(long

date) :根据"指定时间"创建Date对象

* public long getTime():获取时间,以毫秒为单位

* public void setTime(long time):设置时间

*

* 从Date得到一个毫秒值

* getTime()

* 把一个毫秒值转换为Date

* 构造方法

* setTime(long time)

1 Date d = new Date();//默认当前系统时间

2 //d.setTime(1000 * 60 * 60 * 24 * 2);

3System.out.println(d.toLocaleString());4 System.out.println(d.getTime());//172800000

5

6

7 d.setTime(172800000L);8 System.out.println(d.toLocaleString());

* Date -- String(格式化)

* public final String format(Date date)

*

* String -- Date(解析)

* public Date parse(String source)

*

* DateForamt:可以进行日期和字符串的格式化和解析,但是由于是抽象类,所以使用具体子类SimpleDateFormat。

*

* SimpleDateFormat的构造方法:

* SimpleDateFormat():默认模式

* SimpleDateFormat(String pattern):给定的模式

* 这个模式字符串该如何写呢?

* 通过查看API,我们就找到了对应的模式

* 年 y

* 月 M

* 日 d

* 时 H

* 分 m

* 秒 s

*

* 2014年12月12日 12:12:12

1 //Date -- String

2 //创建日期对象

3 Date d = newDate();4 //创建格式化对象

5 //SimpleDateFormat sdf = new SimpleDateFormat();

6 //给定模式

7 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");8 //public final String format(Date date)

9 String s =sdf.format(d);10 System.out.println(s);

1 //String -- Date

2 String str = "2008-08-08 12:12:12";3 //在把一个字符串解析为日期的时候,请注意格式必须和给定的字符串格式匹配

4 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");5 Date dd =sdf2.parse(str);6 System.out.println(dd);

Calener类用法:

* Calendar:它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

*

* public int get(int field):返回给定日历字段的值。日历类中的每个日历字段都是静态的成员变量,并且是int类型。

1 //其日历字段已由当前日期和时间初始化:

2 Calendar rightNow = Calendar.getInstance(); //子类对象3

4 //获取年

5 int year =rightNow.get(Calendar.YEAR);6 //获取月

7 int month =rightNow.get(Calendar.MONTH);8 //获取日

9 int date =rightNow.get(Calendar.DATE);10

11 System.out.println(year + "年" + (month + 1) + "月" + date + "日");

1 //获取当前的日历时间

2 Calendar c =Calendar.getInstance();3

4 //获取年

5 int year =c.get(Calendar.YEAR);6 //获取月

7 int month =c.get(Calendar.MONTH);8 //获取日

9 int date =c.get(Calendar.DATE);10 System.out.println(year + "年" + (month + 1) + "月" + date + "日");11

12

13 //5年后的10天前

14 c.add(Calendar.YEAR, 5);15 c.add(Calendar.DATE, -10);16 //获取年

17 year =c.get(Calendar.YEAR);18 //获取月

19 month =c.get(Calendar.MONTH);20 //获取日

21 date =c.get(Calendar.DATE);22 System.out.println(year + "年" + (month + 1) + "月" + date + "日");23 System.out.println("--------------");24

25 c.set(2011, 11, 11);26 //获取年

27 year =c.get(Calendar.YEAR);28 //获取月

29 month =c.get(Calendar.MONTH);30 //获取日

31 date =c.get(Calendar.DATE);32 System.out.println(year + "年" + (month + 1) + "月" + date + "日");

* 获取任意一年的二月有多少天

1 //键盘录入任意的年份

2 Scanner sc = newScanner(System.in);3 System.out.println("请输入年份:");4 int year =sc.nextInt();5

6 //设置日历对象的年月日

7 Calendar c =Calendar.getInstance();8 c.set(year, 2, 1); //其实是这一年的3月1日9 //把时间往前推一天,就是2月的最后一天

10 c.add(Calendar.DATE, -1);11

12 //获取这一天输出即可

13 System.out.println(c.get(Calendar.DATE));

* 需求:判断一个数是否符合int类型的范围

* 由于基本数据类型只能做一些简单的操作和运算,所以Java为我们封装了基本数据类型,为每种基本数据类型提供了包装类

* 包装类就是封装了基本数据类型的类,为我们提供了更多复杂的方法和一些变量

1 //Integer(String s)

2 Integer i = new Integer("10");3System.out.println(i);4

5 //int intValue()

6 int a =i.intValue();7 System.out.println(a + 10);8

9 //static int parseInt(String s)

10 int b = Integer.parseInt("20");11 System.out.println(b + 30);12

13

14 //Integer(int value)

15 Integer i2 = new Integer(40);16 String s =i2.toString();17System.out.println(s);18

19 //static String toString(int i)

20 String s2 = Integer.toString(50);21 //System.out.println(s2);

* JDK1.5特性:自动装箱和拆箱

1 //自动装箱

2 //相当于: Integer i = new Integer(10);

3 //Integer i = 10;

4

5 //自动拆箱

6 //相当于 int a = i.intValue();

7 //Integer i = 10;

8 //int a = i;

9

10 Integer i = 10;11 Integer i2 = 20;12 Integer i3 = i +i2;13 /*14 * Integer i3 = new Integer(i.intValue() + i2.intValue());

15 *

16*/

17 ArrayList list = newArrayList();18 list.add(1);//自动装箱,list.add(new Integer(1));

正则表达式:就是一套规则,可以用于匹配字符串

boolean matches(String regex) :判断当前字符串是否匹配指定的正则表达式,如果匹配则返回true,否则返回false

判断字符串是不是都由数字组成:

1 //必须都是数字

2 for (int i = 0; i < length; i++) {3 //得到参数的每一个字符

4 char c =qq.charAt(i);5 if(c < '0' || c > '9') {6 return false;7}8 }

或者:

1 char[] chs =qq.toCharArray();2 for (int x = 0; x < chs.length; x++) {3 char ch =chs[x];4 if (!Character.isDigit(ch)) {5 flag = false;6 break;7}8 }

* 校验qq号码

* 要求必须是5-15位

* 0不能开头

* 必须都是数字

boolean flag = qq.matches("[1-9][0-9]{4,14}");

//定义邮箱的规则

//String regex =

"[a-zA-Z_0-9]+@[a-zA-Z_0-9]{2,6}(\\.[a-zA-Z_0-9]{2,3})+";

String regex = "\\w+@\\w{2,6}(\\.\\w{2,3})+";

* 分割功能

* String类的public String[] split(String regex)

* 根据给定正则表达式的匹配拆分此字符串。

1 //定义一个年龄搜索范围

2 String ages = "18-24";3

4 //定义规则

5 String regex = "-";6

7 //调用方法

8 String[] strArray =ages.split(regex);9

10 // //遍历

11 //for(int x=0; x

12 //System.out.println(strArray[x]);

13 //}

14

15 //如何得到int类型的呢?

16 int startAge = Integer.parseInt(strArray[0]);17 int endAge = Integer.parseInt(strArray[1]);

//硬盘上的路径,我们应该用\\替代\

1 String s4 = "E:\\JavaSE\\day14\\avi";2 String[] str4Array = s4.split("\\\\");3 for (int x = 0; x < str4Array.length; x++) {4System.out.println(str4Array[x]);5 }

* 我有如下一个字符串:"91 27 46 38 50"

* 请写代码实现最终输出结果是:"27 38 46 50 91"

1 //定义一个字符串

2 String s = "91 27 46 38 50";3

4 //把字符串进行分割,得到一个字符串数组

5 String[] strArray = s.split(" ");6

7 //把字符串数组变换成int数组

8 int[] arr = new int[strArray.length];9

10 for (int x = 0; x < arr.length; x++) {11 arr[x] =Integer.parseInt(strArray[x]);12}13

14 //对int数组排序

15Arrays.sort(arr);16

17 //把排序后的int数组在组装成一个字符串

18 StringBuilder sb = newStringBuilder();19 for (int x = 0; x < arr.length; x++) {20 sb.append(arr[x]).append(" ");21}22 //转化为字符串

23 String result =sb.toString().trim();24

25 //输出字符串

26 System.out.println("result:"+result);

* 替换功能

* String类的public String replaceAll(String

regex,String replacement)

* 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。

1 //定义一个字符串

2 String s = "helloqq12345worldkh622112345678java";3

4 //我要去除所有的数字,用*给替换掉

5 //String regex = "\\d+";

6 //String regex = "\\d";

7 //String ss = "*";

8

9 //直接把数字干掉

10 String regex = "\\d+";11 String ss = "";12

13 String result =s.replaceAll(regex, ss);14 System.out.println(result);

* 获取功能

* Pattern和Matcher类的使用

*

* 模式和匹配器的基本使用顺序

1 //模式和匹配器的典型调用顺序

2 //把正则表达式编译成模式对象

3 Pattern p = Pattern.compile("a*b");4 //通过模式对象得到匹配器对象,这个时候需要的是被匹配的字符串

5 Matcher m = p.matcher("aaaaab");6 //调用匹配器对象的功能

7 boolean b =m.matches();8 System.out.println(b);

* 获取功能:

* 获取下面这个字符串中由三个字符组成的单词

* da jia ting wo shuo,jin tian yao xia yu,bu shang wan zi xi,gao xing bu?

1 //定义字符串

2 String s = "da jia ting wo shuo,jin tian yao xia yu,bu shang wan zi xi,gao xing bu?";3 //规则

4 String regex = "\\b\\w{3}\\b";5

6 //把规则编译成模式对象

7 Pattern p =Pattern.compile(regex);8 //通过模式对象得到匹配器对象

9 Matcher m =p.matcher(s);10 //调用匹配器对象的功能

11 //通过find方法就是查找有没有满足条件的子串

12 //public boolean find()

13

14

15 while(m.find()) {16System.out.println(m.group());17}18

19 //注意:一定要先find(),然后才能group()

20 //IllegalStateException: No match found

21 //String ss = m.group();

22 //System.out.println(ss);

常用的正则表达式:

A:字符

x 字符 x。举例:'a'表示字符a

\\ 反斜线字符。

\n 新行(换行)符 ('\u000A')

\r 回车符 ('\u000D')

B:字符类

[abc] a、b 或 c(简单类)

[^abc] 任何字符,除了 a、b 或 c(否定)

[a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)

[0-9] 0到9的字符都包括

C:预定义字符类

. 任何字符。我的就是.字符本身,怎么表示呢? \.

\d 数字:[0-9]

\w 单词字符:[a-zA-Z_0-9]

在正则表达式里面组成单词的东西必须有这些东西组成

D:边界匹配器

^ 行的开头

$ 行的结尾

\b 单词边界

就是不是单词字符的地方。

举例:hello world?haha;xixi

E:Greedy 数量词

X? X,一次或一次也没有

X* X,零次或多次

X+ X,一次或多次

X{n} X,恰好 n 次

X{n,} X,至少 n 次

X{n,m} X,至少 n 次,但是不超过 m 次

java 高级api_Java常用API-高级相关推荐

  1. java 有多少api_Java常用API(二)

    API 正则表达式 正则表达式的概念 正则表达式(英语:Regular Expression,在代码中常简写为regex) 正则表达式是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符 ...

  2. Java类TreeMap常用API补充

    TreeMap常用API补充 TreeMap常用API详解 package TreeMap_UtilityClass;import java.util.*;/*** TreeMap常用API补充*/ ...

  3. java(四)【常用API,自定义泛型、collection接口】

    day04[常用API.正则表达式,泛型.Collection集合API] 主要内容 Date类 Java是面向对象的思想,会用一个类来代表一个事物. Date代表了系统当前此刻日期对象!年月日时分秒 ...

  4. Java NIO及其常用API

    一.初识NIO > 在 JDK 1. 4 中 新 加入 了 NIO( New Input/ Output) 类, 引入了一种基于通道和缓冲区的 I/O 方式,它可以使用 Native 函数库直接 ...

  5. Java Map集合常用API及3种遍历方式

    1.map的常用API map是双列集合的顶层接口,是所有的双列集合都可以继承使用 2.使用Map集合 //1.创建Map集合的对象Map<String, String> m = new ...

  6. linux java api_Java常用API、Math类介绍

    一.API的概述 API--Application Programing Interface:应用程序编程接口,是java提供的一些预定义的函数: 目的:基于API实现程序的快速编写,只需了解其作用, ...

  7. java+@api_java 常用API

    Arrays实用功能public class ArraysFunc { public static void main(String[] args) { int[] i = new int[7]; i ...

  8. java正则表达式及api_JAVA常用API:正则表达式regular expression

    一.正则表达式的概念 正则表达式,regular expression,在代码中通常简写成regex 正则表达式是一个字符串,使用每单个字符串来描述.定义匹配规则,匹配一系列符合某个语法规则的字符串. ...

  9. java robot api_java机器人API学习笔记

    robocode 部分 API 中文参考 ahead 向前 public void ahead(double distance) Immediately moves your robot ahead ...

  10. java核心api_Java核心API需要掌握的程度..你做到了多少??

    评论 19 楼 lovelh 2010-09-10 编程思想啊...... 18 楼 xiang.beyond 2010-09-08 A_Jane 写道 把API烂熟于心又如何?难道一辈子去做程序员? ...

最新文章

  1. 利用yum下载软件包的三种方法
  2. vue怎么引入外网json文件
  3. 恶搞c语言程序设计,C语言编程学习:让人绝望的C语言恶搞小程序(二)
  4. “埃尼阿克”背后的6个女孩
  5. 求10000以内n的阶乘(信息学奥赛一本通-T1172)
  6. 2016-02-24 获取设备 通知开关
  7. springboot Hello World探究
  8. struts一个action处理多个方法
  9. CSS布局:图片在DIV中上下左右居中(水平和垂直都居中)
  10. 张鹏程:7月24日阿里云上海峰会弹性计算大神
  11. 使用calibration_toolkit进行相机和三维激光雷达的联合标定(详细步骤)
  12. 台达plc自由口通讯_台达PLC串行通讯及应用案例
  13. web前端开发期末大作业 ——个人主页(可自取源码)
  14. 计算机关闭声音快捷键,电脑声音快捷键【运用方式】
  15. 基于cocos-2dx的游戏制作——I wanna save the princess
  16. 拥挤城市怎么在电脑上玩 拥挤城市电脑版玩法教程
  17. 中学-知识与能力【10】
  18. java中的画图公式_GitHub - oneSaber/Compiler-java: 函数绘图语言java实现
  19. 浅析供应链金融的Five模式
  20. 树链剖分——树链剖分模板

热门文章

  1. mac安装xdebug
  2. C#反射(Reflection)对类的属性get或set值
  3. linux下RRDTool安装方法
  4. 进入传奇荣耀显示服务器不存在,传奇荣耀————【合区】5月10日合区公告
  5. 送起来oracle,十一,送你 51 个 Oracle 常用语句~
  6. python中测试字符串类型的函数_Python新手学习基础之数据类型——字符串类型
  7. 树莓派python智能家居_用树莓派DIY一个智能家居服务器
  8. springboot自定义starter启动器
  9. mysql show profile_MySQL show profile使用说明
  10. java背包算法_背包算法java版