一、基础知识

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命令