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]就是nullarr[i]=new int[i+1];//遍历一维数组,并给一维数组中的每个元素赋值for(int j = 0;j<arr[i].length;j++){arr[i][j]=i+1;}
}

java基本语法、数组、查找、排序相关推荐

  1. [转载] java中对数组进行排序_如何在Java中对数组排序

    参考链接: Java中main()的有效变体 java中对数组进行排序 Java Array is like a container that can hold a fixed number of t ...

  2. java中对数组进行排序_如何在Java中对数组排序

    java中对数组进行排序 Java Array is like a container that can hold a fixed number of the same type of items, ...

  3. java解码_Java数组已排序解码

    java解码 排序是我们在计算机科学中学习的第一个算法. 排序是一个非常有趣的领域,它有大约20多种算法,而且总是很难确定哪种算法最好. 排序算法的效率是根据占用的时间和所需的空间来衡量的. 一些时间 ...

  4. Java中String数组的排序

    使用Java compareToIgnoreCase 方法排序 这个方法我在上一篇文章已经说过如何使用了,也说明了它的原理 我们可以看一看:点击查看https://blog.janyork.com/i ...

  5. java对类数组进行排序_Java比较器类对数组进行排序

    小编典典 [-]应该如何声明Java Comparator类以按其降序将数组的第一个元素排序 [-] 这是使用Java 8的完整示例: import java.util.*; public class ...

  6. java二维数组遍历排序,实现二维数组的按次序排序!!!

    package com.huaxia.java2se; import java.util.Arrays; public class Array { static int c=0; static int ...

  7. Java中对数组的排序方法总汇分析

    1.冒泡排序 public void bubbleSort(int a[]) {int n = a.length;for (int i = 0; i < n - 1; i++) {for (in ...

  8. Java基本语法——数组

    数组(Array)是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理 数组的常见概念 数组名 下标(或索引) 元素 数组的长度 数组概述 数组本身是引用 ...

  9. java数组元素的排序_java学习之数组元素排序,冒泡排序和选择排序

    java学习之数组元素排序 选择排序 *返回值类型 void *参数列表 int[] arr * 分析:选择排序 * 第一次arr[0]与arr[1-4]比较,总共比较4次 * 第二次arr[1]与a ...

最新文章

  1. Eclipse导入Spring Boot项目后pom.xml出现红叉的解决办法
  2. 特征值和特征向量(Eigenvalues and Eigenvectors)
  3. 《文献管理与信息分析》课程学习笔记
  4. 通过DataWorks数据集成归档日志服务数据至MaxCompute进行离线分析
  5. Processes and Threads 线程和进程的理解
  6. 如何编写一个高效的Testbench?
  7. 2018.9.8-9.8 统计学课程笔记(1)-从概率论到统计学
  8. 【考研数学】张宇:十月真题做题建议
  9. Photoshop使用教程 如何在线抠图
  10. 携程校招——携程海洋馆的海豚小宝宝(C++)
  11. django问题mysqlclient 1.4.0 or newer is required
  12. 数据杂谈:CIO和CTO的区别(首席信息官首席技术官)
  13. 【YBT2023寒假Day10 B】随机游走(记忆化搜索)
  14. C++:从入门到放弃[1]基础知识
  15. 吴恩达-DeepLearning.ai-05 序列模型(一)
  16. 2021-02-05
  17. 机器学习- MACHINE LEARNING
  18. Java项目:基于jsp+mysql+Spring+SpringMVC+mybatis的农产品网上销售系统
  19. 读论文《Natural Language Processing (Almost) from Scratch》
  20. 负片与水印效果(OpenCV)

热门文章

  1. (读书笔记)C语言 接口与实现0 --- 简介
  2. 计算机时代汉字发展例子,计算机时代的汉字文化情结
  3. 【美人松的高度3】 (C++语言)
  4. 【网络安全】常见的网路安全设备及功能作用总结
  5. 小程序 ios14系统(ios最新的版本) 访问接口失败,无返回体(其他版本正常)
  6. Leetcode 739:每日温度(超详细的解法!!!)
  7. PDF怎么转换成Word?给大家分享三种简单的转换方法
  8. gtx1080 驱动 linux,ubuntu16.04安装gtx1080ti驱动+配置CUDA8.0+CUDDNv6
  9. videoview 有声音没画面的可能原因
  10. jquery导航图片全屏滚动、首页全屏轮播图,各式相册