黑马程序员-java基础一

 

 

一、基础知识

1.  java的特点。

跨平台,严格区分大小写的,一种自由格式的语言

JVM(Java Virtual Machine):用于保证java的跨平台(虚拟机)

JRE(Java Runtime Enviroment)java的运行环境

JDK((Java Development Kit): java的开发工具

2.  环境变量pathclasspath

Path是配置Windows可执行文件的搜索路径。
Classpath
配置class文件查找目录。

设定方式:1.系统属性-》高级->环境变量 2.cmd命令提示符中set=%path%;.

(%path%path的值“。”当前目录。注意不能有空格)

3.java 变量,(可以用来不断的存放同一类型数据,可以重复使用)

      生命周期:方法里的局部变量,在方法调用完就销;类的成员变量,在类的相应对象销时销;静态变量,从程序开始到程序结束。

4.java中的标识符(java中的包、类、方法、参数、变量的名字可由任意顺序的大小写字母、数字、下划线和$组成,但不能以数字开头,不能是关键字)

5.数据类型                                                                                                                

1)基本数据类型

 整数类型:byte(一个字节)short(2个字节) int 4个字节)long8个字节)

 浮点数类型:float(4个字节)double8个字节)

 字符类型:char2个字节)

 布尔类型: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方法

只能直接调用同类中的其它的静态成员,不能直接访问类中的非静态成员(对于非静态成员,要先有类的实例对象后才能使用)。不能引用thissuper关键字.

静态代码块,当类第一次使用时载入,且只执行一次。

可以被当前类名访问,也可以被类的以象访问。

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

posted @ 2014-03-31 18:32  清风木扬  阅读(171)  评论(0编辑  收藏  举报