黑马程序员_02_java基础

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ---------------------- 

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

每个计算机语言虽然表达方式不一样,但是思想都是想通的。

关键字

标识符

标识符就是自定义的一些名称。

规则:数字:0-9,符号_$组成

定义合法标识符规则:

1.   数字不可以开头

2.   不可以使用关键字(如果一定使用第一个字母要大写)

Main不是关键字,但是却是被虚拟机特殊识别的一个词

JAVA中严格注意大小写

注意:在起名字的时候,为了提高阅读性,尽量要使每个名字有意义。

其他规则

变量名和函数名:getName

常量:JAVA_HOME

注释

/**/  和 //

 

初学者一定要养成一个好习惯,先写注释再写代码

常量与变量

常量表示不能改变的数值

整数常量:所有整数

小数常量:所有小数

布尔型常量:比较特有,只有两个数值,true和false。

字符常量:将一个数字字母或者符号用单引号‘’ 标识。字符常量只能封装一个元素

字符串常量:将一个或者多个字符用双引号标识。“”

Null常量,只有个一个值就是null。

整数,java有三种表现形式:

      十进制

      八进制        0-7,满8进1,0开头,

      十六进制     0-9,A-F,满16进1,用0x开头表示。A代表11,B代表12

      二进制:

每个字节由8个二进制位组成。N个字节表示数据。硬盘中存放的都是2进制数据

通过二级制来表现字母和数字的表就是编码表。老美表示生活中的文字就是ASCII表

二进制8个数字组成太长,所以用8进制表示3个3位数,这样演变以后就可以变短

如果再短一些,用4个二进制位代表一位,就是16进制。

进制的基本转换

十进制转换二进制

原理:对十进制数进行除2运算。

二进制转换十进制

原理,二进制(倒着)乘以2的过程。

规律:倒着1加2加4加8……

二进制转换十六进制

原理:分成4位转换,然后变成十六进制书写

二进制转换八进制

原理:三个二进制代表一位。前面加个0,再转换

负数的二进制表现形式

-6的二进制,其实就是6的二进制取反,再加1.

取反就是将二进制的1变成0,0变成1.

负数的二级制位最高位是1,而整数的最高位是0.

变量

变量:就是将不确定的数据进行存储。

也就是需要在内存中开辟一个空间,这个空间名称就是变量名。

不同数据存放在不同数据类型。空间类型有栈内存和堆内存。

整数类型:byte,short,int,long。

4个类型在内存中开辟的空间不同。一个byte只有8个二进制(-128~127,就是-2的7次方和2的7次方减一),short有16个(-2的15次方到2的15次方减一-32768~32767),int有32个二进制(-2的31次方到2的31次方减一),long更多。

一般情况,默认写整数都是int

Byte就是一两的碗,short是二两的碗,int是三两的,long是四两的。

浮点型float和double,单精度和双精度。前者小数点后面的位数少点。后者精度更高

Float占了4个八位,double占了8个八位。写小数默认double

Char(0~6535)

布尔型只有true和false

定义变量格式:数据类型   变量名 =  初始化值

Int x = 4;

什么时候定义变量?

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

类型转换

byte b =3;

b= b + 2;

sop(b);

编译错误。原因:b是byte型,b+2运算时,java会自动类型提升(将两个数值的类型转变为一个类型才能进行运算,而这时提升的原则是向大的类型提示),2默认是int型,b也自动提升至int型,得到的新数值也是int型,再赋值给b,int型数值不能赋值给b,可能造成精度损失。

b=3,3能赋值给b是因为java会自动判断3会不会在byte范围内。而b+2是个变化的值,当值变化时,可能造成精度损失。

如果非要将结果赋值给b,那么可以进行强制精度转换。

b=byte)(b+2);//b+2运算完成后,转换为byte类型,再赋值给b。这里有个风险是转换byte类型后有可能造成精度损失,只不过不会报错。

强制转换一般在取想要的结果时才使用。如double转int型,这样只保留了整数部分。

System.out.println(‘a’+1);//结果是98

老美把每个字母用二进制表示,组成一个ASCII表,二进制转换成十进制,a的表示数字就是97,’a’+1时java进行自动类型提升,因为字符a站2个八位,1站4个八位,提升类型向int型的数字1提升,所以转换后数字为98。

System.out.println(char(‘a’+1));//结果是b,强制将结果98转换为字符,根据ASCII表98为b

运算符

算术运算符

Int x=4270;

X = x/1000 *1000;//结果是4000,因为x除以1000后是int型,为4,然后再相乘

%取模,就是取余数的运算。

取模运算,左边小于右边,取左边。左边等于右边,为零。右边是1,结果是0。

1%-5结果还是1.

-1%5结果还是-1,结论,取模如果出现负数,看左边的的正负,右边正负不管

++--自加自减

注意:变量只有在赋值后才能使用。

Int a=3,b;

a+b;//不正确,没有给b赋值

Int a=3,b;

b=a++;

sop(b);//3

sop(a);//结果是4++在后面的时候,先赋值然后自加。

如果b=++a;

sop(b);//4

sop(a);//4,++在左边那么a会先自加再赋值

--自减和自加的运算规律相同

字符串相加需要用双引号。

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

“5+5=”+5+5;//结果是(字符串类型)“5+5=55“。因为后面的5都会转换成字符串类型与前面的字符串相连接。

转义字符

通过反斜线 \ 来转变后面字母或者符号的含义。

\n 转变n,作用为换行

\b退格 相当于backspace

\r按下回车键。注意:windows中,回车符是有两个字符表示\r\n

\t 制表符,相当于按下tab键

“\”hello\””;通过反斜杠来将双引号转义,输出为 “hello“,带双引号的hello

\\hello\\;输出为:\hello\

赋值和比较运算符

Int x = 4;//把右边赋值给左边

x+=4;//把左右两边的和赋值给左边。相当于x=x+4;

short s =4;

//s = s +5;//编译错误,因为类型不一样

S+=5;//可以,因为这个指令只有一次运算,与上面的最大不同是+=运算不会做类型转换动作。

比较运算符

逻辑运算符:

X>3&&x<6;java中两个关系必须用逻辑运算符联系起来。

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

&规律:真与真,为真。真与假,为假。假与假为假。假与真为假。

      只有两边都为true,才为true。

|规律:两边都为假才是假,有一边是真就是真

^异或,就是和|或有点不一样。

规律:两边一样为假,不一样为真

!非,相反的,!true为假

位运算符

左移<<,就是将4个八位二进制向左移动,别的用0填充

左移和右移的规律是:

左移n位就是乘上2的n次幂

右移n位就是除以2的n次幂(取整数)

注意:右移最高位的填充按照之前最高位的数字决定。6右移的最高位默认填充0,而-6最高位的右移默认填充1

无符号右移>>>,无论正数负数的最高位填充都是0

&运算。010十进制对应的是2,所以6&3=2

|运算,

^异或运算

有个规律:一个数字异或同一数字两次,得到的结果仍然是原数字

~反码运算,取反操作,~6=-7。负数取反减去1就是所得正数

练习:

最有效率的2乘8的运算?

计算机中最有效率的运算是位运算,而不是2*8。

所以结果是2<<3,2*2的3次幂,就是2*8

将整数型的两个变量值互换,不适用第三个变量值,怎么做?

练习2:

如何取一个数的最低4位?

&15。

最低八位呢?

先用最低4&15,然后右移4位,再&15,得到的两个数值用八进制表示就最好了

三元运算符:

三元运算的特点是3个元素参与运算。加减乘除是二元运算。非真非假是一元运算。




------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值