---------------------- 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培训、期待与您交流! ----------------------