Eclipse中的快捷键快速生成常用代码(例如无参、带参构造,set、get方法),以及Java中重要的内存分析(栈、堆、方法区、常量池)
(一)Eclipse中的快捷键:
ctrl+shift+f自动整理选择的java代码
alt+/ 生成无参构造器或者提升信息
alt+shift+s+o 生成带参构造
ctrl+shift+o快速导入包
alt+shift+s+r tab+enter-->shift+tab+enter 快速生成get set方法
ctrl+f11快速运行代码
说明:快捷键可以快速帮我们生成代码,减少开发的时间,提高效率,记住几个主要的就可以,其他的可以在Eclipse的编辑器中右键鼠标,在弹出的菜单项中选择sourse,在它的子菜单项中选择
(二)Java中数据类型
Java数据类型分为:基本数据类型和引用类型
基本数据类型分为:数值型 布尔型 字符型
引用类型:Class 接口 数组等(除了基本数据类型的都是引用类型)
(三 )Java中内存分析
1.首先内存分为2大部分:栈(局部变量都在栈里面,空间连续)和堆(new关键字 出来的对象,空间不连续)
2.堆的话:分为普通的堆(存放new出来的对象)和方法区(类加载器加载到的类的代码,static方法和变量,常量池(字符串常量)等)
3.首先我们先定义一个简单的类:
说明:People类,有2个属性,一个引用类型String,还有一个基本数据类型int,在构造器中初始化,构造器当然还是有返回值,返回的是这个对象地址,this关键字指向将要实例化的对象,this关键字和super关键字都是类中方法的隐式参数,可以在方法中直接使用,super关键字是指向它的直接父类对象的引用
4.在类中写一个main方法,程序的入口:
首先类加载器会加载People类还有该类中用到的其他类,存放在堆中的方法区中,People p=new Peolpe();
说明:p是个局部变量存放在栈里面,里面存放的是4个字节的空间地址。new People()表示在堆中以类的模板创建一个对象,由于是无参构造,它的成员变量,引用类型的就为null,基本数据类型的在某种意义下就是0。
在往下看
p.name=new String()和p.age=18在内存中的分析
说明:通过p引用找到堆里面的对象,在找到它的String name属性,让它指向在堆中新new出来的字符串对象,而int age属性,是直接存放18这个值,所以说,基本数据类型存值,引用类型存放空间地址,在说一说二位数组,看下面代码
画出一下它的内存图:
说明:首先的话,a指向堆里面的有2个引用属性的对象,然后该对象2个引用属性分别指向另外2个数组,由于二位数组各个项没有赋值,根据是int类型,默认值就为0,如果是引用类型,那么就是null
5.当然还有方法,在new出来的对象中的普通方法,就是不带static关键字的方法,它也有地址,指向方法区的类代码中的该方法,实现调用,然后该方法中有参数的话,就会在栈中开辟一个空间存放该局部变量,若是基本数据类型的参数,就存放值,若是引用类型数据类型的参数就存放空间地址,然后通过该空间地址来找到它所指向的对象,来进行方法的操作
6.就是方法区中带static的方法和变量,它们是从属于类的,可以通过类名.直接调用该方法,不依赖对象
7.就是常量池中的字符串常量:举个例子
说明:”我是字符串“就是在常量池中的字符串常量,画出它的内存分析图
画出内存图就知道了,str1==str2返回值为什么为true,因为它们指向同一个地方,存放的空间地址是一样,所以返回true
8.关于继承的内存分析图就不画了,其实很简单,在子类的构造器中默认有super()这一行代码,调用父类的构造器,这就是为什么在创建子类对象的时候,会先创建父类对象,如果调用了一个方法,在子类中没有,就会去父类中找,使用属性也是一样
9.关于引用类型为null,当然不是为空,也是指向堆中的一个内存空间的。