win7上的linux环境变量,java之环境变量配置win7andlinux.docx

初学java 之 环境变量配置win7 and linux

首先我们了解一下我们要配置的各个变量的含义:  bin 可执行文件; lib  是sun官方库文件; src.zip 源代码

JAVA_HOME 配置安装目录

CLASSPATH  lib 目录主要为java 查找类服务

PATH  可执行文件的路径,lib 目录可执行文件在所有目录下都能欲行

下面我们讲讲具体的配置过程:

首先打开我的电脑属性  如下图:

点击环境变量:

上面的用户变量只知针对当前用户的变量!建议修改下边的系统变量!

首先新建 JAVA_HOME 在值里面写上你的jdk 的安装路径 譬如我jdk 安装在f 盘   F:\Program Files\Java\jdk1.6.0_10

PATH 里面     F:\Program Files\Java\jdk1.6.0_10\bin;

新建CLASSPATH    .;F:\Program Files\Java\jdk1.6.0_10\lib;  注意 前面的  .  表示当前目录   不同的变量之间 用分号隔开

linux 严格区分大小写

在终端输入   vi. bash-profile

进入vi  配置和 win7 的一样  注意的是 不同变量之间 用 冒号 隔开 后跟  $path

保存退出即可

可以用  java-version /javac 来验证是否配置成功!

为什么静态成员不能访问非静态成员

首先static的成员是在类加载的时候初始化的,JVM的CLASSLOADER的加载,首次主动使用加载,而非static的成员是在创建对象的时候,即new 操作的时候才初始化的;

先后顺序是先加载,才能初始化,那么加载的时候初始化static的成员,此时非static的成员还没有被加载必然不能使用,而非static的成员是在类加载之后,通过new操作符创建对象的时候初始化,此时static 已经分配内存空间,所以可以访问!

简单点说:静态成员属于类,不需要生成对象就存在了.而非静态需要生成对象才产生.

所以静态成员不能直接访问.

下面说说静态的特点:

1.随着类的加载而加载

也就是,说静态会随着类的消失而消失,说明静态的生命周期最长

2.优先于对象的存在

明确一点:静态是先存在的对象是后存在的

3.被所有对象共享

4.可以直接被类名多调用

实例变量和类变量的区别

1.存放位置

类变量随着类的加载存在于方法区中,实例变量随着对象的对象的建立存在于堆内存里

2.生命周期

类变量生命周期最长,随着“类”的加载而加载,随着类的消失而消失

实例变量随着“对象”的消失而消失

静态的使用注意事项:

1.静态方法只能访问静态成员(包括成员变量和成员方法)

非静态方法可以访问静态也可以访问非静态

2.静态方法中不可以定义this,super关键字

因为静态优先于对象存在,所以静态方法中不可以出现this,super关键字

3.主函数是静态的。

静态的利弊

利:对 对象的共享数据进行单独空间的存储,节省空间,没有必要没一个对象中都存储一份

可以直接被类名所调用

弊:生命周期过长,访问出现局限性(只能访问静态)

重写与重载常见问题

通常,派生类继承基类的方法,因此,在调用对象继承方法的时候,调用和执行的是基类的实现.但是,有时需要对派生类中的继承方法有不同的实现. 例如,假设动物类存在"跑"的方法,从中派生出马和狗,马和狗的跑得形态是各不相同的,因此同样方法需要两种不同的实现,这就需要"重新编写"基类中的方法

重写只能用于父类与子类之间!

重写的规则: 子类中的方法必须与父类中的方法一致,并且范围只能扩大不能缩小,例如父类中定义的方法是 public 型的 子类中的就不能写成protected 型否则会报编译错误!父类中的定义为protected 型的子类中的可以定义为public型的

重载,在一个类定义中,可以编写几个同名的方法,但是只要它们的签名参数列表不同,Java就会将它们看做唯一的方法。简单的说,一个类中的方法与另一个方法同名,但是参数表不同,这种方法称之为重载方法。

重载是可使函数、运算符等处理不同类型数据或接受不同个数的参数的一种方法

重载的规则:  重载只发生在同类之中,并且只有参数列表不一样(包括参数列表的顺序 、 类型、个数)才可称之为重载,返回值类型不一样参数列表一样不能称之为重载!且 重载的返回值类型可以不一样

下面是重载和重写常见问题:

[java] view plaincopy

1. package test;

2.

3. public class OverLoadDemo {

4.

5.     /**

6. [email protected]

7.      */

8.     public static void main(String[] args) {

9.         OverLoadDemo o = new OverLoadDemo();

10.         o.method(1, 's');// 没有 与参数一致的方法,这个时候就会有隐式转换  转换时 有就近原则  像 char 转化为 int 更方便故输出woainitingzai

11.     }

12.     public int method(int a,long b){

13.         System.out.println("helloword");

14.         return 0;

15.         }

16.      public long method(int a,short b){// 重载只是看参数列表的顺序 、类型 、个数 是否不一样 才算是重载

17.         System.out.println("tingting");// 如果是返回值类型不同 方法名不同等等 都不能算是重载

18.         return 0;

19.     }

20.      public int method(int a,int b){

21.          System.out.println("woainitingzai");

22.          return 0;

23.          }

24. //   public short method(int a,int b){ 不是重载编译错误

25. //       System.out.println("我爱你婷!");

26. //       return 0;

27. //   }

28.     }

29.     class T extends OverLoadDemo{

30. //      public long method(int a,long b){编译错误 如果子类的参数列表和父类的参数列表一样 且返回值类型不一样则会报编译错误

31. //          System.out.println("hello");

32. //          return 0;

33. //      }

34.         public int method(int a,char c){// 无编译错误也并不是覆盖  覆盖 就是 和父类的方法一样 返回值类型  方法签名都必须一样

35.             return 0;

36.         }

37. //      private long method(int a,short b){//编译错误 如果把父类的这个方法改为private型的就无编译错误

38. //          return  0;

39. //      }

40. //       long method(int a,short b){//缩小了父类的范围编译错误

41. //          return 0;

42. //      }

43. //      protected int method(int a,long b) {//缩小了父类的范围 编译错误

44. //          return 0;

45. //

46. //      }

47.     }

展开阅读全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值