Java基础

java基础

java三大版本

  1. javase:面向桌面(桌面程序,控制台开发)
  2. javame:面向手机(手机,小家电)
  3. javase:面向服务器(web端,服务器端)

三高

高性能,高可用,高并发

java 的特性和优势

  1. 简单性
  2. 面向对象
  3. 可移植性
  4. 高性能
  5. 分布式
  6. 动态性
  7. 多线程
  8. 安全性
  9. 健壮性

JVM,JDK,JRE

  • jdk:java development kit Java开发环境 包括jre和jvm
  • jre:java runtime enviroment java运行时环境
  • jvm:java virtual machine java 虚拟机

java程序

  • .java :Java文件后缀名
  • .class:java字节码文件
  • java的编译 javac Java文件名.java
  • java的运行 java Java字节码文件名

IDE

集成开发环境

java注释

  • 单行注释: / / \color{red}{//} //
  • 多行注释: / ∗ ∗ / \color{blue}{/**/} //
  • 文档注释: / ∗ ∗ ∗ ∗ / \color{purple}{/****/} //

标识符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eMxOaihp-1610263019252)(C:\Users\86156\AppData\Local\Temp\1610177540092.png)]

  • 所有标识符都应该以字母(a-z或A-Z),美元符号($),或者下划线(_)开始
  • 首字母后可以是字母(a-z或A-Z),美元符号($),或者下划线(_)或数字的任何字符组合
  • 不能使用关键字作为变量名或者方法名
  • 标识符大小写敏感

数据类型

java强类型语言

要求变量的使用要严格符合规定,所有变量必须先定义后才能使用

Java的数据类型###

  • 基本数据类型
  • 引用数据类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O05Mvamd-1610263019256)(C:\Users\86156\AppData\Local\Temp\1610178561840.png)]

long类型数字后面要加一个L

float类型数字后面要加一个F

boolean的默认值是false

String 不是关键字,是类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8zVkuXAO-1610263019257)(C:\Users\86156\AppData\Local\Temp\1610179128190.png)]

float、double有限,离散,舍入误差,大约,接近但不等于

最好完全避免使用浮点数进行比较

类型转换

低-》高 自动转换

高—》低 强制转换 ,可能会内存溢出,或者精度问题

jdk7新特性:数字之间可以用下划线分割,且下划线不会输出

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IX3rZ9xT-1610263019258)(C:\Users\86156\AppData\Local\Temp\1610180353183.png)]

变量###

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uHfSLAs7-1610263019260)(C:\Users\86156\AppData\Local\Temp\1610199230625.png)]

  • **类变量 static **
  • 实例变量:从属于对象,如果不初始化,值是默认值
  • 局部变量:必须声明和初始化值
变量命名规则####

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eC9TkWNq-1610263019261)(C:\Users\86156\AppData\Local\Temp\1610182097812.png)]

常量###

final

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SpWchpqc-1610263019262)(C:\Users\86156\AppData\Local\Temp\1610199323951.png)]

运算符##

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nf5iVtrw-1610263019263)(C:\Users\86156\AppData\Local\Temp\1610182345480.png)]

面试题###

2*8如何算最快

用位运算符 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-38RURFyl-1610263019263)(C:\Users\86156\AppData\Local\Temp\1610183616377.png)]

输出语句时如果** 进 行 运 算 的 数 字 \color{red}{进行运算的数字} **之前有String,则数字自动转为字符串,

如果数字之前没有字符串,则数字就进行运算

输入##

int sum=0;
        int x=0;
        Scanner scanner =new Scanner(System.in);
        while(scanner.hasNextInt()){
            int now=scanner.nextInt();
            sum=sum+now;
            x++;
            System.out.println("你输入的是第"+x+"个数:"+now+",当前总和:"+sum+"当前平均数:"+sum/x);
        }
        System.out.println("当前平均数:"+sum/x);
        scanner.close();

流程控制##

