JavaSE基础补充

变量

局部变量会被存储在栈中,而全局变量会被存储在堆等数据结构中。
全局变量的定义:(public) static int a =1;
在对变量类进行强制类型转换时注意可能会造成精度丢失

表达式

& ——逻辑与 | ——逻辑或
&&——短路与 || ——短路或
&&的短路操作:在前面出现false时不再检索后面
|| 的短路操作:在前面出现 true时不再检索后面
而|和&会一直向下进行检索,所有也会相应的导致效率低下

复合运算符:

public static void main(String[] args) {
    int a = 7;
    //等价于 a = a*(2+3)
    a *= 2+3;
    System.out.println(a);
}

结果截图
在这里插入图片描述

char类型与重要的的ASCII码

要想将字符连接起来输出要用String.valueof()方法将字符转换为字符串,
再对字符串进行拼接

public static void main(String[] args) {
        //ASCII码中:A:65  a:97(32个间隔)     0:48
        char a = 'A';
        int  b = 32;
        //利用string类型的str.value()方法连接两个不同的char类型
        String str1 = String.valueOf(a);
        String str2 = String.valueOf(b);

        //直接输出a+b会输出对应的ASCII码
        System.out.println(a + b);
        //将其转变为char类型再输出会输出第一个字符
        System.out.println((char)(a + b));
        //转变为str类型后可以完整的输出对应的字符串
        System.out.println(str1+str2);
        //System.out.println((String)(a + b));
    }

验证char类型数据是否是数字类型:

if(ch >= '0' && ch <= '9')
            System.out.println("数字");

常用的Math函数

Math.pow(n,m)参数:n^m
Math.PI:π

public static void main(String[] args) {
    double r = 1.5;
    //math.pow(n,m)参数:n^m
    double L = 2*r*Math.PI;
    double S = Math.pow(r,2)*Math.PI;

    //String.format()确定精度(四舍五入)
    System.out.println("周长为"+(String.format("%.2f",L)));
    System.out.println("面积为"+(String.format("%.2f",S)));
}

对Math.radom()方法的拓展:
可以生成需要范围的数据,如需要7~20之间的整数

//+7使得下限是7
//*14使得Math.radom()方法生成的0~1之间的数字扩大14倍到达0~14,再通过(int)取到0~13
int a = (int)(Math.radom()*14)+7

分支语句可以相互嵌套

数组在内存中的存储

JVM对内存的划分主要分为堆、栈以及方法区
而对JVM的调优主要指的就是对存储区的调优
数组引用变量)的存储方式
在这里插入图片描述

循环语句

for循环的分支:普通for循环与增强for循环
增强for循环缺陷:无法对数组进行增删改等操作
根本原因:在增强for循环体中的一切操作都是对其中的局部变量进行操作
例:

//显示arr2数组中的数据
import java.util.Scanner;

public class ShuZuDemo {
    public static void main(String[] args) {
        int[] arr = new int[10];
        int[] arr2 = new int[10];
        System.out.println("普通for循环");
        for(int i = 0;i< 10;i++){
            arr[i] = (int)(Math.random()*10)+1;
            System.out.print(arr[i]+"\t");
        }
        System.out.println();
        System.out.println("增强for循环");
        for(int a : arr2){
            a = (int)(Math.random()*10)+1;
        }
        System.out.print("[");
        int count = 0;
        for(int a:arr2){
            count++;
            if(count != arr2.length){
                System.out.print(a + "\t");
            }else {
                System.out.println(a + "]");
            }
        }
    }
}

结果截图:在这里插入图片描述
故增强for循环大多被用于遍历、查询等操作

面向对象

由类为基础定义的对象也是引用类型的变量,其存储方式与数组相似
如果类中有成员方法,成员方法与main函数一样会存放在方法区,在执行时会压入栈中,执行完毕后执行弹栈操作。
在这里插入图片描述

在新建的类中如果没有带有参数的构造方法,那么系统会为这个类自动构造一个无参的构造方法。
但是当有参数的构造方法产生时,则系统自动生成的构造方法则会失效,那么此时在main函数中再定义该类的对象时,就一定要为这个对象赋值。
(原理为方法的重载,重载这个概念适用于任何方法)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值