一 Java语言JDK
Java是一门面向对象编程语言Java分为三个版本
SE(J2SE) 标准版,我们通常用的版本,主要用于桌面应用软件的编程。
EE(J2EE) 企业版,主要用于分布式的网络程序的开发。
ME(J2ME) 微缩版,主要用于移动设备,嵌入式设备上的java应用程序。
J2SE包含于J2EE中,J2ME包含了J2SE的核心类,但添加了一些专有类
可以理解为:J2SE是基础;压缩一点增加一点CLDC等方面的特性就是J2ME;扩充一点,增加一些EJB等企业应用方面的特性就是J2EE。学习java从SE开始。
JDK是java语言的软件开发工具包,主要用于移动设备,嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA运行环境(JVM和java系统类库(Java API))和JAVA工具。JRE是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常
运行Java程序。
JDK的配置环境
鼠标右击“计算机”->属性->左侧高级系统设置->高级->环境变量
系统变量->新建->变量名:JAVA_HOME 变量值:JDK安装目录
系统变量->新建->变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib
系统变量->编辑->变量名:Path 在变量值的最前面加上:%JAVA_HOME%\bin;
测试是否配置成功
命令提示符界面:
java -version
javac
二 Java数据类型
Java的数据类型分为两大类基本数据类型和引用数据类型
基本数据类型有八种
整数类型
byte 1个字节 8位 取值范围-128~127 默认值0
short 2个字节 16位 取值范围-32768~32717 默认值0
int 4个字节 32位 取值范围-2147483648~2147483647 默认值0
long 8个字节 64位 取值范围-2^63~2^63-1 默认值0
浮点数类型(存储带小数点的数字)
float 4个字节 32位 取值范围1.4E-45~3.4028235E38 默认值0.0(与double的区别在于float类型有效小数点只有6~7位)
double 8个字节 64位 取值范围4.9E-324~1.7976931348623157E308 默认值0.0
字符类型
char 存储单个字符,2个字节,16位,unicode编码集,默认值为空(null)。
布尔类型
boolean 1个字节,用于判断真假,false和true,默认值为false。
引用数据类型就比如类,接口,数组类型这些。
基本数据类型与引用数据类型的区别:
基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上。
引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈面的引用指向堆中对象的地址。
三 变量
什么是变量?变量可以理解为代替一个数据的别名,在内存中开辟一个存储空间,用来存储数据。变量是指内存中的一个存储区域,该区域要有自己的名称(变量名)、类型(数据类型),该区域的数据可以在同一数据类的范围内不断变化值
变量在使用前,必须在代码中进行声明,即创建该变量。
数据类型 变量名 = 初始化值
比如
int a = 5;
int b = 6;
int c = a+b;
变量的使用是通过变量名来访问所指向的内存区域中存储的值。
变量名的命名规则:
变量名由字母,数字,_和$组成,但是数字不能开头
比如
abc;
b_;
_b
_3;
3_;-----数字不能开头
3b;-----数字不能开头
尽量做到见名知意,驼峰命名法,可以使用汉字,但是不建议使用。
不能使用Java关键字(Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量)就比如上面的数据类型int,double,这种关键字不能拿来命名。还有,Java语言是区分大小写的。
四 类型转换
基本类型的转换原则:类型转换主要在在 赋值、方法调用、算术运算 三种情况下发生。
从低精度向高精度转换byte 、short、int、long、float、double、char
赋值和方法调用 转换规则:从低位类型到高位类型自动转换;从高位类型到低位类型需要强制类型转换:
(1)布尔型和其它基本数据类型之间不能相互转换;
(2)byte型可以转换为short、int、long、float和double;
(3)short可转换为int、long、float和double;
(4)char可转换为int、long、float和double;
(5)int可转换为long、float和double;
(6)long可转换为float和double;
(7)float可转换为double;
引用类型的转换原则:
基本类型与对应包装类可自动转换,这是自动装箱和折箱的原理;
子类能直接转换为父类或接口类型;
父类转换为子类要 强制类型转换;且在运行时若实际不是对应的对象,会抛出ClassCastException运行时异常。
五 运算符
Java提供了一组运算符丰富的操纵变量。我们可以把所有的Java操作符为以下几组:我们先假设A=10,B=20.
算术运算符
+ A + B = 30
- A - B = -10
* A * B = 200
/ B / A = 2
% B % A = 0
++ A++和++A的相同点都是给A+1,不同点是A++是先参加程序的运行再+1,而++A则是先+1再参加程序的运行。
举个例子来说: A=2; B = A++; 运行后: B = 2,A =3 ;
A=2; B = ++A; 运行后: B = 3,A =3 ;
-- 与上同理
关系运算符
== (A == B) is not true.
!= (A != B) is true.
> (A > B) is not true.
< (A < B) is true.
>= (A >= B) is not true.
<= (A <= B) is true.
位运算符
Java定义了几个位运算符,它可以应用到整数类型,长型,整型,短整型,字符和字节。
位运算符作用于位,并执行逐位操作。假设当a =60和b= 13; 现在以二进制格式,他们将会如下:
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
假设整型变量A=60和变量B=13.
& (A & B) will give 12 which is 0000 1100
| (A | B) will give 61 which is 0011 1101
^ (A ^ B) will give 49 which is 0011 0001
~ (~A ) will give -61 which is 1100 0011
<< A << 2 will give 240 which is 1111 0000
>> A >> 2 will give 15 which is 1111
>>> A >>>2 will give 15 which is 0000 1111
逻辑运算符
假设布尔变量A=ture,变量B=false.
&& (A && B) is false.
|| (A || B) is true.
! !(A && B) is true.
赋值运算符
= += -= *= /= %= <<= >>= &= ^= |=
其它运算符
Java 语言支持一些其他的运算符。
条件运算符 ( ? : ):
条件运算符也被称为三元运算符。该运算符包括三个操作数,用于评估计算布尔表达式。此运算符的目标是确定哪些值应分给该变量。
x = (判断条件)?值1:值2
判断为true则x=值1
判断为false则x=值2
关于运算符的优先级
运算符优先级:从左到右
[],(),++,-- ,! ,~,instanceof ,* ,/ ,% ,+ ,-,<<, >>,>>>,<,>,< =,> =,== ,!= ,& ,^ ,&& ,||,? :