间歇性混吃等死,持续性踌躇满志系列-------------第6天
1、数组
package cn.intcast.day06.demo01; /*
直接打印数组名称,得到的是数组对应的内存地址的哈希值.
访问数组元素的格式:数组名称[索引值]
*/
public class array01 {
public static void main(String[] args) {
//静态初始化的省略格式
int[] arr = {10, 20, 30, 40};
int[] arr1 = new int[4];
System.out.println(arr); // [I@16d3586
System.out.println(arr1); // [I@154617c
System.out.println(arr[0]);
System.out.println(arr1[0]);
System.out.println(arr1[1]);
System.out.println(arr1[2]);
System.out.println(arr1[3]);
}
}
运行结果图
2、JAVA的内存划分
java的内存划分为5个部分:
①栈(stack):存放的都是方法中的局部变量。方法的运行一定要在栈当中运行。
局部变量:方法的参数,或者是方法{}内部的变量
作用域:一旦超出作用域,立刻从栈内存当中消失。
②堆(heap):凡是new出来的东西,都在堆中。
堆内存中的东西都有一个地址值:16进制
堆内存里面的数据都有默认值。规则:
如果是整数 默认为0
如果是浮点数 默认为0.0
如果是字符 默认为‘\u0000'
如果是布尔 默认为false
如果是引用类型 默认为null
③方法区(method area):存储.class相关信息,包含方法的信息
④本地方法栈(native method stack):与操作系统相关
⑤寄存器(pc register):与cpu相关
3、数组的遍历输出
package cn.intcast.day06.demo01; public class array01 {
public static void main(String[] args) {
int arr[] = {2,22,33,44,44,4,4,43,2,3,2,};
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + ",");
}
}
}
运行结果图
4、数组求最大值
package cn.intcast.day06.demo01; public class array01 {
public static void main(String[] args) {
//定义数组
int arr[] = {2, 22, 33, 444, 44, 43, 3, 1000};
//定义最大值存放的参数
int max = arr[0];
//循环比较
for (int i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
System.out.println("最大值是:" + max);
}
}
运行结果图
5、数组的反转
package cn.intcast.day06.demo01; public class array01 {
public static void main(String[] args) {
//定义数组
int arr[] = {11,22,33,44,55,66,77,88,99};
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+",");
}
System.out.println();
for (int min =0,max=arr.length-1;min<max;min++,max--) {
int temp = 0;
temp = arr[min];
arr[min] = arr[max];
arr[max] = temp;
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+",");
}
}
}
运行结果图
6、数组作为方法返回值
package cn.intcast.day06.demo01; public class array01 {
public static void main(String[] args) {
int[] re = caculate(1, 3, 4);
System.out.println(re[0]);
System.out.println(re[1]);
} public static int[] caculate(int a, int b, int c) {
int sum = a + b + c;
int avg = sum / 3;
int[] array = new int[2];
array[0] = sum;
array[1] = avg;
return array;
}
}
运行结果图
7、手机类练习
package cn.intcast.day06.demo01;
/*
*定义一个类,用来模拟“手机”事物
* 属性:品牌、价格、颜色
* 行为:打电话、发短信
*
* 对应到类当中
* 成员变量(属性):
* String brand; //评判
* double price; //价格
* String color; //颜色
* 成员方法(行为):
* public void call(String who){} //打电话
* public void sendMessage(){} //群发短信
* */
public class phone {
String brand;
double price;
String color;
public void call(String who){
System.out.println("给"+who+"打电话");
}
public void sendMessage(){
System.out.println("发短信");
}
}
phone.java
package cn.intcast.day06.demo01; public class phoneone {
public static void main(String[] args) {
//根据phone类,创建一个名为one的对象
//格式:类名称 对象名 = new 类名称();
phone one = new phone();
System.out.println(one.brand);
System.out.println(one.color);
System.out.println(one.price);
System.out.println("======================");
one.color = "绿色";
one.brand = "华为";
one.price = 9999;
System.out.println(one.brand);
System.out.println(one.color);
System.out.println(one.price);
one.call("Jane");
one.sendMessage();
}
}
phoneone
运行结果图
对象的内存图