java基础-Java编程基础
Java基本语法格式:
Java代码落脚点:Java中的所有程序代码都必须存在同一类中,用class关键字定义类,在class前面可以有一些修饰符。格式如下:
修饰符 class 类名
{
程序代码
}
Java严格区分大小写:不能讲class写成Class,在程序定义一个标记符 mark 的同时,还可以定义一个Mark,mark和Mark是完全不同的符号,使用时务必注意。
Java是自由格式的语言:在Java中,所有的程序代码分为结构定义语句和功能执行语句,一条语句可以写在若干行上,功能执行语句的最后必须用(;)结束,不必要对齐或缩进一致。可以按自己意愿任意编排,只要每个词之间用空格、制表符、换行符、或大括号、小括号这样的分隔符隔开就行。用哪种格式因人而异,但建议要考虑代码的可读性。
Java程序的注释:释用来解释程序的某些部分的作用和功能,提供程序的可读性;也可以用来暂时屏蔽某些程序语句,让编译器不执行编译这些语句。Java里的注释根据不同用途分为三种类型:
单行注释:
int i = 18;//定义一个整型
多行注释:
/*
int i = 18;
int j = 20;*/
文档注释:
/**
@Author
@method name
*/
Java中标识符:Java中的包、类、方法、参数、变量可由任意顺序的大小写字母、数字、下划线_和美元$,但标识符不能以数字开头,不能是Java保留关键字。
错误的路有千万条,正确的路只有一条。何苦要记住错误的路呢?永远用字母开头,尽量不要包含其他的符号。
Java中关键字:
abstract boolean break byte case catch char class continue default do double else extend false final finally float for if implement import instanceof int interface long native new null package private protected public return short static strictfp super switch this throw throws transient true try void volatile while synchronized
Java 没有sizeof、goto、const这些关键字,但不能用goto const作为变量名。
Java中的常量:分为整型常量、浮点数常量、布尔常量、字符常量、字符串常量。
整型常量:十进制、十六进制、八进制。
转移符:\
\r 表示接受键盘输入,相当于按下了回车键
\n 表示换行
\t 表示制表符,相当于Tab
\b 表示退格键,相当于Back Space
\' 表示单引号
\" 表示双引号
\\ 表示一个斜杠"\"
null常量:null常量只有一个值,用null表示,表示对象引用为空。
变量和变量的作用域:
变量的概念:程序运行期间,系统可以为程序分配一块内存单元,用来存储各种类型的数据。系统分配的内存单元要使用一个标识符来标识。这种内存单元中的数据是可以更改的,所以叫变量。定义变量的标记符就是变量名,内存单元中所装载的数据就是变量值。用一个变量定义一块内存后,程序就可以用变量名代表这块内存中的数据,根据所存储数据类型的不同,有各种不同类型的变量。用一个变量定义一块内存以后,程序就可以用变量名代表这块内存中的数据。

变量有效的取值范围:
基本数据类型之间的转换:
在编写程序的过程中,我们经常遇到一种情况,就是需要将一种数据类型的值赋给另一种不同数据类型的变量,由于数据类型有差异,在赋值时就需要进行数据类型的转换,这里就涉及到两个数据转换的概念,自动类型转换和强制类型转换。
1.自动类型转换:
要实现自动类型转换,需要同时满足两个条件,第一是两种彼此兼容,第二目标类型取值范围大于源类型。例如当byte型向int型转换时,由于int型取值范围大于byte型,就会发生自动转换。所有数字类型,包括整型和浮点型彼此都可以进行这样的转换。
例:byte b=3;
int x=b;//没有问题,程序把b的结果自动转换成了int型了。
2.强制类型转换(也叫显式类型转换)
当两种类型彼此不兼容,或目标类型取值范围小于源类型时,自动转换无法进行,这时就需要进行强制类型转换。强制类型转换的通用格式如下:
目标类型 变量 = (目标类型)值
例:byte a;
int b;
a = (byte)b;
这段代码的含义就是先将int型的变量b的取值强制转换为byte型,再将该值赋给变量a,注意,变量b本身的数据类型并没有改变,由于这类转换中,源类型的值可能大于目标类型,因此强制类型转换可能造成数值不准确。
public static void Conversion(){ byte b; int i = 266; b = (byte)i; System.out.println("int to byte b is "+b); }
程序输出如下:
int to byte b is 10
表达式的数据类型自动提升:
上代码:
public void Test(){ byte b = 10; b = (b-2); System.out.println(b); }
编译报错:Type mismatch: cannot convert from int to byte
这是因为:表达式求值时,变量值被自动提升为int型,表达式的结果也就成了int型,这时要想把它赋值给byte型变量就必须强制转换了。因此前面代码中粗体部分就应改成:
b = (byte)(b-2);
关于类型的自动提升,Java定义若干适用于表达式类型提升规则:
1.所有的byte型、short型、和char型的值被提升到int型。
2.如果一个操作数是long型,计算结果就是long型。
3.如果一个操作数是float型,计算结果就是float型。
4.如果一个操作数是double型,计算结果就是double型。
变量的作用域:
大多数程序设计语言都提供了"变量作用域"(Scope)的概念。在C\C++\Java里,一对花括号中间的部分就是一个代码块,代码块决定其中定义的变量的作用域。代码块由若干语句组成,必须用大括号括起来形成一个复合语句,多个复合语句可以嵌套在另外一对大括号中形成复杂的复合语句。
代码块决定了变量的作用域,作用域决定了变量的"可见性"和"存在时间"。
局部变量的初始化:
在一个函数或函数里面的代码块定义的变量称为局部变量,局部变量在函数或代码块被执行时创建,在函数或代码块结束时被销毁。局部变量在进行取值操作前必须被初始化或进行赋值操作,否则出现编译错误。
函数与函数的重载:
函数:
在进行一个复杂的程序设计时,总是根据所要完成的功能,将程序划分为一些相对独立的部分,每部分用一个函数完成,从而使各部分充分独立、任务单一、程序清晰、易懂、易读、易维护。
函数的传递过程:
函数的重载:
函数的重载就是在同一个类中允许同时存在一个以上的同名函数,只要他们的参数个数或类型不同即可。在这种情况下,该函数就叫被重载(overloaded)了,这个过程称为函数的重载(methodloading).
Java编译器能根据调用函数时所传递参数的个数和类型选择相应的函数。重载函数的参数列表必须不同,要么是参数的个数不同,要么是参数的类型不同。重载函数的返回值类型可以相同,也可以不同。
Java中的运算符:
运算符是一种特殊符号,用以表示数据的运算,赋值和比较。一般由一至三个字符组成。但Java其视为一个符号,运算符共分为以下几种:
算数运算符
赋值运算符
比较运算符
逻辑运算符
移位运算符
运算符的优先级:
程序的流程控制:
顺序结构
选择结构
循环结构
数组:
数组是多个相同类型数据的组合。实现对这些数据的统一管理,数组中的每一个数据也叫数组的一个元素。
数组的静态初始化:
使用数组时要注意的问题:
多维数组:
一些与数组操作相关的函数:

浙公网安备 33010602011771号