内存布局:堆段(heap segment):存放New出来的东西 , 栈段(stack segment):局部变量 , 数据段(date segment):存放静态变量和字符串常量 , 代码段(code segment):存放代码
类型: byte(1byte) , short(2byte) , char -> int(4byte) -> long(8byte) -> float(4byte) -> double(8byte) --- 注意隐式申明
逻辑: 与(&) , 或(|) , 非(!) , 赋值(=) , 等于/不等于(==/!=) , ^(异或) , &&(短路与) , 短路或(||) , 三目运算(a?b:c)
语句: 条件语句(if..else.. , switch..case ) 循环语句(for , while , do..while) break(终止循环) , Continue(跳过本次循环) , return(返回)
常用命令:java -cvf 打包文件名(xx.jar) 打包文件类型(一般*.*) ;
面向对象思维:首先应把对象抽象出来成立类,然后确立对象(类)与对象的关系和对象应有的属性和方法,最合适的方法出现最合适的类里
编程规范:注意缩进 , 注意空格 , 类名首字母大写(驼峰标识) , 方法名(参数)首字母小写(驼峰标识) , 取名有意义
-------------面象对象笔记--------------------------------
JAVA两种核心机制:JAVA虚拟机机制(JAVA Virtual Machine) , 垃圾收集机制(Garbage collection)
编程语言发展:机器语言 -> 汇编语言 -> 高级语言 -> 面向对象 -> 面向组件
类和对象的概念:类是用一些动态属性(方法)和静态属性(变量)来描述具有相同特征的一类事物的一个抽象概念 , 一个对象是类的一个具体实例,类是一类对象的模板
类(对象)之间的关系:关联关系 -> 继承关系 -> 聚合关系(聚集、组合)-> 实现关系 -> 多态
JAVA引用:即是C/C++中的指针,JAVA中除基本类型外,其他都是引用类型(既用栈中变量指向堆中对象)
JAVA构造方法:在创建类的实例(对象)时,实例继承所有类的变量和方法,构造方法主要用于实例的初始化,可以重载
new关键字:用于构造对象的实例(对象) , HelloWorld He; //给HelloWorld增加一个对象He , He = new HelloWorld; //实例化对象He , HelloWorld He = new HelloWorld; 增加一个对象He并且实例化
方法重载(OverLoad):是指具有相同名字而参数不同(参数类型或参数个数或参数顺序)的多个方法
this和super关键字:this是指向对象自身的引用 , super是指向其父类的引用
static关键字:可申明静态变量(注:属于该类公共变量)或静态方法(调用不需要对象,也不可调用非静态方法)
package和import:package(打包,一般为公司域名倒着,编译后的类必须放在正确的目录下)和import(引用包,注意引用目录的正确性)
访问控制符:private(私有) , default(默认) , protected(受保护) , public(公开的) ; 修饰类权限时只能default或public
JAVA继承(extends):通过extends关键字来实现类或接口的继承(继承后,子类自动拥有基类(接口)的所有方法和属性), JAVA只支持单继承,不允许多继承(既一个子类只能拥有一个基类,但基类可以有无数子类);Object类是所有未申明继承类的根基类
JAVA重写(OverWrite/Override):子类中通过需要对基类继承来的方法进行重写;重写方法必须和被重写方法具有相同的定义;重写方法不能使用更严格的访问权限
继承中的构造方法:子类构造方法必须调用其基类的构造方法
对象转型(casting):分为向上转型(upcasting)和向下转型(downcasting);
instanceof关键字:可以使用 instanceof 来判断一个引用变量是否属于该类或该类的子类
多态:多态的存在必须满足:一、要有继承 , 二、要有重写 , 三、父类引用指向子类对象
抽象类:用 abstract 关键字修饰的类或方法叫抽象类或抽象方法,含有抽象方法的类的类必须被申明为抽象类,抽象类必须被继承,抽象方法必须被重写,抽象类不能被实例化,抽象方法只需申明不需实现
final关键字:其修饰的变量(参数)不能改变,其修饰的方法不能重写,其修饰的类不能继承,另外该关键字可以申明常量
接口(interface):是抽象方法和常量值的定义的集合;从本质上来讲,接口是一种特殊的抽象类,这种类只包含常量和方法的定义,而没有变量和方法的实现
implements 关键字:实现接口的引用
抛出(throw):JAVA程序在运行期时,若执行程序出现异常事件,则可以生成一个异常对象,该异常对象封状了该事件的异常信息并提交给JAVA运行系统,这一过程称为抛出(throw)
捕获(catch):当JAVA运行系统接收到异常对象时,会尝试寻找能处理这一异常对象的代码,并把异常对象提交处理这一过程称为捕获(catch)
异常的分类:异常类的基类是 Throwable 又分为Eroor , Excption两大类.其中Excption又分为RuntimeException和其他.
数组(array):JAVA中使用new关键字创建数组对象 , java.lang.System.arraycopy() 数组拷贝
容器(Collection):储存对象的,可灵活变动的一些内存空间,分为集合(Set 代表有:HashSet)、列表(List 代表有:ArrayList、LinkedList)、键值(Map 代表有:HashMap、TreeMap)三种方式;其中第一种无序不可重复,第二种有序可重复,且前两者从collection继承,后者没有
流(Stream):IO类按照传输大小分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),按照流出方向分为输出流(output)和输入流(input),按功能分可分为节点流和处理流
线程(Thread):线程是一个程序里不同的执行路径;
synchronized 关键字:对某一对象加锁,也可作为方法标识符对方法加锁,但是不能阻止没加锁的方法访问
------------------其他随笔------------------------------
一、有继承的类中不能存在两个方法名相同
二、String和StringBuffer,前者为不可变字符串,效率底,后者为可变字符串效率高
三、容器中,重写equals方法就必须重写hashcode方法
----------------语句举例 ----------------------------
if(逻辑表达式) {
逻辑表达式真执行体...
}else{
逻辑表达式假执行体...
}
switch(变量){ //注意JAVA中只能探测int类型
case 常量1:
常量1成立执行体...
break;
case 常量2:
常量2执行体...
break;
.....
default:
}
for(起始表达式;终止表达式;递进表达式) {
循环体...
}
while(逻辑表达式) {
循环体...
}
do {
循环体...
}while(逻辑表达式); //注意后面有分号
类型: byte(1byte) , short(2byte) , char -> int(4byte) -> long(8byte) -> float(4byte) -> double(8byte) --- 注意隐式申明
逻辑: 与(&) , 或(|) , 非(!) , 赋值(=) , 等于/不等于(==/!=) , ^(异或) , &&(短路与) , 短路或(||) , 三目运算(a?b:c)
语句: 条件语句(if..else.. , switch..case ) 循环语句(for , while , do..while) break(终止循环) , Continue(跳过本次循环) , return(返回)
常用命令:java -cvf 打包文件名(xx.jar) 打包文件类型(一般*.*) ;
面向对象思维:首先应把对象抽象出来成立类,然后确立对象(类)与对象的关系和对象应有的属性和方法,最合适的方法出现最合适的类里
编程规范:注意缩进 , 注意空格 , 类名首字母大写(驼峰标识) , 方法名(参数)首字母小写(驼峰标识) , 取名有意义
-------------面象对象笔记--------------------------------
JAVA两种核心机制:JAVA虚拟机机制(JAVA Virtual Machine) , 垃圾收集机制(Garbage collection)
编程语言发展:机器语言 -> 汇编语言 -> 高级语言 -> 面向对象 -> 面向组件
类和对象的概念:类是用一些动态属性(方法)和静态属性(变量)来描述具有相同特征的一类事物的一个抽象概念 , 一个对象是类的一个具体实例,类是一类对象的模板
类(对象)之间的关系:关联关系 -> 继承关系 -> 聚合关系(聚集、组合)-> 实现关系 -> 多态
JAVA引用:即是C/C++中的指针,JAVA中除基本类型外,其他都是引用类型(既用栈中变量指向堆中对象)
JAVA构造方法:在创建类的实例(对象)时,实例继承所有类的变量和方法,构造方法主要用于实例的初始化,可以重载
new关键字:用于构造对象的实例(对象) , HelloWorld He; //给HelloWorld增加一个对象He , He = new HelloWorld; //实例化对象He , HelloWorld He = new HelloWorld; 增加一个对象He并且实例化
方法重载(OverLoad):是指具有相同名字而参数不同(参数类型或参数个数或参数顺序)的多个方法
this和super关键字:this是指向对象自身的引用 , super是指向其父类的引用
static关键字:可申明静态变量(注:属于该类公共变量)或静态方法(调用不需要对象,也不可调用非静态方法)
package和import:package(打包,一般为公司域名倒着,编译后的类必须放在正确的目录下)和import(引用包,注意引用目录的正确性)
访问控制符:private(私有) , default(默认) , protected(受保护) , public(公开的) ; 修饰类权限时只能default或public
JAVA继承(extends):通过extends关键字来实现类或接口的继承(继承后,子类自动拥有基类(接口)的所有方法和属性), JAVA只支持单继承,不允许多继承(既一个子类只能拥有一个基类,但基类可以有无数子类);Object类是所有未申明继承类的根基类
JAVA重写(OverWrite/Override):子类中通过需要对基类继承来的方法进行重写;重写方法必须和被重写方法具有相同的定义;重写方法不能使用更严格的访问权限
继承中的构造方法:子类构造方法必须调用其基类的构造方法
对象转型(casting):分为向上转型(upcasting)和向下转型(downcasting);
instanceof关键字:可以使用 instanceof 来判断一个引用变量是否属于该类或该类的子类
多态:多态的存在必须满足:一、要有继承 , 二、要有重写 , 三、父类引用指向子类对象
抽象类:用 abstract 关键字修饰的类或方法叫抽象类或抽象方法,含有抽象方法的类的类必须被申明为抽象类,抽象类必须被继承,抽象方法必须被重写,抽象类不能被实例化,抽象方法只需申明不需实现
final关键字:其修饰的变量(参数)不能改变,其修饰的方法不能重写,其修饰的类不能继承,另外该关键字可以申明常量
接口(interface):是抽象方法和常量值的定义的集合;从本质上来讲,接口是一种特殊的抽象类,这种类只包含常量和方法的定义,而没有变量和方法的实现
implements 关键字:实现接口的引用
抛出(throw):JAVA程序在运行期时,若执行程序出现异常事件,则可以生成一个异常对象,该异常对象封状了该事件的异常信息并提交给JAVA运行系统,这一过程称为抛出(throw)
捕获(catch):当JAVA运行系统接收到异常对象时,会尝试寻找能处理这一异常对象的代码,并把异常对象提交处理这一过程称为捕获(catch)
异常的分类:异常类的基类是 Throwable 又分为Eroor , Excption两大类.其中Excption又分为RuntimeException和其他.
数组(array):JAVA中使用new关键字创建数组对象 , java.lang.System.arraycopy() 数组拷贝
容器(Collection):储存对象的,可灵活变动的一些内存空间,分为集合(Set 代表有:HashSet)、列表(List 代表有:ArrayList、LinkedList)、键值(Map 代表有:HashMap、TreeMap)三种方式;其中第一种无序不可重复,第二种有序可重复,且前两者从collection继承,后者没有
流(Stream):IO类按照传输大小分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),按照流出方向分为输出流(output)和输入流(input),按功能分可分为节点流和处理流
线程(Thread):线程是一个程序里不同的执行路径;
synchronized 关键字:对某一对象加锁,也可作为方法标识符对方法加锁,但是不能阻止没加锁的方法访问
------------------其他随笔------------------------------
一、有继承的类中不能存在两个方法名相同
二、String和StringBuffer,前者为不可变字符串,效率底,后者为可变字符串效率高
三、容器中,重写equals方法就必须重写hashcode方法
----------------语句举例 ----------------------------
if(逻辑表达式) {
逻辑表达式真执行体...
}else{
逻辑表达式假执行体...
}
switch(变量){ //注意JAVA中只能探测int类型
case 常量1:
常量1成立执行体...
break;
case 常量2:
常量2执行体...
break;
.....
default:
}
for(起始表达式;终止表达式;递进表达式) {
循环体...
}
while(逻辑表达式) {
循环体...
}
do {
循环体...
}while(逻辑表达式); //注意后面有分号