###流程控制结构###

  1. 顺序结构

  2. if多选择结构

  3. switch多选择结构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BkqDlIMd-1610263019264)(C:\Users\86156\AppData\Local\Temp\1610192514867.png)]

  4. while循环结构

    • while()

    • do{

      }while()

  5. for循环结构

    • 100.for:快捷键生成

      for (int i = 0; i < 100; i++) {
                  
              }
      
    • 增强for循环

  6. break和continue

    • break在任何循环体的主体部分均可用, b r e a k 用 于 强 制 退 出 循 环 \color{red}{break用于强制退出循环} break退,不执行循环中的剩余语句
    • continue语句在循环主体中用于种植某次循环,即退出循环体中尚未执行的语句 接 着 进 行 下 一 次 循 环 的 判 断 \color{red}{接着进行下一次循环的判断}
流程结构题####
  1. 打印101到150之间的质数

    for (int i = 101; i < 150; i++) {
                boolean  b=true;
                for (int j=2;j<i/2;j++){
                    if(i%j==0){
                        b=false;
                        j=i/2;
                    }
                }
                if(b)
                    System.out.println(i+" ");
            }
    
  2. 打印三角形

    //打印三角形
            for (int i = 0; i <= 5; i++) {
                for (int j = 5; j >=i; j--) {
                    System.out.print(" ");
                }
                for (int j = 0; j <= i; j++) {
                    System.out.print("*");
                }
                for (int j=0;j<i;j++){
                    System.out.print("*");
                }
                System.out.println();
            }
    

反编译###

顺着提了一下,idea可以反编译,只需要将class文件丢进java文件所在的文件夹内即可查看

java方法##

设计方法的原则:一个方法只实现一个功能

方法定义###

方法名:驼峰命名法####

修饰符 返回值类型 方法名(参数类型 参数名){

​ 方法体

​ return 返回值;

}

= j a v a 是 值 传 递 \color{red}{java是值传递} java

方法的重载###

重载就是在一个类中,有相同的函数名称,但形参不同的函数

方法重载的规则:

  • 方法名称必须相同
  • 参数列表必须不同(个数不同或类型不同、参数排列顺序不同)
  • 方法的返回类型可以相同也可以不同
  • 仅仅返回类型不同不足以成为方法的重载

命令行传参

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SiqcBLFH-1610263019265)(C:\Users\86156\AppData\Local\Temp\1610201062919.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hkdcPbRe-1610263019266)(C:\Users\86156\AppData\Local\Temp\1610201129908.png)]

可变参数###

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N4O3rK8n-1610263019266)(C:\Users\86156\AppData\Local\Temp\1610201348966.png)]

递归###

递归结构包括两个部分:

  • 递归头:什么时候不调用自身方法,如果没有头,将进入死循环
  • 递归体:什么时候需要调用自身方法

能不用递归就不用递归,因为递归的数太多,计算机可能崩溃,数量小的情况下可以使用

数组###

  • 数组是相同类型数据的有序集合
  • 数组描述的是相同类型的若干个数据,按照一定的先后顺序排列组合而成
  • 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问他们
数组的声明创建####
  1. 数组类型 [] 数组名;//声明一个数组,并未分配空间

  2. 数组名 =new 数组类型[数组大小];//这是创建了一个数组,分配了空间

  3. 给数组元素赋值

    eg:nums[0]=1

数组的四个基本特点####
  • 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的
  • 其元素必须是相同类型,不允许出现混合类型
  • 数组中的元素可以是任何数据类型,包括基本类型和引用类型
  • 数组变量属于引用类型,数组也可以看成对象,数组中的每个元素相当于搞对象的成员变量,数组本身就是对象,java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FooIyGae-1610263019268)(C:\Users\86156\AppData\Local\Temp\1610254621324.png)]

多维数组####

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kDCNw6WT-1610263019268)(C:\Users\86156\AppData\Local\Temp\1610255820429.png)]

Arrays####
  • Arrays.toString(数组名);//打印数组所有元素
    Arrays.sort(数组名);//数组进行升序排序 
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dNmxCwmq-1610263019269)(C:\Users\86156\AppData\Local\Temp\1610257936136.png)]

    排序算法#####

img

img

稀疏数组####

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5GAL0Xi7-1610263019272)(C:\Users\86156\AppData\Local\Temp\1610262383869.png)]
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值