Java基础(4)

基本数据类型的转换
1.隐式数据类型转换
2.显式数据类型转换

运算符
赋值运算符 算术运算符【++ --】 比较运算符 逻辑运算符【位运算】 三元运算符

java中的语句
1.顺序结构
2.选择结构
if语句 switch语句
3.循环结构–重复执行

1.for循环
例如:

 public  class  ForDemo{
	public  static  void  main(String  args[]){
	 //for循环
	 /*
		for(初始条件;判断条件;循环增量/减量){
			java代码
		}
	初始条件--决定循环的开始
	判断条件--决定循环的结束
	循环增量/减量--控制初始条件值
	执行过程:
	先执行初始条件,再执行判断条件,
	判断条件的结果为true,执行{java代码},接下来执行循环增量/减量,接着执行判断条件
	判断条件的结果为false,循环结束
		*/
	//循环输出1-10的整数
		/*
		for(int i=1;i<=10;i++){
			System.out.println("i--"+i);
		}
		*/
	//循环输出10-1的整数
		/*
		for(int j=10;j>=1;j--){
			System.out.println("j--"+j);
		}
		*/
	//计算1-10的整数和
		//定义一个变量,来保存和的值
		int  sum=0;
		for(int i=1;i<=10;i++){
			sum=sum+i;
		}
	//第一次  sum=0  , i=1  , sum+i=0+1=1,  sum=1, i++==2
	//第二次  sum=1  ,i=2  ,  sum+i=1+2=3,  sum=3, i++==3
	//第二次  sum=3  ,i=3  ,  sum+i=3+3=6,  sum=6, i++==4
 		//.......
		System.out.println("sum=="+sum); //55
	}
}

2.while循环
例如:

public  class  WhileDemo{
public  static  void  main(String  args[]){
	//while循环
		/*
		while(判断条件){
			java代码
			【循环增量/减量的条件】
		}
执行过程:
先执行判断条件,
判断条件结果为true时,执行{java代码},继续执行判断条件,
	判断条件结果为false时,结束循环
	注意1:初始条件定义在while循环的格式之外。
	注意2:把循环增量/减量的条件写在{java代码.....最后一句}
		*/
	//循环输出1-10的整数
		/*
		int  i=1;
		while(i<=10){
			System.out.println("i=="+i);
			i++;
		}
		*/
	//循环输出10-1的整数
		/*
		int j=10;
		while(j>=1){
			System.out.println("j=="+j);
			j--;
		}
		*/
	//计算1-10的整数和
		int sum=0;
		int i=1;
		while(i<=10){
			sum=sum+i;
			i++;
		}
		System.out.println("sum=="+sum);
		
	}
}

2.while循环
例如:

       
public  class  WhileDemo{
public  static  void  main(String  args[]){
	//while循环
		/*
		while(判断条件){
			java代码
			【循环增量/减量的条件】
		}
执行过程:
先执行判断条件,
判断条件结果为true时,执行{java代码},继续执行判断条件,
	判断条件结果为false时,结束循环
	注意1:初始条件定义在while循环的格式之外。
	注意2:把循环增量/减量的条件写在{java代码.....最后一句}
		*/
	//循环输出1-10的整数
		/*
		int  i=1;
		while(i<=10){
			System.out.println("i=="+i);
			i++;
		}
		*/
	//循环输出10-1的整数
		/*
		int j=10;
		while(j>=1){
			System.out.println("j=="+j);
			j--;
		}
		*/
	//计算1-10的整数和
		int sum=0;
		int i=1;
		while(i<=10){
			sum=sum+i;
			i++;
		}
		System.out.println("sum=="+sum);
		
	}
}

比较这三个循环的区别?
for循环有定义循环增量/减量具体位置,
while和do{}while()循环,没有定义循环增量/减量具体位置,往往都是自己定义在循环体中的最后一句
for循环需要明确循环次数
while和do{}while()循环不需要考虑循环次数
例如:

