您的位置:首页 > 职场人生

黑马程序员_Java基础Day02(上)_Java语言基础(Done)

2013-06-20 07:27 190 查看
------- android培训java培训、期待与您交流! ----------

Java语言基础组成。

Java语言基础组成包括:关键字、标识符、注释、常量和变量、运算符、语句、函数、数组等内容。

一、关键字。

关键字是被Java赋予了特殊含义的单词,在设计Java之初就已经被使用。关键字中所有字母都小写。

1.用于定义数据类型的关键字:

class,interface,byte,short,int,long,float,double,char,boolean,void,true,false,null

2.用于定义流程控制的关键字:

if,else,switch,case,default,while,do,for,break,continue,return

3.用于定义访问权限修饰符的关键字:

private,protected,public

4.用于定义类、函数、变量修饰符的关键字:

abstract,final,static,synchronized,

5.用于定义类与类之间关系的关键字:

extends,implements

6.用于定义建立实例及引用实例、判断实例的关键字:

new,this,super,instanceof,

7.用于异常处理的关键字:

try,catch,finally,throw,throws

8.用于包的关键字:

package,import

9.其他修饰符关键字:

native,strictfp,transient,volatile,assert

二、标识符。

标识符是程序中自定义的一些名称。

标识符的组成:由a~z、A~Z、0~9、_、$这些符号组成

定义合法标识符的规则:数字不可以开头;不可以使用关键字。在Java中,严格区分大小写;在起名字时,为了提高代码的阅读性,起的名字应尽量有意义,做到见名知意。

Java中的名称规范:

包名:多单词组成时所有字母都小写。如:xxxyyyzzz

类名、接口名:多单词组成时,所有单词的首字母大写。如:XxxYyyZzz

变量名和函数名:多单词组成时,第一个单词首字母小写,从第二个单词开始,每个单词的首字母大写。如:xxxYyyZzz

常量名:所有字母都大写。多单词时,单词间使用"_"分隔开。如:XXX_YYY_ZZZ

三、常量与变量。

常量表示不能改变的数值。

Java中常量的分类:

1.整数常量:所有整数。

2.小数常量:所有小数。

3.布尔型常量:较为特殊,仅有两个数值。即,true和false。

4.字符常量:将一个数字字母或者符号使用单引号('')标识。

5.字符串常量:将一个或者多个字符使用双引号("")标识。

6.null常量:只有一个数值,就是null。

对于整数,Java有三种表现形式。

十进制:0~9组成,满10进1.

二进制:0、1组成,满2进1.

八进制:0~7组成,满8进1,用0开头表示。

十六进制:0~9和A~F组成,满16进1,用0x开头表示。

一个字节,是由8位二进制数表示的。字节是计算机中数据的最小单位。

计算机中的数据都是由0,1组成的二进制表示的,为了方便使用,将二进制的由低位到高位每三位代表一位 和 每四位代表一位分别形成八进制和十六进制,进制越高,表示相同数字的长度越短。

进制之间的转换。

1.十进制转换为二进制。

原理:对十进制数进行除以2的运算。如:十进制6,除以2,商3余0;3除以2,商1余1;1除以2,商0余1。于是得到十进制6的二进制表现形式为110.

2.二进制转换为十进制。

原理:二进制乘以2的过程。如:二进制数110转换为十进制。1*2^2+1*2^1+0*2^0=6。于是得到二进制数110的十进制表现形式为6.

3.二进制转换为八进制。

原理:从低位到高位,每三位代表一位,就组成了八进制。如:二进制数110 011 对应的八进制表现形式就是63.

4.二进制转换为十六进制。

原理:从低位到高位,没四位代表一位,就组成了十六进制。如:二进制数1010 0111 对应的十六进制数表现形式就是 A7.

5.负数的二进制表现形式。

原理:对应的正数二进制数取反再加1。

负数的最高位都是1。

变量

变量就是将不确定的数据进行存储,也就是需要在内存中开辟一个空间。开辟空间是通过明确数据类型,变量名称,数据来完成的。

Java语言是强类型语言,对于每一种数据类型,都定义了明确的数据类型,在内存中分配了不同大小的内存空间。

Java中的数据类型分为:

A.基本数据类型:

a)数值型:

1.整数类型:byte、short、int、long

2.浮点类型:float、double

b)字符型:char

c)布尔型:boolean

B.引用数据类型:

a)类:class

b)接口:interface

