Java数据类型与JVM

一·数据类型

        
  • 基本数据类型:int,double,long,bolean,char,byte,short,float

    对应包装类型:Integer,Double,Long,Boolean,Character,Byte,Short,Float

    两者的区别

    1. 默认值不同,基本数据类型的变量必须要显示初始化,而包装器类型不需要(前者报错,后者默认为空)。

    2. 基本数据类型使用内存较少,并且直接存储到栈上,而包装器类型一般作为对象存储在堆里。

    3. 性能方面基本数据类型操作较快,包装器类型比较慢因为涉及到对象创建和方法引用。

    4. 基本数据类型的变量不能为null

    5. 基本数据类型可以直接进行布尔判断,而包装类需要先判空;如if(catNumber != 0 /catNumber != 0 && catNumber != null)

    6. 自动装箱和自动拆箱,就是进行包装和基本数据类型的转换

    7. 基本数据类型不能直接用于泛型或集合

    8. 包装器类型可以调用一些类方法,如Integer.valueof()等,一般API使用包装类型合适。

  • 引用数据类型:指存储在堆上(非栈)的数据类型。引用类型通过引用(内存地址的指针)来访问对象,引用数据类型可以被初始化为null
    1. 所有类的实例都是对象,也就都是引用数据类型

    2. 数组

    3. 接口

二·JVM(知识深度较高,后续专门深钻)

JVM简称虚拟机,是一个虚拟计算机,是JAVA程序的运行环境,JAVA的跨平台性便是通过JVM实现的,主要是负责执行指令,管理数据,内存等。

  • 两大功能

    1. 实现JAVA程序的跨平台性:将JAVA程序编译成对应的字节码文件,然后执行在对应的JVM环境下,便可运行
    2. 自动内存管理(分配,回收)

      在运行过程中,JCM会将一些数据的存储,分配,自动完成

      JVM可以进行GC,自动回收,可以提高内存空间的利用效率,减少内存溢出,泄露的频率。

三·Scanner类使用(我工作都没见过,敲着玩了一下,发现确实作用好像不大)

package com.yxb.security.demo.service.serviceImpl;

import java.util.ArrayList;
import java.util.Scanner;

public class ScannerTest {
    /**
     * @Description:
     * @author : loong
     * @Date: 2024-08-20
     */
    public static void main(String[] args) {
        /*实例化,必须要有*/
        Scanner scanner = new Scanner(System.in);
        System.out.println("黑悟空,启动!");
        System.out.println("用户名");
        String next = scanner.next();
        System.out.println("密码");
        String next2 = scanner.next();
        System.out.println("是男同胞吗");
        Boolean next3 = scanner.nextBoolean();
        System.out.println("验证码");
        int next4 = scanner.nextInt();

    }

}

四·循环的break和continue

循环的没怎么看,因为经常用不需要回顾简单介绍一下

break和continue

package com.yxb.security.demo.service.serviceImpl;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class ScannerTest {
    /**
     * @Description:
     * @author : loong
     * @Date: 2024-08-20
     */
    public static void main(String[] args) {
        /*实例化,必须要有*/
        Scanner scanner = new Scanner(System.in);
        System.out.println("黑悟空,启动!");
        System.out.println("用户名");
        String next = scanner.next();
        System.out.println("密码");
        String next2 = scanner.next();
        System.out.println("是男同胞吗");
        Boolean next3 = scanner.nextBoolean();
        System.out.println("验证码");
        int next4 = scanner.nextInt();
        ArrayList<Integer> objects = new ArrayList<>();
        objects.add(3);
        objects.add(4);
        for (Integer num : objects){
            if (num==3){
                continue;
            }
            System.out.println("continue:本次循环内,所有代码都不走");
            if (num==4){
                break;
            }
            System.out.println("break:本次for到此为止");
        }

    }

}

明天工作不忙的话,在看一下数组和面向对象,滤清思路,触底反弹!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值