Java教程

Java学习笔记(持续更新)

本文主要是介绍Java学习笔记(持续更新),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

JAVA

For循环

Loop : for (){
    for(){
        break Loop;//这里的break为直接跳出Loop后的循环,而非跳出本级循环
        continue Loop;//continue同理
    }
}

String 类

char a[] = {'I','am','java'};
String str = new String(a);

等价于

String str = new String("Iamjava");
new String(a,2,4)//从数组第二个开始截取,取四个字符形成新的字符串 :mjav

indexof()函数

String str = "hello world";
int size = str.indexOf("o");//查找第一次出现该字符时的位置
int size = str.lastIndexOf("d")//查找最后一次出现该字符的位置

charAt()函数

String str = "hello world";
char mychar = str.charAt(6);//查找设定位置中字符时是什么

substring()函数

String str = "xxxcccbbb"
String substr = str.substring(3)//从第三个位置开始截取,形成新得字符串:cccbbb
String substr = str.substring(3,6)//从第三个位置开始,第六个位置结束,截取新得字符串:ccc
	### trim()函数
String str = "    hello world    ";
str.trim();//去掉字符串前面和尾部的空格,保留字符串中的空格
	### replace()函数
String str ;
str.replace(oldchar,newchar);//将str中的字符替换为新得字符,如有多个,就都替换
//前提是oldchar和newchar都必须只是大小写关系比如'a''A'不能是'a''B'

startsWith()与 endsWith()函数

boolean re = str.startsWith("abc");//判断字符串是否是以指定的字符串开头
boolean re = str.endsWith("abc");//判断字符串是否是以指定的字符串结尾
//两者都返回boolean类型

equalsIgnoreCase()函数

equals()函数是对字符串区分大小写的比较

而equalsIgnoreCase()对字符串比较不区分大小写,返回类型依旧是boolean (可用于验证码)

compareTo()函数

比较两个字符串在Unicode中值的大小

比如 b 与 a 比较 返回 1 ,b 与 c 比较 返回 -1 ,相同则为0(仅在equals中返回true时)

toLowerCase()和toUpperCase()

这两个方法的作用分别是将字符串的所有字符转换为小写和大写

split()函数

str.split("分割符");
//如果想要多个分隔符,可使用“|”,例如 “,|=” 表示分割符为“,” 和 “=”
str.split("分割符",分割次数)

分割符为想要以字符串的什么作为分割

如152.122.111.255 如果分割符为“ . ”那么就会被分割成4个数组

如果加上分割次数,例:分割次数为两次 会生成 “152” 和“122.111.255”两个字符串数组

format()函数

String类型的格式化:详见Java从入门到精通清华大学版P92

正则表达式

相关规则详见详见Java从入门到精通清华大学版P92

String regex = ""//正则表达式
str.matches(regex);//判断str是否满足正则表达式 返回true或false

StringBuilder

​ String类每次改变都会重新产生一个新得实例,会在内存中创建新的字符串对象。

​ StringBuilder操作消耗时间更少

StringBuilder str = new StringBuilder();//定义StringBuilder的方式

​ 1、append(content)方法:向字符串中添加数据,content类型可以接收任何类型的数据

​ 2、insert(int affset,arg)方法:用于向支付串中指定的位置插入数据内容,可插入int、float、char、boolean等基本类型或其他对象

​ offset:插入的具体位置;arg:插入的数据

​ 3、delete(int start,int end)方法:删除指定位置的字符,删除到end-1位,如果start等于end,不发生任何更改。


数组

一维数组

int arr[];
int[] arr;//定义数组两种形式
arr = new int[20];//为数组分配内存

二维数组

int arr[][];
int[][] arr;
arr = new int[2][4];//为二维数组分配内存
arr[0] = new int[2];
arr[1] = new int[3];//为二维变量每一维度分配空间
int arr[][] = {{12,0},{22,3}};//为二维数组初始化值
/**
	二维数组的遍历
**/
public class void main(String[] args){
    int a[][] = new int[3][4];
    for(int i = 0;i < a.length;i++){//查看二维数组的长度
        for(int j = 0;j < a[i].length;j++){//查看每一维度的长度
            System.out.println(a[i][j]);
        }
    }
}

fill()填充替换函数

