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

黑马程序员 Java 语言基础上

2013-07-23 18:29 295 查看
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------

第二章 Java语言基础
Java语言基础组成

1关键字 2标识符 3注释 4常量和变量 5运算符 6语句

7函数 8数组

关键字:





标识符:

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

(2)组成规则:

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

(3)注意事项:

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

B:不能以数字开头。

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

D:区分大小写。

(4)常用的命名规则:见名知意,驼峰命名

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

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

举例:

com 一级包

cn.itcast
二级包

注意:www.itcast.cn(域名反写)

B:类和接口

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

举例:Demo,Test,Student

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

举例:HelloWorld,StudyJava

C:变量和方法

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

举例:main,name,age

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

举例:showName(),studentName

D:常量

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

举例:PI,STUDENT_MAX_AGE

注释:

(1)就是对程序的解释性文字。

(2)注释的分类:

A:单行注释

a:以//开头,以回车结束。

b:单行注释是可以嵌套的。

B:多行注释

a:以/*开头,以*/结束。

b:多行注释是不可以嵌套的。

C:文档注释(了解)

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

(3)注释的作用:

A:解释程序,提高程序的阅读性。

B:可以调试错误。

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

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

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

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

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

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

作用:1,注解说明

2,调试程序

格式 单行注释://

多行注释: /* */

文档注释: /** */

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

/*
需求:练习一个helloworld程序。

思路:
1,定义一个类,因为java程序都定义类中,java程序都是以类的形式存在的,类的形式其实就是一个字节码文件最终体现。
2,定义一个主函数。为了让该类可以独立运行。
3,因为演示hello world,在控制台上看到该字样,所以需要使用输出语句完成。

步骤:
1,用class关键字来完成类的定义,并起一个阅读性强的类名。
2,主函数:public static void main(String[] args)这时固定格式的。jvm认识。
3,使用输出语句:System.out.println("hello world");

代码仅仅是思想的一种体现形式。

*/
class Demo
{
//定义一个主函数,为了保证程序的独立运行。
publicstatic void main(String[] args)
{
System.out.println("helloworld");//这是输出语句,用于将括号中的数据打印到控制台上,ln可以在数据的结尾处换行。
}
}


常量与变量

常量

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

(2)常量的分类:

A:字面值常量

a:整数常量

12,-23

b:实数常量

12.5,-65.43

c:字符常量

'a','A','0'

d:字符串常量

"hello"

e:布尔常量

true,false

d:空常量(后面讲)

null

B:自定义常量(后面讲)

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

5:进制

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

(2)Java中整数常量的表示

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

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

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

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

(3)进制转换:

A:其他进制到十进制

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

基数:X进制,基数就是X。

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

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

B:十进制到其他进制

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

变量

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

(2)格式:

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

变形格式:

数据类型 变量名;

变量名 = 初始化值;

举例:

方式1: byte b = 10;

方式2: byte b;

b = 10;
理解:变量就如同数学中的未知数。

数据类型

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



(1)分类

基本类型:4类8种。

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

(2)基本类型

整型: 占用字节

byte 1

short 2

int 4

long 8

浮点型:

float 4

double
8

字符型:

char 2

布尔型:

boolean 不明确。可以认为是1个字节。

注意:

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

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

(3)类型转换

A:boolean类型不参与转换。

B:隐式转换(从小到大)

byte,short,char -- int -- long -- float -- double

C:强制转换(从大到小)

格式:

(数据类型)数据;
表达式的数据类型自动提升

所有有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编码与1相加

面试题:

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字节这个范围之内,如果在的话,把这个4做了一个默认的强转,把最后一个字节赋到b中。

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

int x;

int x1 =Integer.MAX_VALUE;

int x2 = 2;

x = x1+x2;

System.out.println(x);

不出错,打印出来是负数。

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

运算符

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

(2)分类:

算术运算符

赋值运算符

关系运算符

逻辑运算符

位运算符

三元运算符

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

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

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

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

%:取得余数

左边如果大于右边,结果是余数。

左边如果小于右边,结果是左边。

左边如果等于右边,结果是0。

正负号跟左边一致。

++/--:

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

单独使用:

在数据的前后,结果一致。

参与操作使用:

如果在数据的后边,数据先操作,在++/--

如果在数据的前边,数据先++/--,在操作。

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

int a = 10;

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

a += 20;

把左边和右边的和赋值给左边。

注意事项:

a = a + 20;

a += 20;

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

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

比如:

short s = 2;

s+=3;

等价于

s = (short)(s+3);

比较运算符

关系运算符

==,!=,>,>=,<,<=

特点:关系运算符的结果都是boolean类型。

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

逻辑运算符

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

&:符号的运算特点:

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补。

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

练习:

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

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

intc ;

c= a;

a= b;

b= c;

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

a= a + b; //a = 3 + 5;a = 8;

b= a - b; //3+5-5 = 3;b = 3;

a= a - b; //3+5-3 = 5;a = 5;

面试的时候用。

a= a ^ b; //a = 3 ^ 5;

b= a ^ b; //b = (3^5)^5; b = 3;

a= a ^ b; //a = (3^5)^3; a = 5;

三元运算符

格式:

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

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

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

示例:

获取两个数中大数。

int x = 3, y = 4, z;

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

----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: