Java学习笔记170325

来源:互联网 发布:photoshop破解补丁mac 编辑:程序博客网 时间:2024/05/22 03:18

换一本书,重新出发!

1、Java程序的基本组成单位是类,类中又包含属性与方法两部分,每一个应用程序都必须包含一个main()方法,含有main()方法的类称为主类

2、常量final 数据类型 常量名称[ = 值];
- 当定义的final变量属于“成员变量”时,必须在定义时就设定他的初始值,否则会编译出错。
- 在方法中定义的常量,可以在后续的语句中赋初始值。
-
3、成员变量局部变量
(1)成员变量:在类体中所定义的变量称为成员变量,在整个类中都有效。成员变量包含静态变量(类变量)和实例变量。
- 静态变量(类变量): static int x = 1;(类型前含有static关键字)
- 实例变量: int y =1;
- 静态变量的有效范围可以跨类,甚至可以达到整个应用程序之内。对于静态变量,出了能在定义它的类内存取,还能直接以“类名.静态变量”的方式在其他类中使用。
(2)局部变量:在类的方法中定义的变量。

4、移位操作
(1)<<:左移,低位补0;左移n位,乘以2^n
(2)>>:右移,高位补与原最高位相同的值;右移n位,除以2^n
(3)>>>:无符号右移,高位补0

5、foreach语句:

package day01;public class Repetition {    public static void main(String[] args) {        // TODO Auto-generated method stub        int arr[] = {7, 10, 1};        System.out.println("一维数组中的元素分别为:");        for(int x : arr) //foreach语句,int x 引用的变量,arr指向要循环遍历的数组,最后将x输出        {            System.out.println(x);        }    }}

用来遍历数组等,元素变量x不必对其进行初始化。

6、字符串
(1)p82列举了几种字符串的创建方法,其中通过字符串常量的引用赋值给一个字符串变量比较常用

String str = "Hello World!";

或者

String strstr = "Hello World!";

(2)字符串连接:+
(3)获取字符串长度:str.length();(包括空格)
(4)字符串查找:
- str.indexOf(substr);返回搜索的字符或者字符串首次出现的位置
- str.lastIndexOf(substr);返回搜索的字符或者字符串最后一次出现的位置
- str.lastIndexOf("");参数是空字符串""(注意没有空格)返回字符串长度
(5)获取指定索引位置的字符:str.charAt(int index)char mychar = str.charAt(6);(包括空格)
(6)获取子字符串:
- str.substring(int beginIndex)返回的是从指定的索引位置开始截取直到该字符串结尾的子串。
- str.substring(int beginIndex, int endIndex)返回的是从指定的索引位置开始截取至某一索引位置结束的子串。
(7)去除空格:str.trim()忽略前导空格和尾部空格,字符之间的空格不忽略。
(8)字符串替换:str.replace(char oldChar,char newChar )str.replace(String oldString, String newString)
(9)判断字符串的开始与结尾:str.startsWith(Sring prefix)str.endsWith(Sring 、suffix)返回值为boolean类型
(10)判断字符串是否相等:
- 对字符串对象进行比较不能简单地使用比较运算符“==”,因为比较运算符比较的是两个字符串的地址是否相等,即使两个字符串的内容相同,两个对象的内存地址也可能是不同的,使用比较运算符仍然会返回false。
- str.equals(String otherstr)比较时区分大小写
- str.equalsIsIgnoreCase(String otherstr)比较时不区分大小写

(11)按字典顺序比较两个字符串:str.compareTo(String otherstr)
(12)字母大小写转换:str.toUpperCase()str.toLowerCase()
(13)字符串分割:str.split(String sign)或者str.split(String sign,int limit)(p95)

7、数组
(1)声明并用new分配内存
- 先声明:int[] arr;或者int arr[];
- 再分配内存:arr = new int[5];
- 简化为:int[] arr= new int[5];或者int arr[] = new int[5];
- 动态初始化:for(int i = 0; i < 5; i++){arr[i] = 12}
使用new关键字为数组分配内存时,整形数组中各个元素的初始值都为0
int[] arr= new int[5]; arr = {1,2,3,4,5};是错误的,声明后只能动态初始化
(2)声明并初始化(静态)
- int arr[] = new int[]{1,2,3,4,5};

(3)可以为二维数组的每一维分配内存:

int a[][];a = new int[2][];a[0] = new int[3];a[1] = new int[4];

(4)几个函数(引入java.util.Arrays包)
- Arrays.fill(int[] a, int value)用value替换数组中的所有元素
- Arrays.fill(int[] a, int fromIndex, int toIndex, int value)用value替换数组索引从fromIndex(包括)到toIndex(不包括)的元素
- Arrays.sort(object)排序
- Arrays.copyOf(arr,int newlength)复制数组,不够长度补0(int)或null(char),过长截断。
- Arrays.copyOfRange(arr,int fromIndex, int toIndex)复制数组中索引从fromIndex(包括)到toIndex(不包括)的元素
- Arrays.binarySearch(object[]a,objectkey)二分搜索法查找数组,需要先进行排序
- Arrays.binarySearch(object[]a, int fromIndex, int toIndex, objectkey)二分搜索法查找数组,需要先进行排序

对于查找函数的说明:

binarySearch()方法提供了多种重载形式,用于满足各种类型数组的查找需要,binarySearch()有两种参数类型注:此法为二分搜索法,故查询前需要用sort()方法将数组排序,如果数组没有排序,则结果是不确定的,另外如果数组中含有多个指定值的元素,则无法保证找到的是哪一个。⑴.binarySearch(object[ ], object key);如果key在数组中,则返回搜索值的索引;否则返回-1或者"-"(插入点)。插入点是索引键将要插入数组的那一点,即第一个大于该键的元素索引。eg:package Number;import java.util.Arrays;public class IntFunction{    public static void main (String []args)    {        int a[] = new int[] {1, 3, 4, 6, 8, 9};        int x1 = Arrays.binarySearch(a, 5);        int x2 = Arrays.binarySearch(a, 4);        int x3 = Arrays.binarySearch(a, 0);        int x4 = Arrays.binarySearch(a, 10);        System.out.println("x1:" + x1 + ", x2:" + x2);        System.out.println("x3:" + x3 + ", x4:" + x4);    }}/*输出结果:x1:-4, x2:2x3:-1, x4:-7*/1.不存在时由1开始计数;2.存在时由0开始计数。⑵.binarySearch(object[ ], int fromIndex, int endIndex, object key);如果要搜索的元素key在指定的范围内,则返回搜索键的索引;否则返回-1或者"-"(插入点)。eg:1.该搜索键在范围内,但不在数组中,由1开始计数;2.该搜索键在范围内,且在数组中,由0开始计数;3.该搜索键不在范围内,且小于范围内元素,由1开始计数;4.该搜索键不在范围内,且大于范围内元素,返回-(endIndex + 1);(特列)eg:package Number;import java.util.Arrays;public class IntFunction{    public static void main (String []args)    {        int a[] = new int[] {1, 3, 4, 6, 8, 9};        int x1 = Arrays.binarySearch(a, 1, 4, 5);        int x2 = Arrays.binarySearch(a, 1, 4, 4);        int x3 = Arrays.binarySearch(a, 1, 4, 2);        int x4 = Arrays.binarySearch(a, 1, 3, 10);        System.out.println("x1:" + x1 + ", x2:" + x2);        System.out.println("x3:" + x3 + ", x4:" + x4);    }}/*输出结果:x1:-4, x2:2x3:-2, x4:-4*/
0 0
原创粉丝点击