• Java基础


    一、安装JDK

       使用Java语言开发程序的第一步就是安装JDK,安装JDK后需要配置系统环境变量。

       配置系统环境变量主要是配置PATH,在PATH后面添加"jdk/bin"目录的完整路径,这样系统才能找到编译和运行Java代码的可执行文件所在路径,我们才能够使用javac命令和java命令。

       对于JDK 5.0以及5.0以后的版本,已经不再需要配置CLASSPATH了。

    二、Java基本数据类型

    类型 长度 包装类
    byte 1 Byte
    short 2 Short
    int 4 Integer
    long 8 Long
    float 4 Float
    double 8 Double
    char  2 Char
    boolean Boolean

      Java没有无符号数据类型;

      Java基本数据类型长度在不同的机器上是一致的;

      Java基本数据类型都有对应的包装类,且从JDK5以后,基本类型和包装类可以自动转换 ;

      Java没有定义boolean类型的长度,boolean类型主要用来保存字面值truefalse

    三、对Java引用的理解

      在Java中,声明基本数据类型的变量是保存在栈中的;

      声明一个对象变量实际是声明了一个引用,该引用保存在栈中,new一个该类型的对象后,在堆内存中开辟了空间保存对象实体,然后返回堆地址赋给引用,这样就可以通过引用来访问堆空间;

      Java中的引用保存对象实体的地址,相当于指针,但不能像对指针一样对引用做运算;

      Java中调用方法传递参数传递的是对象的引用,因此在方法中可以对对象作出修改。

    四、Java中的goto语句

       Java中是没有goto语句的,goto语句也是不建议使用的。但有时候我们想要跳出多层循环,需要goto语句的跳转能力,我们可以使用带标签的break语句。

       break语句只能跳出最内层的循环,带标签的break语句就可以跳出任意层的循环:

       

     1 int i,j;
     2 outer:
     3 for(i = 0; i < 100; i++)
     4 {
     5   inner:
     6   for(j = 0; j < 100; j++)
     7   {
     8     if(i * j > 100)
     9       break outer;  
    10   }
    11 }

     与goto语句不同的是,带标签的break语句只能配合循环语句使用,不能随意跳转到任意位置,break语句的标签只能声明在循环语句的前面:

    1 before:
    2 for(int i = 0; i < 100; i++)
    3 {
    4 
    5 } 6 7 System.out.println("after the loop"); 8 end: //end的声明不合法

    五、Java数组

      Java中声明一个数组时,实际上也是声明了一个引用,然后使用new运算符在堆中开辟空间保存指定数目的对象,并返回第一个对象的地址赋给引用;

      当new了一个数组之后,数组元素的值就被设置成对应类型的默认值(0,false,null);

      Java中声明一个多维数组时,可以只指定第一维的长度,其他维的长度可以不指定;

      Java中多维数组实际上就是数组的数组,比如对二维数组而言,每行实际上是一个数组,并且每行的数组长度还可以不同,例如:

        int[][] intArray = {

            {1,2,3,4,5},

            {1,2,3,4},

            {1,2,3} 

          }

      Java中通常使用System.arraycopy方法或者Arrays.copyOf方法来拷贝数组内容;

    六、常量

      Java中用final来修饰一个常量,常量必须在声明时赋值或者在构造函数中赋值。final通常用来修饰Java基本数据类型表示值只能被赋值一次;

      对应于类对象,通常是靠设计该类为不可变类来达到常量对象的目标,例如String类就是不可变类,String类没有提供任何可以修改String属性的方法。设计一个不可变类,要做好封装工作,不提供setter修改方法,除此之外,还要注意不能包含返回可变类对象的方法。在设计普通类的方法时,也应该尽量做到不返回可变类对象,要返回也是返回clone后的可变类对象,否则封装就不够严密。例如:

       

     1 class People
     2 {
     3    private String name; 
     4    private Date birthday;
     5    
     6    public String getName()
     7    {
     8      return name;
     9    }
    10    
    11    public Date getBirthday()
    12    {
    13      return birthday;
    14    }
    15 }

       虽然在People类中设置birthday属性为private,但是getBirthday方法却是直接返回birthday的引用,而Date类不是一个不可变类,这样,我们仍然可以直接在外部调用getBirthday方法获取birthday之后再修改其属性,这样的类设计是有缺陷的。

       final也可以用来修饰类和方法,final修饰的类表示该类不允许被继承,final修饰的方法表示该方法不允许被子类覆盖。

    参考资料 《Java核心技术》

  • 相关阅读:
    最小生成树(Prime算法)
    Spiral Matrix
    大于非负整数N的第一个回文数 Symmetric Number
    毁灭者问题
    查看Centos7虚拟机的IP
    创建Redis集群时遇到问题(二)
    EditPlus通过FTP远程连接Linux
    Redis集群搭建
    创建Redis集群时遇到问题(一)
    安装redis报错“系统 Ruby 版本过低”的解决办法
  • 原文地址:https://www.cnblogs.com/jqctop1/p/4647452.html
Copyright © 2020-2023  润新知