java基本语法、数组、查找、排序

java基本语法、数组、查找、排序,第1张

java基本语法、数组、查找、排序

b站韩顺平java基础

  • java的特点

​ java的跨平台性:java一次编译可以到处执行,.java文件经过一次编译后变成.class文件(字节码文件)然后再经过java虚拟机(JVM)编译变成机器语言程序。

  • java开发的注意事项

​ 一个.java文件中最多只能有一个public类,其他类的个数不限,每有一个类经过编译后就会生成一个.class文件。

  • java中的注释

    单行注释 /

    多行注释 /* */

    文档注释

  • 相对路径和绝对路径

​ …\ 代表上一级目录

  • 变量

  • +号的使用

  • java数据类型

  • 整数类型的细节

  • 浮点数类型

    注意声明float变量数字后面要加f

    float a = 1.1//编译会出错
    float b = 1.1f//编译正确
    
  • 字符类型

    char c1=97;
    System.out.println(c1);//输出为a
    char c2='a';
    System.out.println((int)c2);//输出a对应的数字97
    //char类型是可以进行运算的,相当于一个整数,因为他有对应的Unicode码
    System.out.println('a'+10)//输出107
    

  • 数据类型自动转换

  • 类型自动转换时的细节

//进行运算时,精度低的数据类型自动转换成精度高的数据类型
int n1=10;
float d1=n1+1.1//错误 n1+1.1=>结果类型是double
double d1=n1+1.1//对,n1+1.1=>i结果类型是double
float d1=n1+1.1F//对,n1+1.1=>结果类型是float
    
//char和byte之间不能互相转换
byte b1=10;
char c1=b1//错误,原因byte不能自动转换成char

//byte、short、char他们三者之间可以计算,在计算时首先转换成int类型
byte b2=1;
byte b3=2;
short s1=1;
short s2=b2+s1;//错误,b2+s1=>int
byte b4=b2+b3;//错误,b2+b3=>int

//boolean类型不参加类型自动转换
boolean pass=true;
int num1=pass;//错误,boolean不参与类型的自动转换

//当等号右边都是常量的时候,编译器会自动合并不做类型转换
char c = 'a'+1//不会报错
char ch = c+1//会报错,因为等号右边有变量,编译器不会自动合并,编译器将自动类型转换将char类型转换成int,导致编译报错。
  • 强制类型转换

    自动类型转换的逆过程,将容量大的数据类型转换为小的数据类型。使用时要加上强制转换符(),但可能会造成精度降低或溢出。

    int n1=(int)1.9;//结果n1为1,造成精度损失
    int n2=(byte)2000;//结果n2为-48,造成数据溢出
    
  • 强制类型转换的细节

  • 类型转换练习题

  • 基本数据类型和String类型的转换

  • 三元运算符

  • 标识符的命名规则和规范

  • Scanner类

  • 原码、反码、补码

  • for循环

  • while循环

  • 数组的声明

    //第一种动态分配方式
    double[] scores=new double[5];
    //第二种动态分配方式
    double[] scores;
    scores = new d[5];
    //静态初始化
    int[] a = {2,5,6,7};
    
  • 数组的赋值机制

    //基本数据类型赋值,赋值的方式是值传递
    //n2的变化不会影响n1的值
    int n1=10;
    int n2=n1;
    n2=80;
    System.out.println("n1="+n1);//n1=10
    System.out.println("n2="+n2);//n2=80
    
    //数组在默认情况下是引用传递,赋的值是地址
    //arr2 变化会影响到arr1
    int[] arr1={1,2,3};
    int[] arr2=arr1;//把arr1的地址赋给arr2
    arr2[0]=10
    for(int i=0;i<arr1.length;i++){
        System.out.println(arr1[i]);//arr1={10,2,3}
    }
    

  • 冒泡排序

int[] arr = {24,4,45,34};
int temp = 0;
for(int i = 0;i<arr.length-1;i++){//一共排序arr.length-1次
    for(int j = 0;j<arr.length-i-1;j++){//每趟排序需要比较arr.length-i-1次
      	  if(arr[j]>arr[j+1]){
              temp=arr[j];
              arr[j]=arr[j+1];
              arr[j+1]=temp;
          }
	}
    
}
  • 二维数组

  • 二维数组的内存布局

  • 创建列数不确定的二维数组

/*创建一个二维数组
1
2 2
3 3 3
*/
int[][] arr = new int[3][];//创建二维数组,但是只确定一维数组的个数,一共有3个一维数组,但是
for(int i = 0;i<arr.length;i++){//遍历arr每一个一维数组
    //给每一个一维数组开空间new
    //如果没有给一维数组开空间,那么arr[i]就是null
    arr[i]=new int[i+1];
    //遍历一维数组,并给一维数组中的每个元素赋值
    for(int j = 0;j<arr[i].length;j++){
        arr[i][j]=i+1;
    }
}
    

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/720120.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存