现在的位置: 首页 > 综合 > 正文

黑马程序员 Java基础语法——上

2014年08月20日 ⁄ 综合 ⁄ 共 5270字 ⁄ 字号 评论关闭

欢迎光临新长城博客中心

---------------------- 黑马程序员
Android培训、期待与您交流! 
----------------------


Java语言基础组成

1、关键字


2、标识符

(1)就是给类,变量,方法起名字。

(2)组成规则:

由数字0-9,英文大小写字母,$以及_组成。

(3)注意事项:

A:只能有组成规则规定的内容组成。

B:不能以数字开头。

C:不能是Java中的关键字。

D:区分大小写。


A:包(文件夹,用于区分同名的类)

全部小写。如果多级包,用.分开。

举例:

com一级包

itheima.interview二级包

注意:www.itheima.com(域名反写)


B:类和接口(定义类与接口)

如果是一个单词,首字母大写。

举例:

Demo,Test,Student

如果是多个单词,每个单词的首字母大写。

举例:

HelloWorld,StudyBlog

C:变量和方法

如果是一个单词,首字母小写。

举例:

name,age,show(),method()main()

如果是多个单词,从第二个单词开始每个单词的首字母大写。

举例:

showName(),studentName()

D:常量

全部大写,如果多个单词组成,用_连接。

举例:

PI,STUDENT_MAX_AGE

3、注释

注释:就是对程序的解释性文字。

注释的分类:

A:单行注释

1、以//开头,以回车结束。

2、单行注释是可以嵌套单行注释的。

B:多行注释

1、以/*开头,以*/结束。

2、多行注释是不可以嵌套多行注释的,但可以嵌套单行注释。

C:文档注释了解

将来被Javadoc工具解析,生成一个说明书。

注释的作用:

1、解释程序,提高程序的阅读性。

2、可以调试错误。


对于单行注释和多行注释,被注释的文字,不会被JVM(Java虚拟机)解释执行。

对于文档注释,是Java特有的注释,其中注释内容可以被JDK提供的工具Javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档。


学习友情建议

注释是一个程序员必须具有的良好编程习惯。

初学者编写程序可以养成习惯:先写注释再写代码。

将自己的思想通过注释先整理出来,在用代码去体现。

因为代码仅仅是思想的一种体现形式而已。


注视格式:

单行注释://

多行注释:
/*    */

文档注释: /**   */


建议:写代码之前写需求,思路,步骤,养成一个良好的习惯,以后一旦思想确定,后面写代码就是行云流水。

如下一个Hello 黑马程序员的小程序:

/*

1、需求:

编译一个Hello 黑马程序员!!的小程序

2、思路:

1通过Java关键字class定义一个类 

2通过Java特殊字main定义一个主函数

3定义一个输出语句,打印下Hello
黑马程序员!!

3、步骤:

1)class Demo 定义一个类

2)public static void main(String[] args) 定义一个主函数

3)System.out.println("Hello 黑马程序员!!");定义一个输出语句

*/


//创建一个类。

class Test{

//主函数是程序的入口。

public static void main(String[]
args){

//输出语句,可以打印小括号内容。

System.out.println("Hello
黑马程序员!!"
);

}

}

4、常量和变量

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

(1)在程序的运行过程中,其值是不可以发生改变的量。

(2)常量的分类:

1)整数常量

12,-23

2)小数常

12.5,-65.43

3)字符常量

'a','A','0'

4)字符串常量

"Hello"

5)布尔常量

truefalse

6)空常量(后面讲)

null

7)自定义常量(后面讲)

(3)常量可以直接被输出。

(4)进制

1)是一种进位的方式。X进制,表示逢x进1。

2)Java中整数常量的表示

A:二进制 由0,1组成。以0b开头。JDK 1.7以后的新特性。

B:八进制 由0-7组成。以0开头。

C:十进制 由0-9组成。默认就是十进制。

D:十六进制 由0-9,A-F(不区分大小写)组成,以0x开头。

3)进制转换:

A:其他进制转十进制

系数:就是每一位上的数据。

基数:X进制,基数就是X。(也就是进制)

权:在右边,从0开始编号,对应位上的编号即为该位的权。

结果:把系数*基数的权次幂相加即可。

B:十进制到其他进制

除基取余,直到商为0,余数反转。

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

(1)程序的运行过程中,在指定范围内发生改变的量。

(2)格式:

格式1:

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

格式2:

数据类型 变量名;

变量名 = 初始化值;

举例:

方式1: 

byte b = 10;

方式2: 

byte b;

b = 10;


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



数据类型

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


数据分类

1)基本类型:4类8种。

整型:占用字节  

byte1)short2)int4)long8)

布尔型:

boolean1)
不明确。可以认为是1个字节。(即8个bit位)

只有俩字结果,一个是true,另一个是false

字符型:

char2)

浮点型:

float4)double(8)

2)引用类型:类,接口,数组。(先了解)


注意:

整数默认是int类型。long类型需要加L或者l后缀。

浮点数默认是double类型。float类型需要加F或者f后缀。


类型转换

