一·数据类型
-
基本数据类型:int,double,long,bolean,char,byte,short,float
对应包装类型:Integer,Double,Long,Boolean,Character,Byte,Short,Float
两者的区别:
-
默认值不同,基本数据类型的变量必须要显示初始化,而包装器类型不需要(前者报错,后者默认为空)。
-
基本数据类型使用内存较少,并且直接存储到栈上,而包装器类型一般作为对象存储在堆里。
-
性能方面基本数据类型操作较快,包装器类型比较慢因为涉及到对象创建和方法引用。
-
基本数据类型的变量不能为null
-
基本数据类型可以直接进行布尔判断,而包装类需要先判空;如if(catNumber != 0 /catNumber != 0 && catNumber != null)
-
自动装箱和自动拆箱,就是进行包装和基本数据类型的转换
-
基本数据类型不能直接用于泛型或集合
-
包装器类型可以调用一些类方法,如Integer.valueof()等,一般API使用包装类型合适。
-
-
引用数据类型:指存储在堆上(非栈)的数据类型。引用类型通过引用(内存地址的指针)来访问对象,引用数据类型可以被初始化为null
-
所有类的实例都是对象,也就都是引用数据类型
-
数组
-
接口
-
二·JVM(知识深度较高,后续专门深钻)
JVM简称虚拟机,是一个虚拟计算机,是JAVA程序的运行环境,JAVA的跨平台性便是通过JVM实现的,主要是负责执行指令,管理数据,内存等。
-
两大功能
-
实现JAVA程序的跨平台性:将JAVA程序编译成对应的字节码文件,然后执行在对应的JVM环境下,便可运行
-
自动内存管理(分配,回收)
在运行过程中,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到此为止");
}
}
}
明天工作不忙的话,在看一下数组和面向对象,滤清思路,触底反弹!