/*计算程序*/
import java.util.Scanner;
public  class  Test1{
public  static  void  main(String  args[]){
//创建输入对象
	Scanner  input=new Scanner(System.in);
	boolean  flag=true; //控制循环持续执行
	while(flag){
//得到第一个运算数字
	System.out.println("请输入第一个运算数字:");
	int  num1=input.nextInt();
//得到一个运算符号
	System.out.println("请输入一个运算符号:");
	String  op=input.next();
//得到第二个运算数字
	System.out.println("请输入第二个运算数字:");
	int  num2=input.nextInt();
//计算结果
	switch(op){
		case "+":System.out.println(num1+"+"+num2+"="+(num1+num2));break;
		case "-":System.out.println(num1+"-"+num2+"="+(num1-num2));break;
		case "*":System.out.println(num1+"*"+num2+"="+(num1*num2));break;
		case "/":System.out.println(num1+"/"+num2+"="+(num1/num2));break;
		case "@":flag=false;break;
		default:System.out.println("输入有误无法计算");break;
		}
		}
	}
}

while循环与do{}while()循环的区别?
while循环先判断后执行, do{}while()循环先执行后判断
初始判断条件的结果为false的时候,do{}while()循环会比while多执行一次循环体。
例如:

public  class  Test2{
public  static  void  main(String  args[]){
//初始判断条件的结果为false的时候,do{}while()循环会比while多执行一次循环体。
	/*
	int i=1;
	do{
		System.out.println("i=="+i);
	}while(i<0);
	*/

	int i=1;
	while(i<0){
	   System.out.println("i=="+i);
		}
	}
}

4.break语句与continue语句的用法和区别
break语句—循环中就表示中断循环的执行
如果循环是嵌套的,那么break语句出现在那一层就中断那一次的循环。
—switch中表示结束switch的执行
例如:

public  class  BreakDemo{
	public  static  void  main(String  args[]){
	//break语句---循环中就表示中断循环的执行
	//如果循环是嵌套的,那么break语句出现在那一层就中断那一次的循环。
		for(int i=1;i<=10;i++){
			if(i==5){
					break;
				}
			for(int j=1;j<=10;j++){
				System.out.println("i=="+i+",j=="+j);
			}
		}
	}
}

continue语句–往往出现在循环中表示结束当前循环,继续下一次循环执行
例如:

public  class  ContinueDemo{
public  static  void  main(String  args[]){
//continue语句--往往出现在循环中表示结束当前循环,继续下一次循环执行
	for(int i=1;i<=10;i++){
		if(i==5){
			continue;
			}
			System.out.println("i=="+i);
		}
	}
}

java中的数组
1.什么是数组?
相同数据类型的数据–按照顺序–复合数据类型
2.如何定义一个一维数组?
格式:数据类型 数组名称[] ; /数据类型 []数组名称;
数组的定义与变量的定义相似,只是需要"[]“与变量区分,因此上”[]“就是数组的标志。
名称的前面/后面的出现一个”[]“就是一维数组,有两个”[][]"就是二位数组,两个以上就是多维数组
3.创建一个一维数组?
创建数组的本质就是确定数据的就提存储空间。
格式:
1.先定义,后创建 定义:数据类型 数组名称[];/数据类型 []数组名称;
创建:数组名称=new 数组类型[指定的存储空间];
指定的存储空间的数据值是tin型
2.定义+创建 数据类型 数组名称[]=new 数据类型[指定的存储空间];
数据类型 []数组名称=new 数据类型[指定的存储空间];
例如:

import java.util.Arrays;public class ArrayDemo{
    public static void main(String args[]){
        //先定义,后创建
        //定义:数据类型 数组名称[];/数据类型 []数组名称;
            int intArray[];//常见的
            char []charArray;
        //创建:数组名称=new 数据类型[指定的存储空间];
        //指定的存储空间的数据值是int型
            intArray=new int[4];
            charArray=new char[5];
        //定义+创建  
        //数据类型 数组名称[]=new 数据类型[指定的存储空间];
        int intArray2[]=new int[4];
        //数据类型 []数组名称=new 数据类型[指定的存储空间];
        char []charArray2=new char[5];
      
       
        
    }
}
    4.如何为一维数组赋值?
            1.逐个赋值---就是挨个为数组的每一存储空间存放数据值。[需要数组的下标]
               数组的下标---因为数组是按照顺序保存数据,此时每一个存储空间就有一个顺序的编号,维持数组顺序的编号就是下标。可以通过下边得到具体时间的数据存储空间。下标从0开始。
            第一个存储空间的下边是0,依次类推。
            格式:数组名称[下标]=数据值;
            注意:当保存在数组中的数据超过数组指定的存储空间就会出错。
            java.lang.ArrayIndexOutOfBoundsException: 

例如:

import java.util.Arrays;public class ArrayDemo{
    public static void main(String args[]){
         //先定义,后创建
         //定义:数据类型 数组名称[];/数据类型 []数组名称;
            int intArray[];//常见的
            char []charArray;
        //创建:数组名称=new 数据类型[指定的存储空间];
        //指定的存储空间的数据值是int型
            intArray=new int[4];
            charArray=new char[5];
        //定义+创建  
        //数据类型 数组名称[]=new 数据类型[指定的存储空间];
        int intArray2[]=new int[4];
        //数据类型 []数组名称=new 数据类型[指定的存储空间];
        char []charArray2=new char[5]; 
        //注意:当保存在数据中的数据超过数组指定的存储空间就是会出错。
        //java.lang.ArrayIndexOutOfBoundsException:      
    }
}
    2.直接赋值---就是在创建数组的时候将数据值保存到数组中。
            2.1   数据类型  数组名称[]=new 数据类型[]{数据值1,数据值2,.....,数据值n};
                    创建数组的时候不能指定存储空间
            2.2   数据类型 数组名称[]={数据值1,数据值2,.....,数据值n};

例如:

import java.util.Arrays;public class ArrayDemo{
    public static void main(String args[]){
        
            int intArray[];
            intArray=new int[4];
        //赋值:逐个赋值---就是挨个为数组的每一个存储空存放数据值。[需要数组下标]
        //格式:数组名称[下标]= 数据值;
        intArray2[0]=123;
        intArray2[1]=789;
        intArray2[2]=258;
        intArray2[3]=147;
        //直接赋值---就是在创建数组的时候将数据值保存到数组中。
        //格式:数据类型 数组名称[]=new 数据类型[]{数据值1,数据值2....}
        //直接赋值的形式创建数组的时候不能指定存储空间
        int arr1[]=new int[]{123,456,789,147};
        //数据类型 []数组名称={数据值1,数据值2....数据值n};
        char []chararray={'h','e','l','l','o'};

       
    }
}
    5.如何从以为数组中取值?
            只要我们能够得到数组的存储位置,就可以得到数组中的数据值
            格式:数组名称[下标]

例如:

import java.util.Arrays;public class ArrayDemo{
    public static void main(String args[]){  
        char []chararray={'h','e','l','l','o'};
        //数组取值格式:数组名称[下标]
        System.out.println(chararray[3]);
     
    }
}


6.一维数组的length属性
如果数组通过直接赋值的方式创建,那么length属性就表示元素个数。
如果数组通过定义创建的方式创建,那么length属性就表示创建数组是给出的空间大小,与数组的元素个数无关
例如:

import java.util.Arrays;public class ArrayDemo{
    public static void main(String args[]){
        //如果数组通过定义创建的方式创建,那么length属性就表示创建数组是给出的空间大小
        //与数组的元素个数无关
        double douarray[]=new double[4];
        douarray[0]=55.2;
        System.out.println(douarray.length);

    }
}


7.循环遍历一维数组
例如:

import java.util.Arrays;public class ArrayDemo{
    public static void main(String args[]){
        //循环遍历一维数组
        String names[]={"zhangsan","lisi","wangwu","zhaoliu"};
        //for循环遍历数组、
        /*for(int i=0;i<names.length;i++){
            System.out.println(names[i]);
        }
        */
        //while循环遍历数组
       /* int i=0;
        while(i<names.length){
            System.out.println(names[i]);
            i++;
        }*/
        //do..while循环遍历数组
        /*int i=0;
        do{
            System.out.println(names[i]);
            i++;
        }while(i<names.length);*/
        //增强的for循环--jdk1.5新增的内容
        //for(数据类型 变量名称:数组){变量名称==数组中的每一个数据值}
        for(String name:names){
            System.out.println("增强的for循环--"+name);
        }
      
    }
}


8.如何定义一个二维数组
格式:数据类型 数组名称[][];
数据类型 [][]数组名称;
例如:

import java.util.Arrays;public class ArrayDemo{
    public static void main(String args[]){
        //如何定义一个二维数据
        //格式:数据类型 数组名称[][];
        int arrtest1[][];
        //数据类型 [][]数组名称;
        char [][]chartest;
        
    }
}
    9.如何创建一个二维数组?
            二维数组可以保存一个类似表格一样的数据,所以我们可以认为二维数组就是一个表格
            1.先定义,后创建
                    数据类型  数组名称[][];
                    数据类型  [][]数组名称
                    数组名称=new 数据类型[表格行][行中的列];
            2.定义+创建
                    数据类型  数组名称[][]=new 数据类型[表格行][行中的列];
                    数据类型  [][]数组名称=new 数据类型[表格行][行中的列];

