黑马程序员-day02-Java基础语法

来源:互联网 发布:php sleep 和 usleep 编辑:程序博客网 时间:2024/04/18 11:49
------- android培训、java培训、期待与您交流! ----------

关键字


标识符
1.在程序中自定义的一些名称。
2.由26个英文字母大小写,数字:0-9 符号:_ $ 组成
3.定义合法标识符规则:
  (1)数字不可以开头。
  (2)不可以使用关键字。
4.Java中严格区分大小写。
5.在起名字的时,为了提高阅读性,要尽量有意义。

Java中的名称规范:
1.包名:多单词组成时所有字母都小写。
  xxxyyyzzz
2.类名接口名:多单词组成时,所有单词的首字母大写。
  XxxYyyZzz
3.变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。 
  xxxYyyZzz
4.常量名:所有字母都大写。多单词时每个单词用下划线连接。
  XXX_YYY_ZZZ

注释
1.用于注解说明解释程序的文字就是注释。
2.提高了代码的阅读性。
3.Java中的注释格式: 
  (1)单行注释
  格式: //注释文字
  (2)多行注释
  格式: /*  注释文字  */
  (3)文档注释
  格式:/** 注释文字 */

注释注意事项:
1.对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行。
2.对于文档注释,是java特有的注释,其中注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。
3.注释是一个程序员必须要具有的良好编程习惯。
4.初学者编写程序可以养成习惯:先写注释再写代码。
5.将自己的思想通过注释先整理出来,在用代码去体现。
6.因为代码仅仅是思想的一种体现形式而已。


常量与变量
1.常量表示不能改变的数值。
2.Java中常量的分类:
  (1)整数常量。所有整数
  (2)小数常量。所有小数
  (3)布尔(boolean)型常量。较为特有,只有两个数值。true false。
  (4)字符常量。将一个数字字母或者符号用单引号( ' ' )标识。
  (5)字符串常量。将一个或者多个字符用双引号(“ ”)标识。
  (6)null常量。只有一个数值就是:null.
3.对于整数:有四种表现形式。
  (1)二进制:0,1 ,满2进1.
  (2)八进制:0-7 ,满8进1. 用0开头表示。
  (3)十进制:0-9 ,满10进1.
  (4)十六进制:0-9,A-F,满16进1. 用0x开头表示。

进制转换
进制的基本转换
1.二进制和十进制的转换
  十进制转成二进制 
  原理:除以2取余数
  二进制转成十进制 
  原理:乘以2的幂数
2.转成其他进制
  转成16进制:4个二进制位最大值是15,所以4个二进制位就是一个十六进制位。
  转成8进制:3个二进制位最大值是7,所以3个二进制位就是一个八进制位。
3.负数的二进制表现形式
  对应的正数二进制取反加1
  规律:负数的最高位都是1.

变量
变量的概念:
1.内存中的一个存储区域
2.该区域有自己的名称(变量名)和类型(数据类型)
3.该区域的数据可以在同一类型范围内不断变化

为什么要定义变量?
用来不断的存放同一类型的常量,并可以重复使用

使用变量注意:
1.变量的作用范围(一对{}之间有效) 
2.初始化值

定义变量的格式:
数据类型    变量名 =  初始化值;
注:格式是固定的,记住格式,以不变应万变。

理解:变量就如同数学中的未知数。

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

数据分类
1.基本类型:4类8种。
(1)整型:占用字节 
byte(1)short(2)int(4)long(8)
(2)布尔型:
boolean(1) 不明确。可以认为是1个字节。
只有俩字结果,一个是true,另一个是false。
(3)字符型:
char(2)
(4)浮点型:
float(4)double(8)
2.引用类型:类,接口,数组。

类型转换
1.自动类型转换(也叫隐式类型转换)  
2.强制类型转换(也叫显式类型转换) 
3.表达式的数据类型自动提升
所有的byte型、short型和char的值将被提升到int型。
如果一个操作数是long型,计算结果就是long型;
如果一个操作数是float型,计算结果就是float型;
如果一个操作数是double型,计算结果就是double型。

