Java基础-编程基础

Java基础-编程基础

gaowanchen photo By gaowanchen Comment Permalink

1、java的基本语法:

  1. java大小写敏感
  2. java是一种自由格式的语言,一条语句不一定在一行中书写。
  3. java代码总体分为:结构定义语句和功能执行语句。
  4. 对于字符串分割成多个字符串,用+号连接符进行分割。
  5. java使用//进行注释一行。 用/* */注释之间的部分,且不能嵌套。/** */也可以注释多行,专门用于java程序文档的注释。
  6. java的标识符:java中的包、类、方法、参数和变量的名字,可由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但标识符不能以数字开头,不能是关键字。

2、java的常量:

  1. 整型常量:十进制(12)、十六进制(0x12)、八进制(012)
  2. 长整型常量:13L
  3. 单精度浮点数(加f标志位,4个字节,也可以用指数表示)
  4. 双精度浮点数(8个字节)
  5. 布尔常量:true,false
  6. 字符常量(用单引号进行标识,特殊的字符可以用转义的形式来表示)
  7. 字符串常量(用双引号将多个字符引起来表示的,/ 可以转义)
  8. null常量(null常量是一个值,用null 表示,表示对象的引用为空)

3、变量:

变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。根据所存储的数据类型的不同,有各种不同类型的变量。变量名代表这块内存中的数据。(变量被取值前必须被初始化)

4、java的变量的字节大小及有效取值范围:

  1. byte占用一个字节,数字大小为-27—27-1 short占用两个字节,数字大小为-215—215-1
  2. int占用四个字节,数字大小为-231—231-1
  3. long占用八个字节,数字大小为-263—263-1
  4. float占用四个字节,数字大小为1.4E-45~3.4E+38 , -1.4E-45~-3.4E+38 。用二进制的指数形式表示一个浮点数的格式,如:10122 , 1012-3
  5. double占用八个字节,数字大小为4.9E-324~1.7E+308, -4.9E-324~-1.7E+308 。 char占两个字节,数字大小为0—216-1,是unicode编码。字符的本来面目,我们为什么可以直接将一个数字赋给字符变量。 Boolean占一个字节,其取值只有两个,true和false。

5、类型转化:

  1. 自动类型转换(也叫隐式类型转换)例如:byte b=122; int x=b;(byte是一个字节,int是4个字节,byte变量的值赋给int变量时,将byte的值取出放入int变量的最低字节,同时将int变量的另外的3个高字节赋于0)
  2. 强制类型转换(也叫显式类型转换)例如:b= (byte)x;(将int字节的最低字节内容赋给byte变量,将int变量的另外3个高字节的内容抛弃,但这样容易出现数据丢失)
  3. 其他问题:表达式的数据类型自动提升 所有的byte型、short型和char的值将被提升到int型。例如:byte b=3;b=b-1;(b就被自动提升到int型) 如果一个操作数是long型,计算结果就是long型; 如果一个操作数是float型,计算结果就是float型; 如果一个操作数是double型,计算结果就是double型。 分析 System.out.println(‘a’+1) 与 System.out.println(“”+’a’+1) 的区别。(‘a’+1) 字符a与整数1相加,a会被提升为整数类型,相加的结果是一个整数。+号除了可以实现这些基本数据类型的相加,也可以实现字符串之间的相连,如果一个字符串被+号与其他的数据类型进行相加,那就是表示要将这个字符串与其他的数据类型相连,形成一个新的字符串。System.out.println(“”+’a’+1) 的结果就是 a1 这个字符串。

6、变量的生命周期与作用域

变量要先定义,后使用,但也不是在变量定义后的语句一直都能使用前面定义的变量。我们可以用大括号将多个语句包起来形成一个复合语句,变量只能在定义它的复合语句中使用。

public class TestScope
{
public static void main(String[] args)
   {
int x = 12;  
 {
   int q = 96;  // x和q都可用
   int x = 3;//错误的定义,Java中不允许有这种嵌套定义
   System.out.println("x is "+x);
   System.out.println("q is "+q);
 }
q = x; /* 错误的行,只有x可用, q 超出了作用域范围 */
System.out.println("x is "+x); 
   }
}

7、函数:定义一个函数的格式:

返回值类型函数名(参数类型形式参数1,参数类型形式参数2,….) { 程序代码 return 返回值; } 其中: 形式参数:在方法被调用时用于接收外部传入的数据的变量。 参数类型:就是该形式参数的数据类型。 返回值:方法在执行完毕后返还给调用它的程序的数据。 返回值类型:函数要返回的结果的数据类型。 实参:调用函数时实际传给函数形式参数的数据。 例子:

public class Func1
{ /* 下面是打印出第星号矩形的程序代码*/
public static void drawRectangle(int x,int y)
 {
  for(int i=0;i  {
   for(int j=0;j   {
System.out.print(" * ");
   }
   System.out.println(); //换行
  }
  System.out.println(); 
 }
 
 public static void main(String [] args)
 {
 drawRectangle(3,5);
  drawRectangle(2,4);
  drawRectangle(6,10);
 }
} 当没有返回值的情况下,那么返回值类型为void。在函数中也可以用return提前返回。 例子:    

public class Func2
{/* 下面是打印出矩形面积的程序代码*/
  public static int getArea(int x,int y)
  {
   if(x<=0 || y<=0)
   {
return -1;
   }
   return x*y;
  }
 
  public static void main(String [] args)
  {
   int area = getArea(3,5);
   System.out.println("first Acreage is " + area);
   System.out.println("second Acreage is "+ getArea(2,4));
   getArea(6,10);
  }
} Func2中函数调用的过程:主程序调用getArea这个函数时,计算机会进入getArea函数中进行运行,开始运行时,程序会分配两个变量x,y,相当于在getArea中定义的局部变量,只在getArea中有效,接着主程序会将实参传递进这两个局部变量中,相当于对x,y初始化,(如果主程序也有两个变量x,y,那么与getArea中的x,y没有任何关系)getArea接受到参数后继续运行,执行到最后,碰到return时,结束运行,并释放掉x,y这两个变量,同时将结果返回给主程序。