间歇性混吃等死,持续性踌躇满志系列-------------第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

运行结果图

对象的内存图

JAVA进阶6的更多相关文章

  1. Java 进阶 hello world! - 中级程序员之路

    Java 进阶 hello world! - 中级程序员之路 Java是一种跨平台的语言,号称:"一次编写,到处运行",在世界编程语言排行榜中稳居第二名(TIOBE index). ...

  2. Java进阶(五)Java I/O模型从BIO到NIO和Reactor模式

    原创文章,同步发自作者个人博客,http://www.jasongj.com/java/nio_reactor/ Java I/O模型 同步 vs. 异步 同步I/O 每个请求必须逐个地被处理,一个请 ...

  3. Java线程间通信方式剖析——Java进阶(四)

    原创文章,同步发自作者个人博客,转载请在文章开头处以超链接注明出处 http://www.jasongj.com/java/thread_communication/ CountDownLatch C ...

  4. Java进阶(三)多线程开发关键技术

    原创文章,同步发自作者个人博客,转载请务必以超链接形式在文章开头处注明出处http://www.jasongj.com/java/multi_thread/. sleep和wait到底什么区别 其实这 ...

  5. 当我们说线程安全时,到底在说什么——Java进阶系列(二)

    原创文章,同步发自作者个人博客,转载请以超链接形式在文章开头处注明出处http://www.jasongj.com/java/thread_safe/ 多线程编程中的三个核心概念 原子性 这一点,跟数 ...

  6. Java进阶03 IO基础

    链接地址:http://www.cnblogs.com/vamei/archive/2013/04/11/3000905.html 作者:Vamei 出处:http://www.cnblogs.com ...

  7. Java进阶01 String类

    链接地址:http://www.cnblogs.com/vamei/archive/2013/04/08/3000914.html 作者:Vamei 出处:http://www.cnblogs.com ...

  8. 从ConcurrentHashMap的演进看Java多线程核心技术 Java进阶(六)

    本文分析了HashMap的实现原理,以及resize可能引起死循环和Fast-fail等线程不安全行为.同时结合源码从数据结构,寻址方式,同步方式,计算size等角度分析了JDK 1.7和JDK 1. ...

  9. Java进阶(七)正确理解Thread Local的原理与适用场景

    原创文章,始自发作者个人博客,转载请务必将下面这段话置于文章开头处(保留超链接). 本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ Th ...

  10. Java进阶(四十七)Socket通信

    Java进阶(四十七)Socket通信   今天讲解一个 Hello Word 级别的 Java Socket 通信的例子.具体通讯过程如下: 先启动Server端,进入一个死循环以便一直监听某端口是 ...

随机推荐

  1. Mac下使用国内镜像安装Homebrew

    First MBP上的brew很老了,就想把brew更新一下,顺便安装一下NodeJs.无奈更新的过程一直卡在网络下载,毫不动弹.想想,应该是Repo访问不到的原因,于是重装brew. 根据官网上的方 ...

  2. python小白——进阶之路——day2天-———变量的缓存机制+自动类型转换

    # ###同一文件,变量的缓存机制 ''' -->Number 部分 1.对于整型而言,-5~正无穷范围内的相同值 id一致 2.对于浮点数而言,非负数范围内的相同值 id一致 3.布尔值而言, ...

  3. C# 递归构造树状数据结构(泛型),如何构造?如何查询?

    十年河东,十年河西,莫欺少年穷. 学无止境,精益求精 难得有清闲的一上午,索性写篇博客. 首先,我们需要准备一张表,如下范例: create table TreeTable ( TreeId ) no ...

  4. python list 中 remove 的骚操作/易错点

    在过去的某一天(2019.3.19),有个学弟问了一个关于python list中的一个问题: 比如我们已知一个列表 [3,4,5,6,5,4,3] 我们想删除第一个为3的元素. 我们尝试了如下几种方 ...

  5. js 运行机制

    <script> console.log(1) setTimeout(function(){ console.log(3) },0) console.log(2) </script& ...

  6. AI佳作解读系列(一)——深度学习模型训练痛点及解决方法

    1 模型训练基本步骤 进入了AI领域,学习了手写字识别等几个demo后,就会发现深度学习模型训练是十分关键和有挑战性的.选定了网络结构后,深度学习训练过程基本大同小异,一般分为如下几个步骤 定义算法公 ...

  7. thymeleaf循环

    th:each属性用于迭代循环,语法:th:each="obj,iterStat:${objList}"迭代对象可以是Java.util.List,java.util.Map,数组 ...

  8. java 的数据类型及其所占的字节数

    1.char java中的一个char是2个字节.java采用unicode,2个字节来表示一个字符. 一个数字或英文或汉字都是一个字符,只不过数字和英文时,存储的2个字 节的第一个字节都为0,就是浪 ...

  9. python中self和cls的区别

    1.self表示一个具体的实例本身.如果用了staticmethod,那么就可以无视这个self,将这个方法当成一个普通的函数使用. 2.cls表示这个类本身. >>> class ...

  10. Codeforces Round #551 (Div. 2) 题解

    CF1153A 直接做啊,分类讨论即可 #include<iostream> #include<string.h> #include<string> #includ ...