算术运算符
1.取模%
注意:取模的时候如果出现负数的话,只看被模数(左边)
-1%5=-1,1%-5=1
2.字符串数据和任何数据使用+都是相连接,最终都会变成字符串。


转义字符
1.转义字符:通过\来转变后面字母或者符号的含义。
  \n:换行
  \b:退格。相当于backspace
  \r:按下回车键。window系统,回车符是由两个字符来表示\r\n。
  \t:制表符。相当于tab键


逻辑运算符
1.^:只要两个条件同时为真或假,其结果都为假;但仅当两条件中一个为真,另一个为假时,结果为真。但Java的异或运算还有一个前提那就是它都是以二进制数据为基础进行的运算。也就是说当我们在使用代码中使用到异或运算时,它都会先将两个条件进行转换,转换成二进制数据后,再进行运算,
例如:
int a = 4^6;这里的4和6 都是int型数据,在进行运算时,4对应的二进制数为:100(0100);6对应的是:110(0110),这样实际的运算方程是:inta = 0100^0110;此时再来看:0<-->0=0;1<-->1=0;0<-->1=1;0<-->0=0;这样运算的结果就是:0010(这是二进制的数据),对应转换成十进制就是2.

&与&&的区别
相同:
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
区别:
1.&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。If(x==33& ++y>0) y会增长,If(x==33 && ++y>0)不会增长。
2.&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。
备注:这道题先说两者的共同点,再说出&&和&的特殊之处,并列举一些经典的例子来表明自己理解透彻深入、实际经验丰富。


位运算符

1.位运算是直接对二进制进行运算。

<<:其实就是乘以2的移动的位数次幂。
>>:其实就是除以2的移动的位数次幂。


Java取反操作符号:~
1.特别要注意的是,Java中负数按补码形式存在,因此x = 1;
~x = 1111,1111,1111,1110;
这是补码的形式,转换成原码,1000,0000,0000,0010, -2
2.另一点,取反操作的结果并不存在于变量中,即~x后,x的值不变。

正数的补码是其源码本身
负数的补码是其除符号位以外其他每一位按位取反再加一,符号位不变。
例如:
10进制数11:
源码:00001011;
反码:11110100;
补码:00001011;
十进制数-11:
源码:10001011;
反码:01110100;
补码:11110101;

6的二进制是
0000 0000 0000 0000 0000 0000 0000 0110
反码
1111 1111 1111 1111 1111 1111 1111 1001
即二补码的-7

java整型是32bit运算
内存上“反码值”在最后在System.out.print等格式化输出时仍按“补码”解析成-7。
即刚刚的反码看成补码
[1][111 1111 1111 1111 1111 1111 1111 1001]
除符号位外的值部分反码
   000 0000 0000 0000 0000 0000 00000110   即(6)10
根据补码计算方法,加1得 7,
加符号位,得-7

规律:
1.异或

用途:加密


位运算符(练习)
1.最有效率的方式算出2乘以8等于几?
2*8
   0001
* 1000
 --------
  10000 
2.对两个整数变量的值进行互换(不需要第三方变量)


语句
switch语句特点:
  (1)switch语句选择的类型只有四种:byte,short,int , char。
  (2)case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。
  (3)结束switch语句的两种情况:遇到break,执行到switch语句结束。
  (4)如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。

do while特点:
是条件无论是否满足,循环体至少执行一次。

其他流程控制语句
break(跳出), continue(继续)
break语句:应用范围:选择结构和循环结构。
continue语句:应用于循环结构。

注意:
  (1)这两个语句离开应用范围,存在是没有意义的。
  (2)这个两个语句单独存在下面都不可以有语句,因为执行不到。
  (3)continue语句是结束本次循环继续下次循环。
  (4)标号的出现,可以让这两个语句作用于指定的范围。

0 0