例如:

import java.util.Arrays;public class ArrayDemo{
    public static void main(String args[]){
        int arrtest1[][];
        char [][]chartest;
        //如何创建一个二维数组?
        //二维数组可以保存一个类似表格一样的数据,所以我们可以认为二维数组就是一个表格
        //先定义,后创建
        //数据类型 数组名称[][];
        //数据类型 [][]数组名称;
        //数组名称=new 数据类型[表格行][行中的列]
        arrtest1=new int[2][3];
        //定义加创建
        //数据类型 数组名称[][] = new 数据类型[表格行][行中的列];
        //数据类型 [][]数组名称=new 数据类型[表格行][行中的列]
        double douarr[][]=new double[2][3];
       
    }
}
    10.如何为二维数组赋值?
            1.逐个赋值---就是挨个为数组的每一个存储空间存放数据值。
            2.直接赋值---就是在创建数组的时候将数据值保存到数组中。

例如:

import java.util.Arrays;public class ArrayDemo{
    public static void main(String args[]){
       
        int arrtest1[][];
        char [][]chartest;
        arrtest1=new int[2][3];
        double douarr[][]=new double[2][3];
        //二维数组赋值---逐个赋值--就是挨个为数组的每一个存储空间存放数据值。
            douarr[0][0]=15.5;
            douarr[0][1]=20;
            douarr[0][2]=50;
            douarr[1][0]=26.2;
            douarr[1][1]=546;
            douarr[1][2]=64.2;
        //直接赋值--就是在创建数组的时候将数据值保存到数组中。
        //格式:数据类型 数组名称[][]=new 数据类型[][]{{数据值1,数据值2,...数据值n}{数据值1,数据值2,...数据值n}}
         //       数据类型 数组名称[][]={{数据值1,,数据值2,...,数据值n},{数据值1,,数据值2,...,数据值n}}
        char chharray[][]=new char[][]{{'h','e','l','l','o'},{'w','o','r','l','d'},{'h','e','l','l','o'}};

    }
}
    12.二维数组的lenght属性---行数
    例如:
public class sss{
    public static void main(String args[]){
        char chharray[][]=new char[][]

{{'h','e','l','l','o'},{'w','o','r','l','d'},

{'h','e','l','l','o'}};
        //二维数组的length属性--行数
        System.out.println(chharray.length);
    }
}


13.循环遍历二维数组—使用双层村换结构,外层控制行,内层控制列
例如:

public class ArrayDemo{
    public static void main(String args[]){
        char chharray[][]=new char[][]{{'h','e','l','l','o'},{'w','o','r','l','d'},{'h','e','l','l','o'}};
        //循环遍历二维数组--使用双层循环结构,外层控制行,每层控制列
        /*for(int i=0;i<chharray.length;i++){
            for(int j=0;j<=4;j++){
                System.out.println(chharray[i][j]);
            }
        }*/
        //增强for循环
        for(char chharra[]:chharray){
            for(char value:chharra){
                System.out.println("增强--"+value);
            }}
        
    }
}



14.认识Arrays类【数组的帮助类】
Arrays类位于java.util包中,主要包含了操纵数组的各种方法
Arrays常用函数(都是静态的)
1.void Array.sort(Object[] array)对数组按照升序排序
2.void Array.sort(Object[] array,int from,int to)对数组元素指定范围进行排序(排序范围是从元素下标为from,到下标为to-1的元素进行排序)
3.Arrays.fill(Object[] array,Object object)可以为数组元素填充相同的值
4.Arrays.fill(Object[] array,int from,int to,Object object)对数组的部分元素填充一个值,从起始位置到结束位置,取头不取尾
5.Arrays.toString(Object[] array)返回数组的字符串形式

import java.util.Arrays;public class ArrayDemo{
    public static void main(String args[]){
        //认识Arrays类【数组的帮助类】
        //Array类位于java.util包中,主要包含了操纵数组的各种方法
            char chartest1[]={'h','e','l','l','o'};
            //void Array.sort(Object[] array)对数组按照升序排序
                Arrays.sort(chartest1);
                for(char value:chartest1){
                    System.out.println("Arrays---"+value);
                
                }
    }
}

15.数组的内存结构
参考图片1.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值