文章目录
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 类
包装类 | 基本数据类型 |
---|---|
Boolean | boolean |
Byte | byte |
Short | short |
Integer | int |
Long | long |
Character | char |
Float | float |
Double | double |