Java散落知识点总结(一)
来源:互联网 发布:爱淘宝红包不中 编辑:程序博客网 时间:2024/04/30 16:16
1.数组
1.
<span style="white-space:pre"></span><span style="font-size:18px;">int[] arr=new int[5]; System.out.println(arr[5]); //编译通过,发生运行时异常(数组越界异常) </span>
2.二维数组:要理解二维数组的内存存储结构,数组是引用数据类型,因此是堆中开辟空间
<strong><span style="white-space:pre"></span><span style="font-size:18px;">int[][] arr=new int[2][3]; //int[2] 这块空间存储的是两个int[3]的内存地址 //注意!!两个int[3] 内存的地址是不连续的</span></strong>注意!!由于内存的地址是不连续的,这也就解释了为什么
int[ ][ ] arr=new int[2][ ]; //编译通过
int[ ][ ] arr=new int[ ][3]; //编译不通过
2.静态代码块
随着.class的加载执行,优先main函数的执行,且只执行一次
<strong>class Testw{static int num;static {System.out.println(num);}}public class Test01 {static { System.out.println("a");}public static void main(String[] args) { Test f=null;}} /*output*/ a 只输出a 应为在Test01的main函数中并没有加载 Testw.class文件,因此Testw的静态代码块不会执行</strong>3.构造代码块
在构造函数之前执行,每新建一个对象就会执行构造代码块
<strong><span style="white-space:pre"></span>class Test{{System.out.println("first construct");}public Test(){System.out.println("second construct");}}/*output*/ first construct second construct</strong>
4.对象创建过程
1.首先加载.class文件创建对象
2.如果有静态代码块先执行静态代码块
3.堆中开辟内存为成员变量赋默认值
4.堆中开辟内存为成员变量赋初始值
5.执行构造代码块
6.执行构造函数
7.对象在堆中的地址传给栈中的引用
5.super和this的对比
1.this是指向当前的对象的引用,表示当前对象
2.super表示超类意思
3.当成员函数中(非静态)的局部变量与成员变量同名时,使用this解决同名问题
eg: public void setName(String name){
this.name=name; }
4.super是为了解决子类覆盖父类的成员函数或者成员方法,解决被屏蔽的问题使其可见。
5.在子类构造函数中,首先要调用构造函数(super() 调用可以省略)但是有一点一定要注意!
当父类的构造函数已经被显示声明时候(也就是说默认构造函数已经消失),必须要显示声明父类的默认构造函数
否则子类在构造函数时候如果不显示声明时,就会报错。
6.System.out.println(this); //输出的是当前对象的地址
System.out.println(super); //编译报错不通过
- Java散落知识点总结(一)
- JAVA知识点总结一
- Java基础知识点总结一
- JAVA总结知识点(一)
- Java中小知识点总结一
- Java知识点总结(一)
- Java知识点总结(一)
- 散落一地的信...
- 转身,散落一地悲凉
- 黑马程序员 知识点总结-Java IO(一)
- Java基础之集合知识点总结一
- JAVA知识点总结(一)异常
- Java基础知识点总结(一)
- Java SE基础知识点总结(一)
- Java知识点小总结(一)
- java基础知识点总结(一)
- android,java知识点总结(一)
- Java IO知识点总结一(File类)
- android studio for android learning (十二) 查看并获取联系人信息
- 漂亮的thinkphp分页类
- Eclipse下报错 An internal error occurred during: "C/C++ Indexer". java.lang.NullPointerException
- 欢迎使用CSDN-markdown编辑器
- 封装示例_java
- Java散落知识点总结(一)
- ACM中的博弈论入门(三) POJ 1740 开点脑洞……
- PHPdatatable服务器端处理(2)
- Android开源特效常用链接大集合
- 【一天一道LeetCode】#122. Best Time to Buy and Sell Stock II
- 动画Animations
- SGDClassifier和LR,SVM的区别
- 数据挖掘学习笔记-分类(1)
- ParseResult Exception:java.lang.IllegalStateException: Cannot add header view to list -- setAdapter