虽然在学校有学过J2SE了,自我感觉还非常良好。可是出来这么久都没碰过了。很生疏了呀。现在Java是大的趋势,如果不会,会很受限制的。所以抽空再学了一下J2SE。突然发现原来在学校学的东西....好少,好浅.
感触了下之后小小做了点笔记。以备后续查看了。
第一章太泛,感觉没啥用,直接跳过去了。
第二章开始:
内存管理:
分为四个部分, code segment(存放代码);
data segment(静态变量,字符串常量);
stack(局部变量);
heap(new出来的东西)
4类8种基本数据类型:
逻辑:boolean
文本:char
整数:byte,short,int,long
浮点:float,double
Java字符采用Unicode编码
转义字符:‘/’
long型要加L,
float需加F
数据类型容量大小排序:
byte,short ,char>int>long>float>double
逻辑与:&
短路与:&&
短路第二个表达式可不进行计算,逻辑与不行,都要计算。
进行打印时,都转换为字符串
全选,table缩进
全选,shift+table退回
Java里的switch()只能比较int类型(char,short)
第三章:
java成员变量,Java会默认初始化
局部变量,Java不会默认初始化。
构造方法前面什么都不能写,void都不能有。
类名的首字母大写
方法名,变量名首字母小写
驼峰标识写法名中其他单词首字母大写
内存分析就是一切。
this可以看作是一个变量,它的值是当前对象的引用。
this可以处理方法中成员变量和参数重名的情况。
static:静态变量---只有一份
packgae:命名规则:公司域名倒过来
例如:package com.bjsxt.。。。。
包里面的类,要用的时候,class文件需要位于正确的目录下面。
名字要写全。或者引入相关的包。
类的源代码可能影响使用。
必须class文件的最上层包的父目录位于classpath下
执行一个类,需要写全包名。
jdk/jre/lib/rt.jar ---jdk提供的包:
java.lang:核心类 String,Math,Integer ,System和Thread --唯一一个不需引入的包
java.awt :构成抽象窗口工具集(abstract window toolkits)的多个类,用来构建和管理GUI
java.applet:
java.net:网络相关
java.io:
java.util:实用工具类,(系统特性,使用与日期日历相关的函数)
打包:jar -cvf xx.jar *.*
用包:把包当class文件设置到classpath里面。
class只能用public或者default包权限修饰
overload 重载 overwrite override 重写---继承
子类的调用过程必须调用其父类的构造方法
子类可以用super(argument_list)调用父类的构造方法
使用this(argument_list)调用本类的另外的构造方法
如果调用super,必须写在子类构造方法的第一行
子类如果没有显式调用父类的构造方法,系统默认调用父类的无参构造方法
如果既没有显式的调用父类的构造方法,父类中又没有无参的构造方法,则出错
equals方法。
自己重新定义。
对象转型 casting
可以使用 变量 instanceof 类名 来判断该引用型变量所“指向”的对象是否属于该类或者该类的子类。
动态绑定和多态:
1.要有继承;
2.要有重写;
3.父类引用指向子类对象。
抽象类:abstract
含有抽象方法的类比较被声明为抽象类,抽象类必须被继承,抽象方法必须被重写;
抽象类不能被实例化;抽象方法只需声明,不需实现;
final:
final的变量不能被改变;final的方法不能被重写;final的类不能被继承;
interface:接口---抽象方法和常量值的定义的集合。
多个无关的类可以实现一个接口;
一个类可以实现多个无关的接口;
与继承类似,接口与实现类之间存在多态性。
接口可以多重实现;
接口是一种特殊的抽象类,只包含常量和方法的定义,没有变量和方法的实现
接口中声明的属性默认为public static final的;也只能是public static final的。
接口中只能定义抽象方法,而且这些方法默认为public的,也只能是public的
接口可以继承其他的接口,并添加新的属性和抽象方法
实现接口:implements ---
接口与接口之间可以相互继承。接口与类之间只能实现
第三章结束