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基本元素详解】相关文章: