Java基础语法(笔记)

标识符可以用来标识变量名、类名、类中的方法名和文件名等。

命名规则:

(1) 由字母、数字、下划线、$组成,不能以数字开头。
(2) 大小写敏感。
(3) 不得使用java中的关键字和保留字。
关键字:都是小写的,jdk1.2多了strictfp(经准浮点型),关键字 jdk1.4多了assert(断言)关键字,jdk1.5多了enum(枚举) 关键字。

true、false、null 严格说不应该算关键字,应称其为保留字更合适。

习惯:

(1) 标识符要符合语义信息。
(2) 包名所有字母小写。
(3) 类名每个单词首字母大写,其它小写,如:TarenaStudent。
(4) 变量和方法:第一个单词小写,从第二个单词开始首字母大写,如:tarenaStudent。
(5) 常量:所有字母大写,每个单词之间用 _ 连接。
常用的转义字符:

"\b" (退格)
"\f" (换页)
"\n" (换行)
"\r" (回车)
"\t" (水平制表符(到下一个tab位置))
"\' " (单引号)
"\" " (双引号) 
"\\" (反斜杠)

Java的八种基本类型:(按字节来分)

boolean   布尔型   1个字节 8bit(8位)

byte     字节类型   1个字节

char     字符类型   2个字节

short     短整型     2个字节

int          整型        4个字节

float      浮点型(单精度)4个字节

long      长整型      8个字节

double   双精度类型  8个字节

Java中默认的整数类型是int,如果要定义为long ,则要在数值后加上L或者l

默认的浮点型是双精度浮点,如果要定义float,则要在数值后面加上f或者F

一个字节等于8位,1个字节等于256个数。2^8

一个英文字母或者阿拉伯数字占一个字节

一个汉字占2个字节
一、命名规范

1、 项目名全部小写

2、 包名全部小写

3、 类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写。如:public class MyFirstClass{}

4、 变量名、方法名首字母小写,如果名称由多个单词组成,每个单词的首字母都要大写。如:

int index=0;
public void toString(){}
5、 常量名全部大写

A
如:

public static final String GAME_COLOR=“RED”;
6、所有命名规则必须遵循以下规则:

1)、名称只能由字母、数字、下划线、$符号组成
2)、不能以数字开头
3)、名称不能使用JAVA中的关键字。
4)、坚决不允许出现中文及拼音命名。
二、注释规范

1、类注释

在每个类前面必须加上类注释,注释模板如下:

/**
* Copyright (C), 2006-2010, ChengDu Lovo info. Co., Ltd.
* FileName: Test.java
* 类的详细说明
*
* @author 类创建者姓名
* @Date    创建日期
* @version 1.00
*/

2、属性注释

在每个属性前面必须加上属性注释,注释模板如下:

/** 提示信息 */
private String strMsg = null;3、方法注释
在每个方法前面必须加上方法注释,注释模板如下:

/**
* 类方法的详细使用说明
*
* @param 参数1 参数1的使用说明
* @return 返回结果的说明
* @throws 异常类型.错误代码 注明从此类方法中抛出异常的说明
*/

4、构造方法注释

在每个构造方法前面必须加上注释,注释模板如下:

/**
* 构造方法的详细使用说明
*
* @param 参数1 参数1的使用说明
* @throws 异常类型.错误代码 注明从此类方法中抛出异常的说明
*/

5、方法内部注释

在方法内部使用单行或者多行注释,该注释根据实际情况添加。

如:

//背景颜色

Color bgColor = Color.RED

Java编程规范

package的命名: package 的名字由全部小写的字母组成,例如:com.runoob。

class和interface的命名: class和interface的名字由大写字母开头而其他字母都小写的单词组成,例如:Person,RuntimeException

class变量的命名: 变量的名字用一个小写字母开头,后面的单词用大写字母开头,例如:index,currentImage。

class 方法的命名: 方法的名字用一个小写字母开头,后面的单词用大写字母开头,例如:run(),getBalance()。

staticfinal变量的命名: static final变量的名字所有字母都大写,并且能表示完整含义。例如:PI,PASSWORD。

参数的命名: 参数的名字和变量的命名规范一致。

数组的命名: 数组应该总是用这样的方式来命名:byte[] buffer。

一个完整的Java。源程序应该包括下列部分:
package语句,该部分至多只有一句,必须放在源程序的第一句。
import语句,该部分可以有若干import语句或者没有,必须放在所有的类定义之前。
public classDefinition,公共类定义部分,至多只有一个公共类的定义,Java语言规定该Java源程序的文件名必须与该公共类名完全一致。
classDefinition,类定义部分,可以有0个或者多个类定义。
interfaceDefinition,接口定义部分,可以有0个或者多个接口定义。
例如:


package javawork.helloworld;
/*把编译生成的所有.class文件放到包javawork.helloworld中*/
import java awt.*;
//告诉编译器本程序中用到系统的AWT包
import javawork.newcentury;

/*告诉编译器本程序中用到用户自定义的包javawork.newcentury*/
 public class HelloWorldApp{.../*公共类HelloWorldApp的定义,名字与文件名相同*/ 
class TheFirstClass...;
//第一个普通类TheFirstClass的定义 
interface TheFirstInterface{......}
/*定义一个接口TheFirstInterface*/

package语句:由于Java编译器为每个类生成一个字节码文件,且文件名与类名相同因此同名的类有可能发生冲突。为了解决这一问题,Java提供包来管理类名空间,包实 提供了一种命名机制和可见性限制机制。

数据类型的溢出

在 Java 中,只有数字类型才能参与运算。但是每个数据类型都有他的取值范围。

例如 byte 数据类型,它的取值范围为 -128 - 127 。

当我们使用 byte b = 128; 时,肯定会报错。

但是使用 byte b = 127+1; 并不会报错。

而且运算的结果为 -128。

我们可以向数据类型的取值范围看作是一个圆,每多一个数据向前移动一个,当数据达到最大值时,我们再加 1,可以就会变成最小值,这就是数据的溢出。

byte 取值范围
Java 中,byte 占一个字节,取值范围为何是 -128127?(-2^72^7-1)

计算机是用二进制来表示数据的,一个字节也就是 8 个比特位,其中最高位表示符号位(0 正 1 负)。

故 byte 的取值范围为 1000 0000 到 0111 1111。

在 Java 中,是采用补码来表示数据的。

正数的补码和原码相同,负数的补码是在原码的基础上各位取反然后加 1。

1000 000 是补码,减一然后按位取反得到其原码 1000 0000。(减一得 0111 1111,再按位取反得 1000 0000)

因为是负数,所以最小的 byte 值为 -2^7=-128。

0111 1111 的十进制为 2^7-1=127(等比序列求和)。

byte 是一个字节,共有 2^8=256 种可能性,也就是 -128~127。

其他基本数据类型同理:

char 没有负值,占两个字节,所以取值范围是 0~2^16-1(65535)。

throw 和 throws 的区别:
throws 用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往上传,谁调用我我就抛给谁。

throw 则是用来抛出一个具体的异常类型。

throws 在方法后边声明异常,其实就是自己不想对异常做出任何的处理,告诉别人自己可能出现的异常,交给别人处理,让别人处理。

throw 就是自己处理一个异常,有两种方式要么是自己捕获异常 try…catch 代码块,要么是抛出一个异常(throws 异常)。

1、java文件通过java编译器把.java文件编译为.class文件
2、.class文件通过java虚拟机(JVM)传送指令给解释器
3、解释器将指令翻译成特定机器上的目标机器码,进行运行

补充一下,其实自己在进行编译的时候,标识符是可以用中文的,如下所示的类名就可以为中文:

package 自学1;
public class 你好{
public static void main(String[]args) {
    System.out.println("你好");
   }

}并不是很死板,真的如规定所说的那样。

你可能感兴趣的:(java,jvm,开发语言)