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

java学习笔记--第二天

2012-03-07 16:42 141 查看
01.标识符

java语言组成:关键字,标识符,注释,常量和变量,运算符,语句,函数,数组。

02.常量和变量

java中常量的分类:整数常量,所有整数。小数常量,所有小数。布尔型常量,较为特殊,只有两个数值,true false。字符常量,将一个数字,字母或者符号用单引号标识。字符串常量,将一个或者多个字符用双引号标识。null常量,只有一个值:null。

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

03.进制的特点

八进制其实是二进制的三位代表一位,十六进制其实是二进制的四位代表一位。

04.进制转换(十进制和二进制)

十进制转二进制:除2取余数,逆向取余。

二进制转十进制:乘以2的幂的过程。

05.进制转换(八进制和十六进制)

二进制转换成十六进制:从右往左,四位一分,把每四位的十进制算出来拼在一起。十六进制里的10,11,12,13,14,15分别用A,B,C,D,E,F代替。

因为四个二进制位的最大值是15.

二进制转八进制:从右往左,三位一分,把每三位的十进制算出来拼在一起。

06.进制转换(负数二进制)

将正数的二进制取反加1,负数的二进制最高位都是1.

07.变量

变量:就是将不确定的数据进行存取,也就是需要在内存中开辟一个空间。

如何开辟内存空间:就是通过明确数据类型,变量名称,数据来完成的。如:类型名 变量名=初始值;

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

基本数据类型:

byte:8位(-128到127)。short:16位(-32768到32767)。int:32位(-2的31次方到2的31次方减1),long:(64位)后面要有l标识。

之所以有这么多的数据类型,是为了节约内存,提高内存的利用率。

float:单精度(四个八位)后面要有f标识,double:双精度(八个八位),char:(0-6535)要用单引号(两个八位)。

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

08.类型转换

整数默认为int类型,小数默认为double类型。

小的数据类型和打得数据类型运算时,小的数据类型会向大的数据类型转变(机器内部完成)。所以他俩运算的结果后的数据类型是大的数据类型。

强制数据类型转换时,大的数据类型向小的数据类型转换时可能会出现精度丢失,小的数据类型向大的数据类型转换时没问题。

把double转int会只保留整数部分。

字符a对应的ASCII码是97,字符A对应的ASCII码是65,字符1对应的ASCII码是49.

09.算术运算符

负数取模时,只看左边的(被模)的符号。

b=a++;先运算后加1(先把a的值赋给b,再把a的值加1)

b=++a;先加1后运算(先把a的值加1,再把加1后的值赋给b)

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

10.转义字符

window系统中,回车符是有两个符号表示:\r\n

11.赋值和比较运算符

+=,-=,*=,/=,%=。

short s=4;

s=s+4;编译会失败,没有进行强类型转换。

s+=4;编译会通过,会自动进行类型转换。

比较运算符的结果都是boolean型,也就是要么是true,要么是false。注意“==”不能写成“=”。

12.逻辑运算符

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

true & true = true

true & false = false

false & false = false

false & true = false

&:有一个为false结果就为false,只有两边都为true,结果才为true。

|:有一个为true,结果就为true,只有两边都为false,结果才为false。

^:异或,两边相同,则为false,两边不同,结果为true。

&&:比&的运算效率稍微高一些,&的特点:无论左边是true还是false,右边都运算,&&的特点:当左边为false时,右边不运算,结果为false。

||:比|的运算效率稍微高一些,|的特点:无论左边是true还是false,右边都运算,||的特点:当左边为true时,右边不运算,结果为true。

13.位运算符(左移右移)

左移<<:低位补0,数值变大,一个数左移x位,相当于该数乘以2的x次幂。

右移>>:高位补0,数值变小,一个数右移x位,相当于该数除以2的x次幂。如果是小数,则取整。

做运算的时候,最快的运算是位运算。

右移>>:高位补什么,由原来的数据的最高位值而定,如果最高位0,右移后,用0补空位。如果最高位1,右移后,用1补空位。

>>>:无论最高位是什么,右移后,都用0补。

14.位运算符(与-或-异或)

&:可以作为位运算符存在。把数值转换成二进制后按位与。0是假,1是真。

|(或),^(异或),~(取反)等。

一个数异或同一个数两次,结果还是那个数。有点像加密算法。

15.位运算符(练习)

最有效的方式算出2乘以8的值。

解:高效运算:位运算。将2左移3位。

对两个整数变量的值互换(不使用第三方变量)。使用第三方变量是最常见的一种方式。

解:解法一:n=n+m;m=n-m;n=n-m;解法二:n=n*m;m=n/m;m=n/m;

上面两种解法容易损失精度。

解法三:a=a^b;b=a^b;a=a^b;

16.位运算符(练习2,三元运算符)

要想把10,11,12,13,14,15转换成A,B,C,D,E,F可以用以下方法:

如:12-10+‘A’=‘C’

三元运算符:

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

如:int x=3,y;

y=(x>3)?100:200;//如果x的值大于3,则y=100,否则y=200

17.语句(if)

程序流程控制:判断,选择,循环。

if后面如果没有{},那么受if控制的语句就只有离他最近的一条语句。

18.语句(if练习)

//需求一:根据用户定义的数值不同,打印对应的星期英文。

int num=2;

if(num==1)

{

System.out.println("Monday");

}

else if(num==2)

{

System.out.println("Tuesday");

}

else if(num==3)

{

System.out.println("Wednesday");

}

else if(num==4)

{

System.out.println("Thursday");

}

else if(num==5)

{

System.out.println("Friday");

}

else if(num==6)

{

System.out.println("Saturday");

}

else if(num==7)

{

System.out.println("Sunday");

}

else

{

System.out.println("输入的数据不合法!");

}

//需求2:根据用户指定的月份,打印该月份所属的季节。

19.语句(swich)

swich(表达式)//表达式的值只接受四种类型:byte,short,int,char

{

//case是没有顺序的,就好比选择特的A,B,C,D

case 取值1:

执行语句;

break;

case 取值2:

执行语句;

break;

......

default:

执行语句;

break;

//case和default和顺序是可以换的,但执行顺序是先case后default

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: