JAVA基础--( JDK、变量、数据类型、类型转换、运算符)

一、 JDK
1、jdk与jre的区别
jdk(java development kit)是开发环境:开发程序时所需要的环境
又称java开发工具包:
包含开发工具和jre
开发工具有:编译器,调试器,javadoc等

jre(java runtime enviroment)jre是运行环境:程序运行所需要的环境
包含jvm和类库
jvm(java虚拟机):使用程序模拟一台计算机,使java程序运行在此程序上
类库:资源库

2、Java语言的一个特点:跨平台。
因为每个平台都有自己版本的jvm,而任何版本的jvm都会执行class文件(字节码文件)

3、java中程序的执行步骤:
1)使用javac将一个.java文件编译成.class文件。
2)使用java可以执行一个*.class文件。
3)每次使用java命令执行一个*.class文件时,都会启动jvm。

4、jdk的环境变量:
(1)在计算机–>属性–>高级系统设置–>高级–>环境变量–>系统变量里

1)新建一个环境变量名为:JAVA_HOME
变量值:D:\Users\Michael\Apps\Java\jdk1.8.0_172,即一堆命令所在的目录bin的父目录

2)新建一个环境变量名为:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar; %JAVA_HOME%\lib\tools.jar;

3)找到系统变量里的path: 追加值。
追加的内容如下:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

4)检查是否配置成功:打开命令提示符界面输入两个命令:
java -version然后回车与javac然后回车,不出现” 不是内部或外部命令………”,即成功

二、变量

1、变量的概念:
就是jvm在内存中开辟的一个存储空间,作用是用来存储数据的。
(1)程序通过操作变量名来操作存储空间。
(2)变量必须定义一种类型。

2、变量的命名规则:
(1)名称由字母,数字,_和$任意组成,数字不能开头
(2)大小写敏感
(3)可以使用汉字,但是不建议使用
(4)驼峰命名法,见名知意
(5)不能使用关键字(java保留字)

3、变量的使用规则:
(1)必须先定义(声明,创建)和初始化
(2)变量可以重复使用,即可以进行多次存取操作。不需要强调类型,但是存储数据时一定要与第一次声明时的类型匹配。
(3)变量的作用域:变量有自己的使用范围。出了范围,变量失效。
作用域:即从定义开始,到所在的大括号的结束符号为止。出了作用域想使用,需要重新定义和初始化。

三、数据类型
(一)java语言中共分两大类型

1、基本数据类型-原始数据类型:
基本数据类型有8种: byte,short,int,long,float,double,char,boolean
重写归纳分类:整数类型:分别为byte,short,int,long;浮点数类型:float,double;字符类型:char;布尔类型:boolean

(1)整数类型:

1)byte(不常用): 也叫字节类型,在内存中占8位二进制,即在内存中占1字节大小的空间,是数据存储的最小单位。范围:-128~127,幂表示:-2^7~2^7-1。

2)short(不常用):也叫短整型。在内存中占16位二进制,2字节大小。范围:-32768~32767,幂表示:-2^15~2^15-1。

3) int(常用):也叫整型。在内存占32位的二进制,4字节大小。范围:
-2147483648~2147483647,幂表示:-2^31~2^31-1。

4) long(常用):也叫长整型。在内存占64位二进制,8字节大小。范围:正负922亿亿左右,幂表示:-2^63~2^63-1。

(2) 浮点数类型:小数类型

1)float: 在内存中占4字节大小,32位二进制范围:-3.403E38~3.403E38

2)double:在内存中占8字节大小,64位二进制范围:-1.79E308~1.79E308

注意:*

1)System.currentTimeMillis();会返回一个long类型数据。此数据位从1970年一月一日0时0分0秒到当前时间的所有毫秒数。

2)浮点数类型的字面量:默认类型为double,即64位的浮点数类型。如果想直接写32位的浮点数,需要在数值后添加f/F。

3)整数类型的字面量:默认类型为int,即32位的整数类型。如果想直接写64位的整数,需要在数值后添加l/L。

4)范围大小从大到小排序:
double>float>long>int>short>byte
精度大小从大到小排序:(int,long,float,double)
long>int>double>float

(3)字符类型:
char在内存中占2字节大小,16位二进制。

赋值特点:

(1)值中,有且只有一个字符

(2)字符必须使用单引号引起来。

另外特点:底层二进制是无符号的整数类型,即 0~2^16-1—>0~65535,所以,赋值时,也可以赋值整数。但是,存入变量空间后,其实是其整数对应的字符。

注意: java语言默认使用的字符集为unicode。

1)unicode字符集:无论字母,还是汉字,都占两个字节大小。 java语言常用的字符:’A’~’Z’ ->65~90,’a’~’z’ ->97~122,’0’~’9’ ->48~57

2)字符集:即二进制与字符的一一对应关系的表

3)java语言中的转义字符:’\’:将特殊字符变成相应意义的字符。

4)java语言中的特殊字符:’\”单引号,’\”’双引号,’\’反斜线,’\t’ 制表符,’\r’换行符(有翻页效果,看不到上一页的数据),’\n’ 回车符。

5)查看字符集中,某一字符对应的整数,将字符赋值给int类型的变量即可。

(4)布尔类型:
用来判断条件是否成立的。在内存中占1字节大小。只有两个值 true/false。
true:表示条件成立,false:表示条件不成立。

2、引用数据类型:
Scanner(开启键盘输入的类型),Math(数学类型),String(字符串类型)等无数种类型。

(1)Math:是一个数学类型,此类型中有很多方法:即功能
如:Math.random():功能是随机产生一个[0,1)区间内的任意浮点数范围:0~0.9999999999999999999999999;语法:double num = Math.random();

(2)Scanner:是一个开启键盘输入的类型,此类型中有很多方法。

1)如:可以扫描键盘输入的整数,浮点数,布尔类型,字符串语法格式分别为:nextInt():扫描整数,nextDouble():扫描浮点数,nextBoolean():扫描布尔类型,next():扫描字符串,nextLine():扫描字符串

2)这些功能都有阻塞程序的效果,当扫描到数据后,并回车,阻塞效果消失,程序继续向下运行。

(3)字符串类型:String
赋值特点:
1)必须使用双引号引起了。

2)双引号内有0个或1个上的字符。

3)在做运算时,+前后只要有一个字符串类型就会做拼接操作,结果是字符串类型。

(4)使用步骤:
1)导包:import java.util.Scanner;

2)新建对象:Scanner scan = new Scanner(System.in);

3)使用功能:
int num = scan.nextInt();
double num = scan.nextDouble();
String str = scan.nextLine();
String name = scan.next();

四、类型转换

1.自动转换(隐式转换)
占内存小的类型变量赋值给占内存大的类型变量,会发生自动转换。
byte–>short(char)–>int–>long–>float–>double
如:byte b = 5;
short b1 = b;//8位的5赋值给16位5,在前面自动添8个0

2、强制转换:
占内存大的类型变量赋值给占内存小的类型变量,需要强制转换。
double->float–>long–>int–>short(char)–byte
语法如下:
(占内存小的变量类型名)变量: int a = 1;byte a1 = (byte)a;注意:有可能出现精度损失。

五、运算符

1、两原一封:
两个原则:

1)不同类型的数据做运算时,一定会先转换成较大范围类型后再运算。

2)byte,short,char这些类型运算时,一定会先转成int类型再运算,结果int类型。

3)封:一定要注意封闭式运算。

2、算术运算符:+,-,*,/,%,++,–。

1)/:
情况1:参与的类型都是整型时,做取整运算,即商n余m, 结果为n
例如:2/3—-商0余2。结果为0

情况2:只要有一个浮点数参与,就会做类似精确运算。

2) %:
取余运算符号,也叫取模运算符号,做除法运算时,商n余m,结果为m。

情况1:参与运算都是整数时,余数是精确值

情况2: 有浮点数参与时,余数不一定是精确值。
注意:取余运算一般被用来判断 某一个数能否被另外一个数整除。被除数为正,取余结果一定为正;被除数为负,取余结果一定为负。

3)++/–:
是自增自减运算符,符号要与变量一起使用。表示变量自动+1,或自动-1;
如:++a/a++/–a/a–;++a/a++:是a=a+1的简写;–a/a–:是a=a-1的简写。

情况1: 即与变量在一起,不与其他任何符号连用时(单独使用),++a、a++、–a、a–,此时,变量一定会+1或-1;

情况2:自增/自减运算与其他符号连用时需要考虑表达式的值。++a/a++/–a/a–整体看成表达式。

口诀:符号在前,先运算再赋值;符号在后,先赋值在运算。

3、关系运算符:>,>=,<,<=,==,!=
用来判断条件是否成立。一般都用在分支结构或循环结构中。

4、逻辑运算符: &&,||,!
当有两个条件以上进行判断是否成立时,需要使用逻辑运算符。即与,或,非。

1) &&(与):用于判断两个条件是否同时成立。全真为真,一假则假。
||(或):用于判断是否有条件成立。一真即真,全假则假。
!: 用于条件的否定。非真即假,非假即真。

2)又称之为短路运算符:
当使用&&或者||时,第一个条件能确定结果时,就不会执行第二个条件,这种行为可视为短路现象。
单个符号的 &(与) |(或) 没有短路现象。

5、 赋值运算符:=
赋值运算,给前面的变量赋值
扩展赋值运算符+=,-=,=,/=,%=。a+=1相当于 a=a+1;a-=b相当于a=a-b;a=b相当于 a= a*b;a/=b相当于 a= a/b;a%=b相当于 a= a%b。

6、字符串拼接符号:+
当+前后,只要有一个是字符串类型,就做拼接操作拼接后的结果是字符串类型。

7、三目运算符(三元运算符):?:
关系运算与逻辑运算统称为条件运算:
变量类型 变量= 条件表达式?值1:值2;
变量类型:需要与值1或值2的类型相同。而值1与值2的类型要么相同,要么就可以自动转换。

猜你喜欢

转载自blog.csdn.net/zd1204473783/article/details/81272057