java基础知识点!!!

目录

小知识点

数据类型与变量

运算符计算

复合赋值运算符

方法

方法的重载

数组

二维数组

JVM

Null


小知识点

在一个源文件中只能有一个public修饰的类,并且源文件的名字必须与public修饰的类名字相同

JDK包含JRE和JVM

Java 的字符类型采用 Unicode 编码方案,每个 Unicode 码占用 16 个比特位
每个 Unicode码占用2个字节,每个字节是8个比特位

标识符中可以包含:字母、数字以及 下划线和 $ 符号等等
注意:标识符不能以数字开头,也不能是关键字,且严格区分大小写

类名:每个单词的首字母大写(大驼峰)
方法名:首字母小写,后面每个单词的首字母大写(小驼峰)
变量名:与方法名规则相同


数据类型与变量

基本数据类型:

整型:字节类型byte(-128--127)、short(包装类型:short)、int(包装类型:Integer)、long(包装类型:long) 对应1、2 、4、 8 个字节 1字节等于8bit位

小数:float、double 对应4、8 个字节

字符:char(包装类型:Character)对应2个字节

布尔:boolean

引用数据类型:

String、数组、类、接口

public class Main{
    public static void main(String[] args){
        String str1="345";
        int value=Integer.valueOf(str1);//可以将字符串里面的内容变整数
        int value2=Integer.parseInt (str1);
                System.out.println(value);

        int a=100;
        String str=String.valueOf(a);//可以将整数内容变字符串
        System.out.println(str);

    }
    }

Integer 类的主要功能是提供了一种包装 int 类型的方式,包括类型转换、字符串转换、常量定义等
valueOf 是 Integer 类的一个静态方法,用于将其他数据类型(如字符串)或基本数据类型转换为 Integer 对象
实际开发中,通常使用 valueOf 方法来进行装箱操作,将基本数据类型转换为对应的包装类对象

valueOf 和praseint的区别:
返回类型:valueOf 返回 Integer 对象、parseInt 返回基本数据类型 int


运算符计算

算一算以下的表达式,看看你都会吗

public class Main{
    public static void main(String[] args){
        System.out.println(5/2);//2
        System.out.println((float) 5/2);//2.5
        System.out.println(5/(float)2);//2.5
        System.out.println((float) (5/2));//2.0

        System.out.println(10%3);//1
        System.out.println(-10%3);//-1
        System.out.println(10%-3);//1
        System.out.println(-10%-3);//-1

        //碰到负数除或者余最后的符号取决与第一个数
        
        int a=4;
        double b=5.0;
        a+=b;
        System.out.println(a);
    }
    }

复合赋值运算符

+=自动进行转换,/=、*=都一样

>>>无符号右移,向右移左边补0


方法

fill:

        int[] array = new int[10];
        Arrays.fill(array,9);

这个方法叫填充,可以把数组的值按你指定的数字进行填充

        int[] array = new int[10];
        Arrays.fill(array,0,3,9);

还可以指定区间进行填充,这个就在[0,3)区间填充9,顺便提一下java的区间一般都是左闭右开



equals:
equals属于String中的一种方法,用来判断内容、长度相不相等,返回值是boolean类型

写方法的时候根据返回类型要不要写return

记住方法有返回值的时候主方法要记得接收,然后输出

方法必须在类中,方法不能嵌套定义

创建方法时会开辟一个方法栈帧,创建变量时会在那个方法的栈帧里在开辟一块内存
方法调用需要开辟内存,方法调用结束后这块内存就销毁了

主方法中的参数是实参,负责把参数传递给方法的形参,所以方法中的参数就是形参
例子:

    public class TestMethod {
    public static void main(String[] args) {
    int[] arr = {10, 20};
    swap(arr);//实参
    System.out.println("arr[0] = " + arr[0] + " arr[1] = " + arr[1]);
}
    public static void swap(int[] arr) {形参
    int tmp = arr[0];
    arr[0] = arr[1];
    arr[1] = tmp;
}
}

方法的重载

注意:
1. 方法名必须相同
2. 参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不同)满足其一即可
3. 返回值不影响重载(不作为判断重载的条件)
 


递归

递归:
要有结束条件、将原问题划分成其子问题

注意:子问题必须要与原问题的解法相同

想到它的公式就很简单了



数组

 数组是引用类型