fill(int[] a,int value);
//a:需要替换填充的数组 value:要储存进入数组的值
Arrays.fill(arr,8);//将arr数组中的元素全部替换为8
fill(int[] a,int start,int end,int value);
//a:为要替换的数组 start:开始替换的位置 end:结束替换的后一个位置 value:要替换的元素

sort()排序函数

Arrays.sort(数组);//将数组从小到大进行排序

​ Java中的String类型数组的排序算法是根据字典编排顺序排序的,因此数字排在字母前面,大写字母排在小写字母前面

copyOf()函数

int arr[] = {1,2,3};
int newarr[] = Arrays.copyOf(arr,5);//arr表示需要赋值的数组,5表示复制几个从第一个开始计算,如果超出arr长度,以0补全
int newarr[] = Arrays.copyOfRange(arr,0,3);
//arr作用同上,0表示从第几个开始,3表示复制复制到第几位前

数组查询

​ Arrays类的binarySearch()方法,可使用二分搜索法来搜索指定数组。

binarySearch([] a ,key);//a为搜索的数组,key为要搜索的值,返回搜索值的索引位置

必须在调用此函数前给数组排序:sort()函数,而且数组带有多个指定搜索的数,则值是不确定的。

binsarySearch([] a,start,end,key);//start和end为指定搜索的区间索引

数组排序算法

冒泡排序

​ 基本思想:对比相邻的元素值,如果满足就交换元素值,把较小的元素移动到数组前面,把较大的元素移动到数组后面

public class BubbleSort{
    public static void main(String[] args){
        //创建一个数组,这个数组元素顺序是混乱的
        int[] array = {63,4,24,1,3,15};
        //创建冒泡排序类的对象
        BubbleSort sorter = new BubbleSort();
        //调用排序方法将数组排序
        sorter.sort(array);
    }
    
    public void sort(int[] array){
        for(int i = 1;i<array.length;i++){
            //比较相邻两个元素,较大的数往后冒泡
            for(int j = 0;j<array.length-i;j++){
                if(array[j] > array[j + 1]){
                    int temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                }
            }
        }
    }
}

直接选择排序

​ 基本思想:找出数组中最大或者最小的,从数组中拿出来放到最前面或最后面,然后继续从剩下的数组中找出依次放到最前面或最后面,直到结束

public void sort(int[] array){
    int index;
    for(int i = 1; i < array.length;i++){
        index = 0;
        for(int j = 1;j <= array.length - i;j++){//找到数组中最大的数的下标
            if(array[j] > array[index]){
                index = j;
            }
        }
        //交换在位置array.length-i和index(最大值)上的两个数
        int temp = array[array.length - i];
        array[array.length - i] = array[index];
        array[index] = temp;
    }
}

反转排序

​ 基本思想:把数组顺序颠倒,比如123456排序后为654321

public void sort(int[] array){
    int temp;
    int len = array.length;
    for(int i = 0;i < len / 2;i++){
        temp = array[i];
        array[i] = array[len - 1 - i];
        array[len - 1 - i] = temp;
    }
}

类和对象

类是世间事物的抽象称呼,而对象是这个事物相对应的实体

面向对象程序设计特点:封装、继承、多态

private protected public
本类 O O O
同包或子类 O O
其他包或子类 O

​ 当声明不使用权限修饰符时,声明的类预设为包存取范围,及只有本包的类可以调用这个类的成员变量和方法,如果类中的方法声明为public等权限符,无效

访问权限依旧和类权限相同。

局部变量:局部变量在方法执行时创建、在方法执行结束时销毁。

this除了可以调用成员变量或成员方法外,还可以作为返回值

return this;//返回该类

静态变量static

类名.变量名/方法名//调用静态元素

规定:

1、在静态方法中不可以使用this关键字

2、静态方法中不可以直接调用非静态方法

3、不能在常规方法中定义静态局部变量

==和equals()的不同

​ ==是比较两个字符串引用的地址是否相同,equals()是比较两个字符串的字符是否相同

包装类

Integer、Boolean、Byte、Character、Double、Number

Integer

两种构造方法:

1、Integer number = new Integer(7);
2、Integer number = new Integer("7");//要用数字的字符串,不然会报NumberFormatException错误
这篇关于Java学习笔记(持续更新)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!