c)数组:[]

其中,整数类型默认是int型,小数类型默认是double型。

byte:8个二进制位表示一个字节数据。取值范围是:-128~127

short:16个二进制位表示。取值范围是:-2的15次幂~2的15次幂-1

int:32个二进制位表示。取值范围是:-2的31次幂~2的31次幂-1

long:超出int范围的。

float:单精度,占32个二进制位。

double:双精度,占64个二进制位。

char:字符型,取值范围0~6535,占两个8位。

boolean:只有两个值,true和false。

定义变量的格式:

数据类型 变量名 = 初始化值;

什么时候定义变量?当数据不确定的时候,需要对数据进行存储时,就定义一个变量来完成存储的动作。

类型的转换:分为自动类型转换和强制类型转换。

byte、short、char都会自动提升为int型。

byte b = 3;
b = b+2;//2默认是int型变量,而b是byte型,所以编译失败,提示损失精度。
b = (byte)(b+2);//强制类型转换。


四、运算符。
1.算术运算符。

+、-、*、/、%、++、--、+(字符串连接符)等。

其中%是取模,即:取余数。正负看左边。

字符串数据和任何数据使用"+",都是相链接,最终都会变成字符串。

2.转义字符。

通过"\"转变后面字母或者符号的意义。

如:\n 表示换行 ; \b 表示退格 ; \t 制表符 ; \r 按下回车键。

3.赋值运算符。

包括:=、+=、-=、*=、/=、%=

同时给多个同类型变量赋相同的值可以使用 int a = b = c = 2 的方式进行。

对于+=等赋值运算符的特殊之处,如下:

class OperateDemo1
{
public static void main(String[] args)
{
int x = 3;
short s = 4;
//s = s + 5;//5默认是int型,s定义的是short型,两者相加后,类型自动提升为int,不能直接赋给short型的s,会提示丢失精度。

s+=5;//这句效果上相当于s = (short)(s+5),即自带类型提升。所以不会报错丢失精度,可以正常运行。
System.out.println(s);

}
}
4.比较运算符。

包括:==、!=、>、<、>=、<=、instanceof

比较运算符运算后的结果只有两种:true 或者 false

5.逻辑运算符。

包括:&(两边都为ture,结果为ture)、|(两边只要有一边为true,结果就为true)、^(两边不同,结果为true)、!(ture变false,false变true)、&&(如果左边为false,则不需要执行右边)、||(如果左边为ture,则不需要执行右边)

关于短路逻辑运算符&&与||的特殊之处如下:

class Demo
{
public static void main(String[] args)
{
int java = 89;
int sql = 90;
System.out.println(java>90 && sql++>
4000
90);//由于&&左边已经为false,所以不会执行&&右边的代码
System.out.println(sql);//由于没有执行右边代码所以sql没有自增,sql==90
}
}


运行结果为:



class Demo
{
public static void main(String[] args)
{
int java = 92;
int sql = 90;
System.out.println(java>90 || sql++>90);//由于||左边的部分已经为true,所以不会执行||右边的代码
System.out.println(sql);//由于没有执行右边代码,所以sql没有自增,sql==90
}
}
运行结果为:



逻辑运算符用于连接boolean类型的表达式。

6.位运算符。

包括:<<、>>、>>>、&、|、^、~

<<其实就是乘以2的移动位数次幂。空位补0。

>>(带符号右移)其实就是除以2的移动位数次幂。最高位是0就补0,最高位是1就补1。

>>>无符号右移。无论最高位是0还是1,空位都补0。

&按位相与。如:6&3,即:110&011==010==2。即:6&3=2

|按位相或。如:6|5,即:110|101==111==7。即:6|5=7

^按位异或。如:6^5,即:110^101==011==3。即:6^5=3

~按位取反。

异或的特殊性。一个数异或同一个数两次,得到的还是原来的数。

练习一:使用效率最高的方式计算2*8

class Demo
{
public static void main(String[] args)
{
System.out.println("2*8="+(2<<3));//使用移位运算符进行计算
}
}
运行结果为:



练习二:对两个整数变量的值进行互换(不使用第三方变量)

部分代码如下:

a = a^b;
b = a^b;
a = a^b;


7.三元运算符。

格式:(条件表达式)?表达式1:表达式2

如果条件表达式结果为true,运算后的结果是表达式1;如果条件表达式结果为false,运算后的结果是表达式2。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java 毕老师基础