您的位置:首页 > 编程语言 > Java开发

Java基础之规范

2011-12-19 15:54 176 查看
1、标识符规则 --- 类,方法,变量,同时也是包名的规范

由字母(汉语中的一个汉字是一个字母),数字,下划线和货币符号组成,不能以数字开头。

大小写敏感

没有长度限制,不能有空格

不能使用Java的关键字和保留字

java中的关键字:

goto和const在java中虽然不再使用但是还作为保留字存在

java中没有sizeof这个关键字了,java中的boolean类型的值只能用true和false,且这两个也是关键字

enum 枚举 assert 断言

一个标识符尽量符合语义信息,提高程序可读性

类 名 :每个单词首字母大写,

变量和方法 :第一个单词小写,后边的每个单词首字母大写

包 名 :全部小写

常 量 :全部大写

2、局部变量:定义在方法中的变量

(1)先赋值后使用

(2)从定义变量的代码块开始到代码块结束

(3)在同一范围内不允许两个局部变量发生命名冲突

* * * *

3、Java的数据类型

(1)简单类型 --- 8种有符号的数据类型

a) 整型

byte 1字节 8位 -128到127

short 2字节 16位 -2^15到2^15-1 -32768 到 32767

int 4字节 32位 -2^31到2^31-1 -2147483648 到 2147483647 整型值存放,正数存放原码(二进制码),负数则存放补码(原码按位取反末位加一)。

long 8字节 64位 -2^63到2^63-1 long a = 40000l; //在数字的结尾加“l”,表示long类型的字面值

b) 浮点类型

float 4字节 32位 float a = 1.3f;

double 8字节 64位 double a = 1.3;

double和long比较,double 表示的数值要大,因为有科学计数法

float a = 1.3; //error 会造成精度丢失,强转float a = (float)1.3;或者float a = 1.3f;

c) 字符类型

char 2字节 16位

d) 布尔型

boolean false/true //Java中false与0不能转换

自动类型提升:

a 运算符 b

a和b中有一个是double , 结果就是double

a和b中有一个是float , 结果就是float

a和b中有一个是long , 结果就是long

除以上之外的情况,结果都是int

char是无符号的16位整数,字面值必须用单引号括起来; ‘a’

String 是类,一个String的字符串是一个对象,非原始数据类型;

在字符串中使用"+",表示字符串的连接,系统重载了这个运算符

char类型也可以用通用转译字符,但是不能用ASCII码。可以用“/u0000”(十六进制)这种格式,因为char型中使用的是unicode编码方式。

char c1 = 'a';

char c2 = 97;

char c3 ='/u0061'; //一个字节用2个十六进制的数字表示

整数除0有异常,double除0没有异常

(2)对象类型

4、java中的运算符(java的运算符的优先级和结合性和c++相同)

* System.out.println(3/2) 按整型计算 得1

byte a = 1;

a=a+2; //不合法,自动类型提升,赋值丢失精度

a += 2 ; //不会发生自动类型提升的,合法

a++ ; //不会发生自动类型提升的

1) >>= 前面是零补零,前面是一补一; 右移一位比除以2效率高

2) >>>= 无符号右移(强制右移都会移进零),

>>=和>>>=对于负数不一样

正数:右移n位等于除以2的n次方

负数:变成正数。

3) && 短路与,前面为假,表达式为假,后面的操作不会进行,& 非短路运算符,会对所有条件进行判断。

例: int a = 4;

if(a<3&(b=a)==0) b赋值

if(a<3&&(b=a)==0) b不赋值

4) || 短路或,前面为真,表达式为真,后面的操作不会进行,| 会对所有条件进行判断。

5)instanceof,是用于判断一个对象是否属于某个类型

6)java中的求余运算符“%”可以对两个实型变量求余 5%2=1

5、流程控制

(1)控制流

if()

if()….else

if()…..else if()….else

注意:else只是和其上面的同层的最近的if()来配对。

(2)switch(s){

case 'a':……..

case 1:……break;

default:

…………

}

注意:switch()内数据类型为byte short char int类型,只有以上四种类型的才可以在switch()中使用。

case块中不加break时顺序执行下面的语句。

6、循环语句

for(int i=0;i<n;i++){} ---- 确定循环

while(){} ---- 循环0或多次

do{} while();-----------注意加分号 循环1或多次

7、语法

在main方法中要使用全局变量或调用其他方法时,要求全局变量和方法要有static修饰

命令行参数 java Class a b

args[0] = a

args[0] = b

字符串转成int类型 int i = Integer.parseInt(a);

8、数组

内存中的连续空间

数组是一次性定义多个相同类型的变量

Java中一个数组就是一个对象,有属性,没有方法

int[] a; //定义一个数组,变量名就是指向数组首地址的指针

a=new int[10]; //为数组分配空间

a.length; //得到数组的长度

数组创建后有初始值:数字类型为0 布尔类型为false 引用类型为null

String[] 默认值 null

初始化、创建、和声明在同一时间

int[] i = {0,1}; //显示初始化

int[] i = new int[]{0,1}; //注意:这样显示的初始化的时候,new int[] 中括号中必须是空的,不能填数字

Car[] c = {new Car(),new Car()};

数组拷贝

System.arrayCopy(Object src, int srcPos, Object dest, int destPos, int length);

src源数组,srcPos从第几位开始拷贝(数组下标,从0开始),dest目标数组,destPos目标数组放置的起始位置,length,表示要拷贝的长度。拷贝一个数组到另一个数组。

多维数组

1) 有效定义

int[][] i1 = new int[2][3]; (同时给定一维,二维的空间)

int[][] i2 = new int[2][]; (给定一维的空间,二维空间待定,不规则的二维数组)

i2[0] = new int[2],i2[1] = new int[3];

* C++中 int[][] =new int[][3];有效

2) 无效定义

int[][] i1 = new int[][3];

3) 数组长度 ------------数组的属性length(在二维数组中这个属性只代表第一维的长度)

int[] i = new int[5];

int len = i.length; //len = 5;

Student[][] st = new Student[4][6];

len = st.length; //len = 4;

len = st[0].length; //len = 6;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: