Bootstrap

java程序的基本要素_Java基本元素详解

Java基本元素详解

生活呆以是甜的,也可以是苦的,但不能是没味的。你可以胜利,也可以失败,但你不能屈服,以下是小编为大家搜索整理了Java基本元素详解,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!

第二章 基本元素

第一章总结:

一.Java平台&JDK&JRE&JVM&API

Java平台:运行在其他平台之上的纯软件平台。Java程序是借助与Java平台去和硬件平台交互的。

Java语言的工作方式: 源文件文件 运行 JDK:包含Java运行的基本类库和开发命令,安装JDK可以进行完整的Java开发。 java.applet:创建Java小程序

java.io:输入/输出

java.net:Java的网络开发

java.util:Java的工具包

java.lang:Java的语言包(不需要导包)

java.swing & java.awt:Java图形化界面的开发

JRE:Java Runtime Environment 包含Java运行的基本类库和一些运行命令,安装JRE可以运行编译好的Java程序。

JVM:包括类装载器、class文件检验器、解释器。Java语言内部运行的核心。 JDK中包含JRE,JRE中又包含JVM,JVM不能单独下载安装。

API:Application Program Interface 应用编程接口及Java的类库 二.环境变量

JAVA_HOME: 指向JDK的安装路径 jdk的路径

classpath:Java在编译和运行时要找的class所在的路径 jdk下lib及lib下tools,jar的路径

系统找字节码的作用:1.先在当前包下找 2. jdk1.6.0_01\jre\lib \rt.jar包下找

3.在classpath中所指向的路径下找。

path:系统执行命令时要搜寻的路径 jdk下bin包的路径

三.Java程序的两种类型: Application:Java应用程序 可以独立运行。

保存 —HelloWorld.java

编译 — javac

javac HelloWorld.java 产生HelloWorld.class 文件

解释执行 — java

java HelloWorld (不要再写上.class)

Applet:Java小程序 被嵌入到Web页中,由Java兼容浏览器控制执行

编写applet类源代码 HelloApplet.java

编译applet类所在的源文件 javac HelloApplet.java

编写嵌入applet的网页文件 appletviewer index.html

作业:当java文件带包时怎么用命令?

1.javac命令: 就像是没有包一样 进到源文件在的那个目录下,然后用javac xxx.java编译

2.java命令:在源文件目录下,建立一个和包名一样的文件夹,把编译好的class文件放入该文件夹中,然后用 java 包名.class文件名

3.javadoc命令:和没有包一样 进到源文件在的那个目录下,然后用javadoc -d help xxx.java 将文档生成到指定的文件夹下

4.jar命令: 编写文本文件(Main-Class:包名.文件名.java) 然后用jar -cvmf 文本文件名.后缀 要生成jar包的名.jar

学习目标: 同ppt

Java其实和英语或汉语的一样,都是由基本元素构成(字母,单词,短语,句子,文章)。Java中标识符、关键字、运算符、数据类型是英语中的字母;变量、常量是单词;表达式是短语;语句是句子;程序是文章。

注意:编程的时候所有的标点符号必须在英文状态下输入。

Java文档及jar包的生成:

Java文档的生成

1.javadoc 源文件.java 生成的文档在当前路径下

2.javadoc –d 生成文档的路径(可以不存在) 源文件.java 生成的文档在指定的路径下

jar包

1.编写一个文本文件 hello.txt 内容:Main-Class:com.HelloTest.java

2.jar –cvmf hello.txt hello.jar

java.lang包下的类使用时不用导入也不用完整包名。其他包下的类使用时要么导入要么使用完整包名。

标识符: 概念:标识符就是用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列,并且标识符不能是关键字。

标识符的组成:

1.由字母、数字、下划线和$组成

2.第一个字符不能是数字

3.区分大小写

4.不能是关键字

5.字母包含英语字符和汉字(Java中采用unicode编码)

6.标识符的长度没有明显规定

练习:3boy _hello $a dog Dog he&test a*b a@#%b length a b 猫猫 (可以使用,但是不推荐,以后不要用)

代码习惯:

1. 类名每个单词以大写字母开始,其他字母小写

2. 接口名同类名

3. 方法名第一个单词小写,其他单词首字母大写,其他字母小写

4. 变量名同方法名

5. 常量所有单词的所有字母大写,而且单词与单词间用下划线连接。

6. 包名所有字母都小写。

关键字:Java已经使用并且有特殊含义。

基本数据类型:

unicode: 两个字节保留一个字符。Java中采用unicode编码(对汉字编码) ASCII: 一个字节保留一个字符。 ASCII码的取值范围小与unicode码。 两种分类:

1. 按类型分:

整型: byte short int long

浮点型: float double

布尔类型:boolean

字符型: char(可以存一个汉字)

2. 按有效位分:

1位: boolean

8位: byte

16位:short char

32位:int float

64位: long double

详细解析:

boolean: 值只有true或false两种 ,与C++中的布尔类型不同

byte: 8位整形 取值范围:

注意:byte b = 122; 涉不涉及122为int类型再强转为byte类型? 不涉及 short:16位整形 取值范围:

int: 32位整形 取值范围:

,给任意一个该范围内的整数都默认为int类型。

注意:

byte b = 128;//错

short s = 32768;//错

long: 64位整形 取值范围:,以“l”或”L”结尾

long l =2147483648; //错 ,其实等号右边是int类型,然后赋值给l的时候再进行自动转换。

long l1 = 2147483648L; //对,等号左边和右边都是long类型。

char: 可以看作是无符号16

位整形,汉字占一个字节,取值范围:

在进行运算的时候会被自动转换成int类型再去

运算。

字符的存储方式:

字符整数编码二进制

char n = 128;//输出乱码;

char a = ‘b’;

char b = 97;

char c = ‘\u0060’;

float: 用于存储小数,取值范围:,必须以“F”或”f”结尾。

float f = 9.9; //错 等号右边的默认为double类型,不能自动转换为float。

float f = (float)9.9; //对 double强制转换为float。

double:用于存储小数,取值范围:,以“D”或”d”结尾。 给任意一个该范围内的小数都默认为double类型。

注意: 整型值隐含boolean数组含义 如:

飞机航班的班期: 1.boolean数组

2.byte s:

对应位上为1表示有班期,为0表示无班期 if(s&2的3次方 != 0)表示周三有航班 if(s&(1 << w)!=0)表示周w有航班

数据类型的存储方式:

1.精确存储:存储的值与其存储的状态一一对应

如 整型

2. 近似存储:所存储的值和存储状态不一定一一对应,有可能一个存储状态对应多个值。

如 浮点型(float double)

比较两个实数是否相同是没有意义的。

类型转换:

自动类型转换:

精度损失:

4. 强制类型转换也可能会引起数据精度的丢失

强制类型转换:

float f = (float) 9.9;

long l = (long) 9;

强制类型转换并不是没有限制的,要求只有类型的性质相同才能转换。 强制类型转换基本用在:

1. 除boolean之外的七种基本类型之间的.相互转换

2. 父子类之间

3. 接口和实现类之间

基本类型运算规则:

如果两个参与运算的数都能够自动转换为int,则结果为int类型,否则结果根据自动类型转换规则,结果为高精度类型。

变量和常量

变量是Java语言中的基本存储单位。变量是在程序运行过程中值可以改变即可以多次赋值。定义一个变量需要一个类型,一个标识符,如果需要,还可以加上一个初值。

编码习惯:变量名第一个单词小写,其他单词首字母大写,其他字母小写

细节:变量的什么可以改变?什么不能改变? 值可以改变,类型不能变 举例:

int i;

int l = 123;

l = 456;

常量:在Java中,使用关键字final来表示。与变量不同,常量在程序运行过程中其值不能改变,只能有一次赋值的过程。

规则:

有final修饰

只能赋一次值 定义的时候赋值或定义完之后赋值

编码习惯:常量所有单词的所有字母大写,而且单词与单词间用下划线连接。 举例: double PI = 3.14;

PI = 3.1415;//错误,常量只能赋一次值 int CONSTANT; CONSTANT = 123;//正确,第一次赋值

运算符:

概念:用来表示各种运算的符号叫做运算符。运算符一定有自己的运算对象。

针对一定的运算符,都有规定的数据类型,同时运算结果也有确定的数据类型。每个运算符都有自己特定的运算规则。当表达式中出现运算符时则必须考虑运算符的优先级。同时,运算符还有结合性。

分类:算术运算符,关系运算符,逻辑运算符,递增递减运算符,位运算符,赋值运算符和复合赋值运算符,条件运算符。

算术运算符:

常见的算术运算有:加,减,乘,除,取模,取正,取负,对应符号分别为:+,-,*,/,%,+,-,其中只有取正或取负是单目运算符(即只有一个操作数),其他的都是双目运算符(即一个运算符对应两个操作数)。

关系运算符:

关系运算符可以用来比较两个数值型数据的大小,也可以比较两个字符型数据的大小。关系运算符的处理结果是逻辑值,若为真用true表示,若为假用false表示。

关系运算符主要有:>、>=、

== 操作元是对象时判断地址是否相同,是基本类型时判断值是否相同。 逻辑运算符:

逻辑运算符运算对象是数值型或字符型等。结果只能是true或false。

&&: 只能是boolean表达式1&&boolean表达式2, 当boolean表达式1为false时,不再执行boolean表达式2,结果为false;当boolean表达式1为true时,执行boolean表达式2,boolean表达式为false,结果为false,否则结果为true。 ||: 只能是boolean表达式1||boolean表达式2,当boolean表达式1为true时,不再执行boolean表达式2,结果为true;当boolean表达式1为false时,执行boolean表达式2,boolean表达式为true,结果为true,否则结果为false。

&: 只能是boolean表达式1&boolean表达式2,不管boolean表达式1的值为true还是false都会执行boolean表达式2,只有当boolean表达式1的值和boolean表达式2的值都为true时结果才为true,否则结果为false。

|: 只能是boolean表达式1&boolean表达式2,不管boolean表达式1的值为true 还是false都会执行boolean表达式2,只有当boolean表达式1的值和boolean表达 式2的值都为false时结果才为false,否则结果为true。

!:只能是!boolean表达式,boolean表达式的值为false,结果为true,boolean表达式为true,结果为false。

自增自减运算符:

自增和自减在前置和后置的时候效果不一样。

举例:

前置自增:int a = 3; int b = ++a;相当于:int a = 3;a = a + 1; int b = a;//a = 4 b = 4

后置自增:int a = 3; int b = a++;相当于:int a = 3; int b = a; a = a +

1;// a = 4 b = 3

进行赋值运算,再进行自加运算。

前置自减:int a = 3; int b = --a;相当于:int a = 3;a = a - 1; int b = a;//a

= 2 b = 2

后置自减:int a = 3; int b = a--;相当于:int a = 3; int b = a; a = a -

1;// a = 2 b = 3

前置自减时,先进行自减运算,再进行赋值运算,后置时,刚好相反,即先

进行赋值运算,再进行自减运算。

位运算符:

正负数在内存中的存储形式:正数:原码,反码,补码都相同

负数:原码的符号位不变,其他各位取反 则得到反码

反码+1 = 补码

正数在内存中用原码表示,负数在内存中用补码表示。

概念:位运算符是一种对运算对象按二进制位进行操作的运算。

特点:1.位运算不允许只操作其中的某一位,而是对整个数据按二进制位进行运算。

2.位运算的对象只能是整型数据(包括字符型),运算结果仍是整形数据。 运算符:

1.按位与运算: 双目运算符 功能:参与运算的两数各对应的二进位相与。

只有对应的两个二进位均为1时,结果位才为1,否则为0;

2.按位或运算: 双目运算符 功能:参与运算的两数各对应的二进位相或。

只有对应的两个二进位有一个或两个为1时,结果位就为1,否则为0;

3.按位异或运算: 双目运算符 功能:参与运算的两数各对应的二进位相异

或。

4.求反运算: 单目运算符 功能:对参与运算的数的各二进位按位求反。

5.左移运算: 双目运算符 功能:把”<

若干位,由“<

如:a << 4 指把a的各二进位向左移动4位。如 a = 00000011(十进制

的3),左移4位后为00110000(十进制48);a左移四位相当于是计算四次a

= a*2;

6. 右移运算: 双目运算符 功能:把“>>”左边的运算数的各二进位全部右

移若干位,”>>”右边的数指定移动的位数。 低位丢弃,高位补移出

位。

byte b = 15; (byte) (b << 1) (byte) (b >> 1)

b: 0000 1111

内存中存储的形式:0000 1111

先扩充为int类型:0000 0000 0000 0000 0000 0000 0000 1111

左移1位: 0000 0000 0000 0000 0000 0000 0001 1110

截取为byte类型: 0001 1110 30

右移1位: 0000 0000 0000 0000 0000 0000 0000 0111

截取为byte类型: 0000 0111 7

b = -15

b: 1000 1111

内存中存储的形式:原码:1000 1111 反码:1111 0000 补码: 1111 0001

先扩充为int类型:1111 1111 1111 1111 1111 1111 1111 0001

补码左移1位:1111 1111 1111 1111 1111 1111 1111 0010

截取为byte类型:1111 0010 反码: 1111 0001 原码: 1000 1110 -30

补码右移1位:1111 1111 1111 1111 1111 1111 1111 1000

截取为byte类型:1111 1000 反码:1111 0111 原码:1000 1000 -8

b = 127

b: 0111 1111

内存中存储的形式:0111 1111

先扩充为int类型:0000 0000 0000 0000 0000 0000 0111 1111

左移1位: 0000 0000 0000 0000 0000 0000 1111 1110

截取为byte类型: 1111 1110 反码:1111 1101 原码:1000 0010 -2 右移1位: 0000 0000 0000 0000 0000 0000 0011 1111

截取为byte类型: 0011 1111 63

b = -127

b: 1111 1111

内存中存储的形式:原码:1111 1111 反码:1000 0000 补码: 1000 0001

先扩充为int类型:1111 1111 1111 1111 1111 1111 1000 0001

补码左移1位:1111 1111 1111 1111 1111 1111 0000 0010

截取为byte类型:0000 0010 2

补码右移1位:1111 1111 1111 1111 1111 1111 1100 0000

截取为byte类型:1100 0000 反码:1011 1111 原码:1100 0000 -64

7. 无符号右移:>>> 移出去的不管,移进来的补0;

注意:移位运算不能把有效位均移出去 。int a<< 33 相当于 a<

赋值运算符:

=

复合赋值运算符:

+= ,-=,*= ,/= ,%=,|=, &=,^=

区分:

== 关系运算符

= 赋值运算符

条件运算符:

唯一的一个三目运算符。

格式:

boolean表达式1?表达式2:表达式3

含义:

先判断boolean表达式1的值,为true时执行表达式2,为false

时执行表达式3。

注意:

boolean表达式1一定会执行,表达式2和表达式3一定并且只能执

行其中的一个。

条件表达式在作非此即彼的条件判断时非常地简洁有效,条件表达式完全可以用以后学的if?else语句替代,但是,这一点是if?else语句所不能及的。

表达式和语句:

表达式是运算符、操作数以及方法调用的序列,用来说明某个计算过程并计算结果,有一个唯一类型的值。如:1+1

Java语言中的语句用于向计算机发出操作指令。一个为实现特定目的的程序应该包含若干语句。

语句 = 表达式+“;”

例如: int area = length * width;

语句:

1. 方法调用语句

input();

2. 表达式语句

i = 3;(赋值语句)

3. 复合语句。

{i= 3;

System.out.println(i);}

4. 控制语句

包括分支、循环、跳转

5. pakage 和 import语句

类:类的全限定名: 包名.类名

package 定义当前类所在的包

import 导入用到API中的类

导入的是类 import java.util.Random;

import java.util.* 表示导入java.util包中的所有类

注释:

a) 单行注释: //

b) 多行注释: /* */

c) 文档注释: /** */

总结: 1.本章讲述了Java标识符与关键字概念,学习的重点是要了解Java的四类八种基

本数据类型使用,以及变量和常量的定义。

2.熟悉几种运算符的使用,熟练运用Java表达式和语句的书写规范。

3.特别需要重点对待的注释,同学们在学习的过程中一定要养成写注释的好习惯。

编程:

1:输入两个数字,输出最大的数字。

2:输入一个年份,判断这年是平年还是闰年,并且输出。

String judge = year%400 == 0 ? "闰年":year % 4 == 0 && year % 100 !=0?"闰年":"

平年";

【Java基本元素详解】相关文章:

;