java学习

Java的随机数:

import java.util.Random;
import java.util.Scanner;

public class print {
    public static void main(String[] args) {
        Random r=new Random();
        for(int i=0;i<10;++i)
        {
            int digit=r.nextInt(10);
            System.out.println(digit);
        }
    }
}

r.nextInt(10)会产生一个从0-10的随机数。
如果想产生一个6-13的随机数可以这样:

int digit=r.nextInt(7)+6;

Java键盘录入

package printhello;
import java.util.Scanner;

public class print {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String s=sc.next();
        int age=sc.nextInt();
        }
    }

Java数组

dataType[] arrayRefVar;   // 首选的方法
或
dataType arrayRefVar[];  // 效果相同,但不是首选方法

创建数组

arrayRefVar = new dataType[arraySize];
dataType[] arrayRefVar = new dataType[arraySize];
dataType[] arrayRefVar = {value0, value1, ..., valuek};

以上三种方法都可以

public class print {
    public static void main(String[] args) {
        int[] arr = new int[5];
        int[]arr1=new int[]{1,2,4};
        double[]scores=new double[]{2.3,4.2,1.2};
        double[]scores1={1.2,3.2,5.3};
        String[]str={"dfjkls","dsf"};
        System.out.println(arr);
        System.out.println(arr1);
        System.out.println(scores);
        System.out.println(str);
    }
    }

数组名就是数组的地址。

 System.out.println(arr.length);

可以获取数组的大小.

动态数组

在这里插入图片描述
动态数组string对应的初始值是null.

package printhello;
import java.util.Scanner;

public class print {
    public static void main(String[] args) {
        String []s=new String[100];
        System.out.println(s[99]);
    }
}

结果为:null
在这里插入图片描述

java数组内存图

在这里插入图片描述
在这里插入图片描述
常见问题:
访问位置超过最大索引,会出现异常。
如果令arr=null,再访问arr元素的个数的时候会报错。

public class print {
    public static void main(String[] args) {
        int[]arr=new int[3];
        arr=null;
        System.out.println(arr.length);

    }
}

java 方法

在这里插入图片描述
java的形参不能赋初始值
java 方法之间是平行关系,不用像c++那样提前声明。

Java 类的内存图

在这里插入图片描述
执行方法的时候,编译器会根据对象的地址找到该方法,然后在栈内存中调用。

java String

在这里插入图片描述
在这里插入图片描述
s1和s2不相等

String常见面试题

在这里插入图片描述

“abc"在字符串常量池,s2在堆里面所以不相等。
在这里插入图片描述
第一个由于s2是变量,所以变量和字符串常量相加的结果还是放在堆里面的,而s1是放在字符串常量池里面的,所以说不相等。
对于第二道题,由于预编译机制,会直接把"a”+“b”+"c"变为"abc"所以说会相等。(只要不是以双引号给出来的就是放在堆内存中的)。

java String 常用API

boolean equals(Object anObject)
Compares this string to the specified object.
boolean equalsIgnoreCase(String anotherString)
Compares this String to another String, ignoring case considerations.

第一个是精确比较,第二个是忽略大小写。

public static void main(String[] args) {
       String s1="12345a";
       Scanner sc=new Scanner(System.in);
       String s2=sc.next();
       if(s1.equalsIgnoreCase(s2))
       {
           System.out.println("yes");
       }
    }

在这里插入图片描述
还有startwith(),contains()函数。

Java Number & Math 类

包装类基本数据类型
Booleanboolean
Bytebyte
Shortshort
Integerint
Longlong
Characterchar
Floatfloat
Doubledouble
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值