首页 > 代码库 > Java基础语法

Java基础语法

先抄写运行一个HelloWorld

1 public class HelloWorld {
2     public static void main(String []args) {
3         System.out.println("Hello World"); // 打印 Hello World
4     }
5 }

保存为HelloWorld.java(这里需要文件名与类名相同

(linux环境)打开终端并cd到当前Java文件所在目录

输入:javac HelloWorld.java

摁下回车编译代码,可以看到文件目录下出现编译好的文件HelloWorld.class

再输入:java HelloWorld

就可以在窗口看到Hello World,如图

技术分享

(这里请无视掉两行Picked up _JAVA_OPTIONS)

 

成功写出了helloworld

然后开始学习

 

基本语法

编写程序时,需要注意的几点:

1.大小写敏感,即HelloWorld与helloworld不同

2.类名、变量名以及方法(函数)名都被称为标识符,标识符命名规范与C++基本相同   

  • 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。
  • 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。

3.源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存,文件名的后缀为.java。确切的说,是和类中public类的类名相同,所以一个Java文件中只能有唯一的一个public类

4.所有的Java 程序由public static void main(String []args)方法开始执行。显然它应该在publilc类里。

 

Java修饰符:

像C++一样,Java可以使用修饰符来修饰类中方法和属性。主要有两类修饰符:

  • 访问控制修饰符 : default, public , protected, private
  • 非访问控制修饰符 : final, abstract, static

修饰符用法及含义基本可类似于C++

final类似于const,abstract类似于virtual,static类似于static

上面是我瞎说的都不可信,后面再深入讨论几种修饰符

 

Java变量类型:

Java中主要有如下几种类型的变量

局部变量

类变量(静态变量)

成员变量(非静态变量)

 

局部变量:

  1. 局部变量声明在方法、构造方法或者语句块中,在执行方法的时候创建,当它们执行完成后,变量将会被销毁,所以只在声明它的方法、构造方法或者语句块中可见
  2. 局部变量是在栈上分配的
  3. 局部变量没有默认值,声明后必须初始化才可以使用

(函数和构造函数和C++一样都好说,语句块留到后面解释)

实例变量:

  1. 实例变量声明在一个类中,但在方法、构造方法和语句块之外
  2. 实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定
  3. 实例变量在对象创建的时候创建,在对象被销毁的时候销毁
  4. 实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息(就是推荐你有getter和setter函数
  5. 访问修饰符可以修饰实例变量,但不能修饰上面的局部变量
  6. 实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见
  7. 实例变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObejectReference.VariableName。

类变量(静态变量,很像C++的类的static变量)

  1. 类变量也称为静态变量,在类中以static关键字声明,但必须在方法构造方法和语句块之外
  2. 无论一个类创建了多少个对象,类只拥有类变量的一份拷贝
  3. 静态变量除了被声明为常量外很少使用。常量是指声明为public/private,final和static类型的变量。常量初始化后不可改变
  4. 静态变量储存在静态存储区。经常被声明为常量,很少单独使用static声明变量
  5. 静态变量在程序开始时创建,在程序结束时销毁
  6. 与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型
  7. 默认值和实例变量相似。数值型变量默认值是0,布尔型默认值是false,引用类型默认值是null。变量的值可以在声明的时候指定,也可以在构造方法中指定。此外,静态变量还可以在静态语句块中初始化
  8. 静态变量可以通过:ClassName.VariableName的方式访问
  9. 类变量被声明为public static final类型时,类变量名称一般建议使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量的命名方式一致

成员变量(非静态变量)

大概就是实例变量中的非静态变量 

 

Java关键字:

下面列出了Java保留字。这些保留字不能用于常量、变量、和任何标识符的名称。

 

关键字描述
abstract 抽象方法,抽象类的修饰符
assert 断言条件是否满足
boolean 布尔数据类型
break 跳出循环或者label代码段
byte 8-bit 有符号数据类型
case switch语句的一个条件
catch 和try搭配捕捉异常信息
char 16-bit Unicode字符数据类型
class 定义类
const 未使用
continue 不执行循环体剩余部分
default switch语句中的默认分支
do 循环语句,循环体至少会执行一次
double 64-bit双精度浮点数
else if条件不成立时执行的分支
enum 枚举类型
extends 表示一个类是另一个类的子类
final 表示一个值在初始化之后就不能再改变了
表示方法不能被重写,或者一个类不能有子类
finally 为了完成执行的代码而设计的,主要是为了程序的健壮性和完整性,无论有没有异常发生都执行代码。
float 32-bit单精度浮点数
for for循环语句
goto 未使用
if 条件语句
implements 表示一个类实现了接口
import 导入类
instanceof 测试一个对象是否是某个类的实例
int 32位整型数
interface 接口,一种抽象的类型,仅有方法和常量的定义
long 64位整型数
native 表示方法用非java代码实现
new 分配新的类实例
package 一系列相关类组成一个包
private 表示私有字段,或者方法等,只能从类内部访问
protected 表示字段只能通过类或者其子类访问
子类或者在同一个包内的其他类
public 表示共有属性或者方法
return 方法返回值
short 16位数字
static 表示在类级别定义,所有实例共享的
strictfp 浮点数比较使用严格的规则
super 表示基类
switch 选择语句
synchronized 表示同一时间只能由一个线程访问的代码块
this 表示调用当前实例
或者调用另一个构造函数
throw 抛出异常
throws 定义方法可能抛出的异常
transient 修饰不要序列化的字段
try 表示代码块要做异常处理或者和finally配合表示是否抛出异常都执行finally中的代码
void 标记方法不返回任何值
volatile 标记字段可能会被多个线程同时访问,而不做同步
while while循环

 

JAVA注释:

和C++的注释完全一样的

 

至此,你应该能类比C++完整地写一个能够编译的小代码了(大概)

有些东西很像C++但也可能是暂时不清楚区别

所以如何类比还是因人而异吧

科科

 

参考资料:http://www.runoob.com/java/java-basic-syntax.html

Java基础语法