Java0基础学习笔记day07(Random生成随机数、java猜数字、数组概述、java中的内存分配)

1.Random:用于生成随机数
 *    使用步骤: 
 *        A:导包 import java.util.Random;
 *        B:创建对象Random r= new Random();
 *        C:调用随机数 int i=r.nextInt(10);包括0 不包括10,即[0,10) 。若没有范围则生成的数值有正数也有负数且在int数值范围内。
 *     随机数Random:    
 *         会随机生成一个整数,这个整数的范围就是int类型的范围-2^31 ~ 2^31-1,
 *         但是如果在nextInt()括号中加入一个整数a那么,这个随机生成的随机数范围就变成[0,a)。

public static void main(String args[]){Random r=new Random();//0-9int a=r.nextInt(10);System.out.println(a);//0-9随机数//获取0-99随机数,【0,100)//0-99int b=r.nextInt(100);//nextInt(100)+1则范围变成1-100System.out.println(b);


 * 2.Random、Scanner与while、if的结合使用,猜数字小游戏案例:
 *         系统产生一个随机数,请猜出数字大小
 *         使用while循环与if的结合使用,当猜对时,使用break结束循环,否则一直猜。
 *         代码:

Scanner sc=new Scanner(System.in);int count=0;boolean flage=true;while(flage){System.out.println("请输入你要猜的数据:");//键盘输入int b=sc.nextInt();if(b==a){count++;System.out.println("恭喜你,猜对啦!!随机数为:"+b+",总共猜了:"+count+"次!");break;}else if(b>a){count++;System.out.println("猜的数据大了");}else {count++;System.out.println("猜的数据小了");}}


 * 3.数组概述:
 *         定义:数组是存储多个变量的容器,这多个变量的数据类型要一致。
 *         定义格式:
 *             A:数据类型 []数组名;(常用)
 *             B:数据类型 数组名 [];
 *             eg:int[] arr;//定义了一个int类型的数组,数组名是arr。
 *                int arr[];//定义了一个int类型的变量,变量名是arr数组
 *         数组的初始化:
 *             A:所谓的初始化,就是为数组开辟内容空间,并为数组中的每一个元素赋予初始值。
 *             B:两种方式实现数组的初始化:
 *                 ①:动态初始化   只给出长度,由系统给出数组初始化值。
 *                 ②:静态初始化   给出初始化值,由系统决定长度
 *             动态初始化:
 *                 数据类型[] 数组名=new 数据类型[数组长度];    
 * 注意:声明就是栈内存(只是一个声明,不能存储实际东西), new 出来的东西到堆内存(说明真实存在了,可以存储东西) ; 
 *         数组元素的访问:通过索引访问。
 * 

int []arr=new int[3];/*解释上行:* 左边:*     int:说明数组中的元素类型 都是int类型*     []:说明这是一个数组*     arr:数组名称*右边:*    new :为数组申请内存分配, 开辟内存空间(才能存东西)*    int :说明数组中的元素类型为int*    [] :说明这是一个数组*    3:     数组长度,本质数组中的元素的个数* * */
	//输出数组名System.out.println(arr);//[I@15db9742   [代表数组的意思,是数组的地址值//获取数组的地址是没有意义的,我们需要数组中的元素值//数组中的每一个元素是有编号 ,从0开始,最大编号是数组长度-1//访问:通过指定编号获取指定编号的元素。//这个编号的专业叫法就叫索引//访问格式:数组名[索引]System.out.println("arr[0]:"+arr[0]);//int数组默认初始值0System.out.println("arr[1]:"+arr[1]);System.out.println("arr[2]:"+arr[2]);
//		System.out.println("arr[3]:"+arr[3]);//报错 索引超过范围
		
//静态初始化int [] arr1={1,2,3};System.out.println(arr1[0]);


 * 
 * 4.Java中的内存分配
 *         定义:Java程序在运行时,需要在内存中分配空间。为了提高效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式
 *         栈:存储的是局部变量。eg:int a=10;中a就是局部变量。(也要开辟空间)
 *      堆:存储的new出来的东西(也要开辟空间);int []a=new int[3]; (本质是new int[3],因为赋值给a了,所以a指向new int[3]的地址,输出a作为数组地址值。)
 *      方法区:面向对象的阶段讲
 *      本地方法区:和系统相关
 *      寄存器:给CPU调用
 *       


 *      栈:存储的是局部变量(也要开辟空间)
 *          局部变量就是定义在方法中(如main方法、自定义方法等)的变量
 *         int arr=new int[3];      
 *         栈:(也要开辟空间)
 *        int [] arr 指向堆的地址
 *         堆:(也要开辟空间)
 *        new int[3] 数组的初始化都有地址值且赋值给栈的arr
 *                   每一种数据类型的数组都有初始值0/0.0/'\u0000'/false/null
 *                   使用完毕方法结束之后,会在垃圾回收器空闲的时候被回收
 *         图解:


 * 5.练习:Four.java

public static void main(String[] args) {// TODO Auto-generated method stub/** * 定义一个数组,输出数组名及元素,然后给数组中的元素赋值,再次输出数组名和元素 * */int [] arr=new int[3];System.out.println(arr);System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);System.out.println("---------");//赋值arr[0]=100;arr[2]=200;System.out.println(arr);System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);
//		解释:/**栈:*   int arr[]   指向地址:[I@15db9742* * 堆:*   new int[3]  数组地址值:[I@15db9742*   *   *   * */

练习图解:


 * */


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部