1、boolean类型不参与转换。(因为boolean值是常量,默认只有俩个值,要么true,要么false

2、隐式转换(从小到大)

自动类型提升,从小到大的提升。

(byte,short,char) -->
int 
--> long --> float
--> 
double

3、强制转换(从大到小)

强制类型转换,从大到小的转换。

int b;b=(byte)(b+2)

格式:

(数据类型) 数据;

表达式的数据类型自动提升。

所有byte型、short型和char的值将被提升到int型。

如果一个操作数是long型,计算结果就是long型。

如果一个操作数是float型,计算结果就是float型。

如果一个操作数是double型,计算结果就是double型。


分析:

System.out.println(‘a’)System.out.println(‘a’+1)的区别。

System.out.println(‘a’)打印的是a。

System.out.println(‘a’+1)打印的是98,自动类型提升,把a转换成ASCII编码值(97)与1相加。


变量的什么时候定义?

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


转义字符  

\n :换行     

\b :退格

\r  :按回车

\t  :制表符

面试题:

byte b = 4;b = 3+7;

System.out.println(b);//打印出来是10

------------------------------------------------

byte b = 4;byte
b1 = 3;
byte b2 = 7;

b = b1 + b2;

System.out.println(b);


提示可能损失精度

byte b=4; 编译器在编译的时候,右边默认是整型,但是他会判断.这数字在不在byte字节这个范围之内(-128~127)。

果在的话,把这个4做了一个默认的强转,把最后一个字节赋到b中,这时b是在byte范围内所以编译不会报错。

b1和b2是变量,是不确定的值,不能检查。

int x;

int x1 =Integer.MAX_VALUE;//2147483647Z最大数

int x2 = 2;

x = x1+x2;

System.out.println(x);//不出错,打印出来是负数。

int是默认类型,一旦超出范围,底层有强制转换过程,只保留自己原有位,高位全舍弃。


5、运算符

(1)就是把常量和变量连接的符号,一般参与运算使用。(就是算法,1+1)

(2)分类:

算术运算符 +,-,*,/,%,++,--

+):正号,加法,字符串连接符。

例:

System.out.println("5+5="+5+5);//5+5=55

System.out.println(5+5+"=5+5");//10=5+5

%):取得余数

规律:

左边如果大于右边,结果是余数。//10%5=0

左边如果小于右边,结果是左边。//5%10=5

左边如果等于右边,结果是0。     //5%5=0

正负号跟左边一致。                    //-11%5=1


++与--:

++ 其实相当于把数据+1

- -  其实相当于把数据-1

规律:单独存在时,在数据的前后,结果一致。


参与操作使用:

如果在数据的后边,数据先操作,在++/--。(小明先玩后吃饭)

如果在数据的前边,数据先++/--,在操作。(小明先吃饭后玩)


赋值运算符 =,+=,-=,*=,/=,%=

int a = 10;//把10赋值给int类型的变量a。

a += 20;//把左边和右边的和赋值给左边。


注意事项:

a = a + 20;

a += 20;//等于a=a+20。

结果是等价的,理解不是等价的。

因为+=这种运算符,内含了强制类型转换功能。

比如:

short s = 2;

s+=3;

等价于  s = (short)(s+3);


关系运算符  ==,!=,>,>=,<,<=

特点:关系运算符的结果都是boolean类型。而且只有俩个值(true
| false

请千万注意:== 不要写成 =


逻辑运算符

&与运算   |或运算  ^异或运算   !非运算  &&短路与运算  ||短路或运


&:符号的运算特点:

true  &  true
   =  
true;

true  &  false
  =  
false;

false &  true
   =  
false;

false &  false 
 =  
false;

&运算规律:

&运算的两边只要有一个是false,结果肯定是false

只有两边都为true,结果才是true

|:符号的运算特点:

true  &  true
   =  
true;

true  &  false
  =  
true;

false &  true
   =  
true;

false &  false
  =  
false;

|或运算规律:

|运算的两边只要有一个是true,结果肯定是true

只有两边都为false。结果是false

^与|:异或和或有点不一样。

^:运算特点。

true  true  false;

true  false true;

false true
 
true;

false false false;

^异或运算规律:

^符号的两边结果如果相同,结果是 false

两边的结果不同,结果是true

!:非运算,判断事物的另一面。

!true
=
false

!false=true;

!!true=true;

面试题:

&&和&运算的结果是一样的。但是运算过程有点小区别。

&:无论左边的运算结果是什么,右边都参与运算。

&&:当左边为false时,右边不参与运

||和|运算的结果是一样的。但是运算过程有点小区别。

|:无论左边的运算结果是什么,右边都参与运算。

||:当左边为true时,右边不参与运算的。

位运算是直接对二进制进行运算

<<左移运算   >>右移运算   >>>无符号右移运算   &与运算  |或运算    ^异或运算   ~反码运算

<<左移几位其实就是该数据乘以2的几次方。

左移:可以完成2的次幂运算

>>右移几位其实就是该数据除以2的几次幂。

右移:对于高位出现的空位,原来高位是什么就用什么补这个空位。

>>>:无符号右移:数据进行右移时,高位出现的空位,无论原高位是什么,空位都用0补。

^:一个数异或同一个数两次,结果还是这个数。

练习:

对两个整数变量的值进行互换(不需要第三方变量)

代码:

x= x + y;//x = 3 + 5; x = 8;

y= x - y;//3+5-5 = 3;y = 3;

x= x - y;//3+5-3 = 5;x = 5;

这种方式建议不要用,如果两个整数的数值过大,会超出int范围,会强制转换。数据会变化。

开发时,使用第三方变量的形式,因为阅读性强。

int x = 3,y = 5;

int temp = x;

x = y ;

y =
temp;

Sytem.out.println("x="+x+",y="+y);

面试的时候用。

x= x ^ y;//x = 3 ^ 5;

y= x ^ y;//y = (3^5)^5; y = 3;

x= x ^ y;//x = (3^5)^3; x = 5;

Sytem.out.println("x="+x+",y="+y);

三元运算符

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

如果条件为true,运算后的结果是表达式1;

如果条件为flase,运算后的结果是表达式2;

示例:获取两个数中大数。

int x = 3, y = 4, z;

z = (x>y) ? x:y; //z变量存储的就是两个数的大数。

三元运算符的缺点就是必须要有结果。


---------------------- 黑马程序员
Android培训、期待与您交流! 
----------------------


抱歉!评论已关闭.