`
wdt1988520
  • 浏览: 14525 次
社区版块
存档分类
最新评论

Java基础知识

阅读更多

Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单面向对象分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言

 

java的可移植性表现:1、java中基本类型的大小是固定的,不会随着系统的变更而改变(比如C/C++的int可                                              能是16位,可能是32位),而java int固定32位。

                                     2、二进制数据以固定的格式进行的存储和传输,这样消除了字节顺序的困扰。

                                     3、字符串是用标准的UNICODE格式存储。

 

java是解释型语言:   java解释器可以在任何一个移植了解释器的机器上执行java字节码,java有一个即时编                                       译器可以在程序运行时刻将常用字节码快速的翻译了机器码。

 

简单谈谈Java的一些小点:

  

java中的浮点值类型:如2.0-1.1=0.8999999999999999,而不是想象中的0.9,其主要原因是浮点数值采用二进制系统表示,而二进制系统中无法精确表示分数1/10,这就好像十进制中无法表示1/3一样.所要在精确计算     中采BigDecimal.

 

java中字符串的比较:java中字符串的比较用equals而不用==的原因,==比较的类型存放的地址,而字符串的比较是比较的内容。例如:

    String greeting="Hello";

    if(greeting=="Hello")/可能返回true;

    if(greeting.substring(0,3)=="Hel")//可能返回的false,因为这截取的字符串可能被拷贝放在不同的位置。

 

java中基本类型的比较:用==因为java同样的 int a=1;int b=1;int c=1;过程是现在内存地址中创建1,然后a指向1的地址,b搜索内存中是否有1,有则b指向1的地址,c则同理.

 

 

java的参数传递:java中只有值传递,没有引用传递。

    例如:public void add(int x){

                   x=x+5;

                }

      

              int a=10;

              add(a);

 

      这里打印a始终为10,不是15.因为传递的是值不是引用。

      具体执行步骤:

         1、x是a的一个拷贝,在执行加法后x为15,在方法结束后x就不在使用。

 

 

     为什么大家总认为java中存在引用传递,可能被像下面的例子误导:

      

      //给员工加工资

      pubic  void  add(Employee em){

         em.raiseMoney(200);

      }

    

      Employee jack=new Employee(100);

    

      add(jack);

 

     这里的具体执行:1、em引用的jack的一个拷贝,em和jack同时引用了一个对象,em对该对象加了工资,但方法结束em消失,但em引用的对象去增加了工资。

 

 

     下面举一个反例:

     

      //交换对象

      public void change(Employee x,Employee y){

          Employee temp = x;

          x=y;

          y=temp;

      }

      

      Employee jack=new Employee();

      Employee rose=new Employee();

 

      change(jack,rose);

 

 

      这里事实上是不能将jack和rose交换的,这里的具体执行是:x,y分别是jack和rose的一个拷贝(可以把这个拷贝看成是值,不是引用),x,y实现了交换,但方法结束想x,y消失,而jack和rose的引用并没有交换。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics