一、基础知识
1. java的特点。
跨平台,严格区分大小写的,一种自由格式的语言
JVM(Java Virtual Machine):用于保证java的跨平台(虚拟机)
JRE(Java Runtime Enviroment):java的运行环境
JDK((Java Development Kit): java的开发工具
2. 环境变量path和classpath
Path是配置Windows可执行文件的搜索路径。
Classpath配置class文件查找目录。
设定方式:1.系统属性-》高级->环境变量 2.cmd命令提示符中set=%path%;.
(%path%原path的值“。”当前目录。注意不能有空格)
3.java 变量,(可以用来不断的存放同一类型数据,可以重复使用)
生命周期:方法里的局部变量,在方法调用完就销毁;类的成员变量,在类的相应对象销毁时销毁;静态变量,从程序开始到程序结束。
4.java中的标识符(java中的包、类、方法、参数、变量的名字可由任意顺序的大小写字母、数字、下划线和$组成,但不能以数字开头,不能是关键字)
5.数据类型
(1)基本数据类型
整数类型:byte(一个字节)short(2个字节) int (4个字节)long(8个字节)
浮点数类型:float(4个字节)double(8个字节)
字符类型:char(2个字节)
布尔类型:boolean(1个字节)
(2)引用数据类型
类 接口 数组
6.float在内存中的表示方式
31位是符字位,30-23位是幂的值,22-0位是有效值。
7.类型间互相转换。
从byte,short,int,long,float,double顺向可自动转换,
反向要强制转换(目的数据类据)当前数据
表达式的数据类型自动提升
所有的byte型,short型和char型自动提升到int
如果一个操作数是long,那计算结果就是long。
如果一个操作数是float,那计算结果就是float;
如果一个操作数是double,那计算结果就是double
8. 流程控制
If {}else{}
switch () {case
常量表达式: break;default: ;},
注备switch(变量)。变量只能是整型和字符型。
int i=2;
switch(i)
{
case 1:
System.out.println(1);
break;
case 2:
case
3:
System.out.println(2+" or "+3);
break;
default:
System.out.println("其它");
}
输出:
2 or 3
While(){},
Do{} while();,For()
Break 中止循环,continue跳过当前循环的其余语句,进入下次循环
9. Java运算符
算术运算符 +(正号)+,-,*,/,%,++(自增前,后)--(自减前,后),+字符串相加(取模运算,模数是负数时忽略如5%-3=2)
赋值运算符=, +=, -+, *=,/+ ,%=
比较运算符==,!=,<,>,<=,>=,instanof
逻辑运算符&,| ,^,!,&&,||
移位运算符&,|,^,<<,>>,>>>
10. 重载:同一类中允许同时存在一个以上的同名函数,只要它们的参数个数或类型不同即可。
二、面向对象
1. 类,继承,封装,多态
类:是现实某类事物的抽象。
对象:一个现实实体用计算机逻辑对应的映射。
继承:多个类具有相同的属性和方法,将这些属性和方法定义同一个类中,这些类就不需要自己定属性和方法,通过继承就可以实现。
多态:一个对象在不同时刻表现的多种状态。(类和接口的引用可以子类对象)。
2. 对象的初始化。
成员变量:初始值 byte:0 , short:0
,int:0,long:0l,float:0.0f,double 0.0D, char '\u0000'
boolean:false, All
reference type: null
3. 对象生成过程
P3=new Person(“Tom”,18)
创建指定类的新实例对象,在堆内存中为实例对象分配内存空间,并调用指定类的构造方法,最后将实例对象的首地址赋值给引用变量p3。
4.This,static关键字
this在函数内部就是这个函数所属的对象的引用变量。
Static变量可以被当前类名访问,也可以被类的以象访问。
Static变量在内存中只有一个。构造方法不会为分内存,(类对象数量的统计)
Static方法
只能直接调用同类中的其它的静态成员,不能直接访问类中的非静态成员(对于非静态成员,要先有类的实例对象后才能使用)。不能引用this和super关键字.
静态代码块,当类第一次使用时载入,且只执行一次。
可以被当前类名访问,也可以被类的以象访问。
5.垃圾回收过程分析
当对象没有相应的类变量指向它,这个对象将变成垃圾,但不一定马上就会启用拉圾回收机制把拉圾回收走。
可以用System.gc()
启用拉圾回收机制,在回收前会调用finalize()方法。
6.单态设计模式。
(定义一个的静态本身类变量,构造函数类为private,定义一个静态方法的返回静态本身类变量)
7.内部类
内部类可以直接访问外部类的成员(包括Private)。外部类不能直接访问内部类的成员。
public class Outer
{
private int
size;
public class Inner
{
privateint size;
publicvoid doStuff( int size) {
size++; //
引用的是doStuff函数的形参
this.size++;
//引用的是Inner类中的成员变量
Outer.this.size++; //
引用的Outer类中的成员变量
}
}
}
内部如何被其它类引用
class Outer
{
private int size=10;
public class Inner
{
public void
doStuff()
{
System.out.println(++size);
}
}
}
public class TestInner
{
public static void main( String[]
args)
{
Outer outer =
new Outer();
Outer.Inner
inner = outer.new Inner();
inner.doStuff();
}
}
8注译
文档注释以“/**”开始,以“*/”标志结束,相应的信息和批注所对应的位置很重要! 类的说明应在类定义之前,方法的说明应在方法的定义之前。
批注参数来标记一些特殊的属性及其相应的说明 。
@author<作者姓名>
@version<版本信息>
@param<参数名称><参数说明>
@return<返回值说明>
生成命令javadoc
无名类,抽象类,接口
异常,java包,jar命令