这两天通过视频和书籍在自学java。每天学一点,每天做一点笔记,希望有所收获!
1Java运行中的内存分配
理解内存的分配,也就理解了一切。对于java而言,内存分为四块:代码区(code/数据区(data/栈内存(stack/堆内存(heap),堆内存是用来动态分配内存的,所以new出来的对象都放在堆内存;局部变量都分配在栈内存;字符串常量以及静态变量都存放在数据区。(方法的返回值存在一个临时内存区域中)
2Java中的构造方法
构造方法:new一个对象的时候,实际上调用的是一个构造方法——构造一个新对象的时候使用的方法。方法名和类名一样,并且没有返回值。构造方法的作用是给成员变量赋初始值。(方法命名规则:1,类名首字母大写;2,方法名、变量名首字母小写;3,运用驼峰标识)
3,重载
当某个功能需要在不同条件下调用的时候,可以采用方法重载。方法重载:方法名相同,参数类型,或参数个数不同。而返回值不同不构成重载,也就是说只要在调用重载方法的时候,编译器能够区分调用的是哪一个,就能够构成重载。
4this关键字
在类的方法中,this是一个引用,是指向自身对象的引用。
5static关键字
static关键字修饰的变量是静态成员变量(公用变量)。对于static变量来说,此成员变量只有一份,对所有的对象共享。静态变量存放在data区,属于整个类,访问静态值都是访问同一值,可以直接用“类名.静态变量”的方式来访问静态变量。由于其值在整个内存中只有一份的特性,它可以用来作为计数器。也可以用static来修饰成员方法,这样的方法称为静态方法,静态方法可以用对象访问,也可以直接类名进行访问,而非静态方法只能针对某个对象进行调用。static方法中不可以访问非static的成员。
6package&import
为了防止命名冲突,用package对源文件进行打包,一般来说,包名是将机构或公司的域名进行反序。package必须写在源代码第一行,编译出来的class的文件必须位于正确的目录下面(即和包的目录一致)。在控制台下,执行一个类,需要写全包名。关于包的编译、执行,在Eclipse下很少出问题。平时写java程序,不要写裸体类(即没有封装包的类),否则很容易产生命名冲突。用以下命令可以将源文件打包成jar文件:jar -cvf name.jar *.* (将当前目录下的所有文件打成包)有可能因为package后,在控制台下无法用java命令执行,此时可以选择用javac -d . 文件名.java进行编译,然后用java 全包名.文件名执行。
在需要用到其他包中的类时,需要用import 包名将所需类引入。
注意保持良好的编程风格!