- 转义字符 “\” 以反斜杠”\”开头,后跟一个或多个字符 如”\n” 回车 “\“为输出一个”\”
- 在程序运行过程中一直不会改变的量称为常量,通常被称为”final变量”
常量在整个程序中只能被赋值一次。在为所有对象共享的值时,常量是非常有用的
语法:final double PI = 3.14159D; //PI为常量
static final double PI=3.14; //PI为静态常量 static修饰的属性强调它们只有一个,final修饰的属性表明是一个常数(创建后不能被修改)
常量名一般使用大写字符
- static静态变量(又称类变量) 静态变量的有效范围可以跨类,甚至可达整个应用程序之内。对于静态变量,出了能在定义他的类中调用,还能直接以”类名.静态变量“的方式在其他类内调用。
语法: static double y=90;
- 类型转换 分为显性和隐性两种 和C语言一样的方法。
- b=++a;先让a++,再将a赋值给b;b=a++;先让a赋值给b,再将a++;
- (1)一维数组 ```java // 声明一个数组 int[] intArray0 ; int intArray1 [];
// 分配空间有三种方法,牢记,熟练掌握: scores=new int[5] int scores[]=new int[5]// 声明并分配空间 int scores[]={71,82,75,98,65}// 直接给初始化值
// 定义一个数组,保存五名学生的成绩 int[] scores = { 78, 93, 97, 84, 63 }; // 等价于 int[] scores = new int []{ 78, 93, 97, 84, 63 };
<br /> (2)二维数组<br />
```java
// 声明一个数组
int[][] intArray0 ;
int intArray1 [][];
// 分配空间
a=new int[2][4];
// 初始化
int myarr[][]={{12,0},{45,10}};//声明并分配空间
- Arrays类 ```java // 导入Arrays类 import java.util.Arrays;
// 使用Arrays类的sort()方法对数组进行排序(升序) Arrays.sort(hobbies);
// 使用Arrays类的fill()函数对数组充填 int arr[]=new int[5]; Arrays.fill(arr, 2);// 使用2对数组arr[]充填 Arrays.fill(a, fromIndex, toIndex, val);// a为数组 fromIndex为充填的开始 // toIndex为充填的结束 val为充填的值
// 使用Arrays类的copyOf()方法和copyOfRange()方法可以实现对数组的复制 int arr[]=new int[]{23,42,12}; // Arrays.copyOf(arr,newlength) arr为被复制的数组 newlength为新数组的长度 int newarr[]=Arrays.copyOf(arr, 5); // 使用Arrays.copyOfRange(arr,int formIndex,int toIndex) // arr为要复制的数组 formIndex为开始复制的索引位置 toIndex为要复制范围的最后索引位置 int newarr2[]=Arrays.copyOfRange(arr, 0, 3);
// 使用Arrays类的binarySearch()方法可以实现对数组的查找 int arr[]=new int[]{23,42,12,8};
// 将数组进行排序 Arrays.sort(arr);
// 查找arr中值为8的索引 // Arrays.binarySearch(a, fromIndex, toIndex, key) // a为数组 fromIndex为开始索引 toIndex为结束索引 kay为查找的值 int index=Arrays.binarySearch(arr,8); int index2=Arrays.binarySearch(arr, 0, 3, 8);
// 使用Arrays类的toString()方法将数组转换为字符串并输出 System.out.println(“排序后数组的值”); for(int s=0;s<hobbies.length;i++){ System.out,println(Arrays.toString(hobbies)); }
// 使用 foreach 操作数组 x为引用的变量 便利输出arr中的结果 int arr[]= {7,10,1}; for(int x:arr) { System.out.println(x); }
![](https://cdn.nlark.com/yuque/0/2020/jpg/2462488/1604297337428-bc953075-4b93-4f02-b27d-c659fa2865d7.jpg#align=left&display=inline&height=392&margin=%5Bobject%20Object%5D&originHeight=392&originWidth=779&status=done&style=none&width=779)
10. String
```java
String():一个 String 对象,使其表示一个空字符序列。
eg:
String s=new String();
String(char a[]):用一个字符数组a创建 String 对象。
eg:
char arr[]= {'g','o','o','d'};
String s=new String(arr);
System.out.println(s);
输出 good 等价于 String s = new String("good");
String(char a[], int offset, int length)
eg:
char arr[]= {'s','t','u','d','e','n','t'};
String s=new String(arr,2,4);
System.out.println(s);
输出 uden 第2个开始后面4个(从0开始);
连接数据使用"+"
获取字符串长度 str.length();
eg:
String str="We are students";
int size=str.length();
System.out.println("字符串的长度为"+size);
字符串查找 indexOf()和lastIndexOf()两种方法 参数可以是字符串也可以是字符串对象
indexOf()为返回第一个位置
lastIndexOf()为返回最后一个位置
eg:
String str="We are students";
String str2="tu";
int size=str.indexOf("a");
int strsize=str.indexOf(str2);
获取指定索引位置的字符 charAt()方法 参数为整型值
eg:
String s = "www.runoob.com";
char result = s.charAt(6);
System.out.println(result);
输出为'n'
获取子字符串 substring(int beginIndex,int endIndex) 方法 可以只写开始索引位置 不写结束位置(默认到最后)
eg:
String str="We are students";
String size=str.substring(4,8);
去除空格 trim()方法 去除掉前导空格和尾部空格
eg:
String str=" We are students ";
String size=str.trim();
System.out.println("字符串的长度为"+size);
字符串替换 replace(char oldChar,char newChar)
eg:
String str=" We are students ";
String size=str.replace('a', 'A');
判断字符串的开始和结束 startsWith(String prefix)和 endsWith(String suffix)方法 返回布尔型 prefix为判断是否为这个字符串开始,suffix同理
eg:
String str="We are students";
boolean a=str.startsWith("We");
boolean b=str.endsWith("ts");
判断字符串是否相等 equals(String otherstr)、 equalsIgnoreCase(String otherstr)两种方法 如果两个字符串长度相同可以使用 equals()
equalsIgnoreCase() 忽略大小写
eg:
String s1="abc";
String s2="ABC";
boolean a=s1.equals(s2);
boolean b=s1.equalsIgnoreCase(s2);
按字典顺序比较两个字符串 compare(String otherstr)
字母大小写转换 toLowerCase()和 toUpperCase()方法
字符串分割 split(String sign ,int limit)方法 sign为分割符 如果想定义多个分隔符 可使用符号"|",例如",|="表示分割符分别为","和"=" limit为拆分个数(可以不写,全部拆分)
eg:
String str="192.168.0.0.1";
//按照"."进行分割,使用转义字符"\\."
String []firstArray=str.split("\\.")//“.”和“|”都是转义字符,必须得加"\\";
for(String a:firstArray)
{
System.out.print(a+" ");
}
- 格式化字符串
格式化字符串 format(String str,args)方法
(1)日期和时间字符串格式化
eg:
Date date=new Date();
String year=String.format("%tY", date);
String month=String.format("%tB", date);
String day=String.format("%td", date);
System.out.println(year);//2018
System.out.println(month);//五月
System.out.println(day);//29
时间格式转换符:
格式化常见的日期时间组合:
%tF “年-月-日”
%tD “月/日/年”
%tc 全部日期和时间
%tr “时:分:秒 AM(PM)”(12小时)
%tT “时:分:秒”(24小时)
%tR “时:分”(24小时)
常规类型格式化:
| abstract | 抽象方法,抽象类的修饰符 | | —- | —- | | assert | 断言条件是否满足 | | boolean | 布尔数据类型 | | break | 跳出循环或者label代码段 | | byte | 8-bit 有符号数据类型 | | case | switch语句的一个条件 | | catch | 和try搭配捕捉异常信息 | | char | 16-bit Unicode字符数据类型 | | class | 定义类 | | const | 未使用 | | continue | 不执行循环体剩余部分 | | default | switch语句中的默认分支 | | do | 循环语句,循环体至少会执行一次 | | double | 64-bit双精度浮点数 | | else | if条件不成立时执行的分支 | | enum | 枚举类型 | | extends | 表示一个类是另一个类的子类 | | final | 表示一个值在初始化之后就不能再改变了
表示方法不能被重写,或者一个类不能有子类 | | finally | 为了完成执行的代码而设计的,主要是为了程序的健壮性和完整性,无论有没有异常发生都执行代码。 | | float | 32-bit单精度浮点数 | | for | for循环语句 | | goto | 未使用 | | if | 条件语句 | | implements | 表示一个类实现了接口 | | import | 导入类 | | instanceof | 测试一个对象是否是某个类的实例 | | int | 32位整型数 | | interface | 接口,一种抽象的类型,仅有方法和常量的定义 | | long | 64位整型数 | | native | 表示方法用非java代码实现 | | new | 分配新的类实例 | | package | 一系列相关类组成一个包 | | private | 表示私有字段,或者方法等,只能从类内部访问 | | protected | 表示字段只能通过类或者其子类访问
子类或者在同一个包内的其他类 | | public | 表示共有属性或者方法 | | return | 方法返回值 | | short | 16位数字 | | static | 表示在类级别定义,所有实例共享的 | | strictfp | 浮点数比较使用严格的规则 | | super | 表示基类 | | switch | 选择语句 | | synchronized | 表示同一时间只能由一个线程访问的代码块 | | this | 表示调用当前实例
或者调用另一个构造函数 | | throw | 抛出异常 | | throws | 定义方法可能抛出的异常 | | transient | 修饰不要序列化的字段 | | try | 表示代码块要做异常处理或者和finally配合表示是否抛出异常都执行finally中的代码 | | void | 标记方法不返回任何值 | | volatile | 标记字段可能会被多个线程同时访问,而不做同步 | | while | while循环 |
- 异常处理