是一块连续的内存,用来存储相同类型的数据
如果希望返回一个int的数组,方法返回类型写int[]
还能这样写return new int[]{i,j};创建了一个匿名的整数数组,该数组包含两个元素,分别是 i 和 j。整个数组被视为一个对象

   int[] array = {1,2,3,4}; 数组类型+数组名

    int[] array = new int[]{1234}; new一般用来实例化对象,实例化了一个整型类型的数组,这里数组是一个对象

    int[] array1 = new int[10]; 创建一个可以容纳10个int类型元素的数组,默认将数组初始化为0

    int n = 10;
    int[] array = new int[n]; 还可以创建一个变量,决定数组的长度

    int[] array1;
    array1 = new int[10];还可以这样写

    int[] array = null; 变量array中存的是地址,这个变量叫引用变量或者直接叫引用

注意:数组整体进行赋值的时候只有一次机会,就是在定义的时候,还有boolean类型默认false

引用变量并不直接存储对象本身,简单理解成存储的是对象在堆中的起始地址。通过该地址,引用变量便可以去操作对象



获取数组长度:
int length = array.length; 数组名.length


阵列循环也叫增强for循环也叫for-each:
for (int x : array) 类型 变量名自己取:数组名
遍历这个数组的同时把数组中的元素进行赋值给这个x


数组转字符串以及排序:toString() 方法通常用于返回对象转换为可读的字符串

    String ret = Arrays.toString(array);
    System.out.println(Arrays.toString(array));


 排序:          

    Arrays.sort(array);
    System.out.println(Arrays.toString(array));


数组的拷贝:创建一个指定长度的新数组,并将原始数组的元素复制到新数组中,这里表示拷贝的是array 一样的长度

        int[] array = {1, 2, 3, 4, 5};
        int[] copy = Arrays.copyOf(array, array.length);//cope返回值是数组类型

这里表示拷贝array 长度的两倍

        int[] array = {1, 2, 3, 4, 5};
        int[] copy = Arrays.copyOf(array, array.length*2);//cope返回值是数组类型

这里表示拷贝array数组[0,3)范围

        int[] array = {1, 2, 3, 4, 5};
        int[] copy = Arrays.copyOfRange(array, 0, 3);


二维数组

二维数组就是特殊的一维数组!!!好好理解一下,下面有例子
定义:

        int[][] array = new int[1][2];
        int[][] array1 = new int[][]{{1, 2, 3}, {5, 6, 7}};

打印:
        int[][] array1 = new int[][]{{1, 2, 3}, {5, 6, 7}};
        System.out.println(Arrays.deepToString(array1));

阵列打印二维数组:

        int[][] array1 = new int[][]{{1, 2, 3}, {5, 6, 7}};
        for (int[] temp : array1) {
            for (int x : temp){
                System.out.print(x+" ");
            }
            System.out.println();
 }


       二维数组就是特殊的一维数组:

        int[][] array1 = new int[][]{{1, 2, 3}, {5, 6, 7}};
        System.out.println(array1[0]);//打印出来的是地址
        System.out.println(array1[1]);


上下结合想想

        int[][] array1 = new int[][]{{1, 2, 3}, {5, 6, 7}};
        System.out.println(array1.length);//打印的是二维数组的长度
        System.out.println(array1[0].length);//打印的是二维数组中一维数组的长度
        System.out.println(array1[1].length);

        for (int i = 0; i < array1.length; i++) {
            for (int j = 0; j < array1[i].length; j++) {//array1[i].length中的i相当于二维数组每一个元素的长度
                System.out.print(array1[i][j]);
            }
            System.out.println();
        }


JVM

JVM内存分为java虚拟机栈、java本地方法栈、堆、方法区、程序计算器

程序计数器:保存下一条执行的指令的地址

java虚拟机栈:与方法调用相关的一些信息,每个方法在执行时,都会先创建一个栈帧

堆:用 new 创建的对象都是在堆上保存,堆是随着程序开始运行时而创建,随着程序的退出而销毁,堆中的数据只要还有在使用,就不会被销
毁。

方法区: 用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数

本地方法栈: 本地方法栈与虚拟机栈的作用类似. 只不过保存的内容是Native方法的局部变量


Null

null 在 Java 中表示 "空引用" , 也就是一个不指向对象的引用.
表示一个无效的内存位置. 因此不能对这个内存进行任何读写操作. 一旦尝试读写, 就会抛出 NullPointerException.


总结:

以上便是java的基础知识点,内容还是挺多的,慢慢看,慢慢消化,慢慢理解。

  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值