java里的一些特别值得注意的地方
return 语句的作用:1.返回值 2.结束某个方法的执行。
局部变量必需要初始化,全局变量系统会默认初始值;
整型数赋默认值为0.
浮点数赋默认值为0.0,boolean赋默认值为false。
char型赋默认值为‘\u0000’。
复杂类型赋默认值为null。
栈是执行时的单位。而堆是存储的单位
栈:自己主动分配连续的空间,后进先出,放置局部变量
堆:不连续。放置new出来的变量
堆里面还有方法区,类的代码信息。static变量,常量池(字符串常量等)
public class Animal {
String name="Animal";
int age=2;
public void eat(){
System.out.println("Animal eat");
}
}
public class Bird extends Animal{
String name="Bird";
int age=20;
public void eat(){
System.out.println("Bird eat...");
}
public void sleep(){
System.out.println("Bird sleep....");
}
}
向上转型
Animal a=new Bird();
a.eat();
// 此处将调用子类的eat()方法。
原因:b实际指向的是Bird子类,故调用时会调用子类本身的方法。
// a.sleep();
//须要注意的是向上转型时a会遗失除与父类对象共同拥有的其它方法。
如本例中的sleep()方法不再为a全部。
向下转型
Bird b=(Bird)a;
b.eat();
//向下转型,编译和执行皆不会出错,这里的向下转型是安全的。由于b1指向的是子类对象
Animal a1=new Animal();
Bird b1=(Bird)a1; //不安全的向下转型,编译无错但会执行会出错
b1.eat(); //这句话执行会出错
java里的一些特别值得注意的地方的更多相关文章
- SQL指令中一些特别值得注意的地方
SQL基本指令要频繁使用,要是理解错了,将来工作一定会出现很大的麻烦.今天再重新梳理一下基本的SQL语法 SQL指令 in: 这个指令,我曾经发生过把它和python中的in搞混的错误.python中 ...
- java里String类为何被设计为final
前些天面试遇到一个非常难的关于String的问题,"String为何被设计为不可变的"?类似的问题也有"String为何被设计为final?"个人认为还是前面一 ...
- java里的静态成员变量是放在了堆内存还是栈内存
转自http://bbs.csdn.NET/topics/370001490 堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息.(class的目的是得到操作指令) 2.jvm ...
- 一道简单的 Java 笔试题,但值得很多人反思!
前言 面试别人,对我来说是一件新奇事,以前都是别人面试我.我清楚地知道,我在的地域与公司,难以吸引到中国的一流软件人才.所以,我特地调低了期望,很少问什么深入的技术问题,只问一些广泛的.基础的.我只要 ...
- 小谈Java里的线程
今天,我们来谈一谈Java里的线程. 一.进程与线程的基本概念 大家可能没听过线程这个概念,但是相信,用计算机的朋友都听过进程这个概念.打开电脑的任务管理器,我们就可以看到许多进程.它们主要分为三类, ...
- java里的static和final
本节介绍JAVA里static和final的作用和使用方法以及一些需要注意的问题. 一.static static表示"全局"或"静态",用来修饰成员变量和成员 ...
- java里的基本数据类型
java里一共有八大数据类型 boolean(未定) char(2字节) byte(1字节) short(2字节) int(4字节) long(8字节) float(4字节) double(8字节), ...
- (转载)Java里快如闪电的线程间通讯
转自(http://www.infoq.com/cn/articles/High-Performance-Java-Inter-Thread-Communications) 这个故事源自一个很简单的想 ...
- 关于java里小数点的保留
关于java里小数点的保留 1.先给大家看一个代码. import java.util.*;import java.text.*; public class A { public static voi ...
随机推荐
- [luogu3369] 普通平衡树(splay模板)
题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 1.插入 xx 数 2.删除 xx 数(若有多个相同的数,因只删除一个) 3.查询 xx 数的排名(排名定义为比 ...
- Python破解Wifi密码思路
一.前言说明 本机运行环境:系统环境Win10,运行环境Python3.6,运行工具Pycharm 需要Python的包有:pywifi 这是一种暴力破解wifi的模式,需要的时间比较长,本文主要提供 ...
- 小白神器 - 两篇博客读懂JavaScript (一基础篇)
JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. 一. 编写格式 1, ...
- 使用PoolingHttpClientConnectionManager解决httpclient的多线程请求问题
直接上代码 1.主程序 public class TestMain { public static void main(String[] args) throws NSQException, Time ...
- 监控SQLserver计数器
- CodeForces 362E Petya and Pipes
Petya and Pipes Time Limit: 1000ms Memory Limit: 262144KB This problem will be judged on CodeForces. ...
- maven也是Apache开发的,也是java开发的。maven需要你本地系统JDK的支持
1. 3. 添加 M2_HOME 和 MAVEN_HOME 添加 M2_HOME 和 MAVEN_HOME 环境变量到 Windows 环境变量,并将其指向你的 Maven 文件夹. M2_HOME ...
- POJ 3088
已知n,求n中取k(k<=n)个数组成的m(m<=n)个的集合的排列数. 于是,可以枚举选出k个数及枚举m个集合.这个很明显是二类斯特林数.而集合有序,则乘上m! #include < ...
- YAML说明
YAML说明 https://www.cnblogs.com/songchaoke/p/3376323.html XML的简化
- Windows 8.1硬盘安装Ubuntu 14.04双系统
Windows 8.1硬盘安装Ubuntu 14.04双系统 学习了: http://www.jb51.net/os/windows/298507.html http://www.linuxidc.c ...