Java基础阶段性总结(一)

一、JDK、JRE和JVM三者的关系

JDK:JDK(Java Development Kit)是针对Java开发人员的产品,是整个Java的核心,包括了Java运行环境JRE、Java开发工具和Java基础类库。 其中的开发工具:编译工具(javac.exe)、打包工具(jar.exe)等。

JRE:JRE(Java Runtime Environment)包括Java虚拟机和Java程序所需要的核心类库等。核心类库主要是java.lang包:包含了运行Java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等。(想要运行开发好的Java程序,计算机只需要安装JRE即可)。

JVM:JVM是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此Java语言实现跨平台

二、数据类型(8种基本数据类型和引用数据类型)

数据类型分为基本数据类型和引用数据类型两类。其中基本数据类型包含:byte、short、int、long、float、double、char、boolean八种,而引用数据类型主要包含:类、接口、数组三类(具体总结以后续相关部分为主)。

数据类型类型名称字节大小范围
整数型byte1-27至27-1(-128至127)
short2-215至215-1
int4-231至231-1
long8-263至263-1
浮点型float4单精度,对小数部分的精度要求不高
double8双精度,精确的小数部分,并且操作值很大
字符型char20到65535
布尔型boolean1真true ,假false

1.基本类型字面值规则(5条)

1)整数字面值为int类型;

int x = 9999;//对
int x = 999999999999;//错,超出int类型范围

2)byte、short、char三种比int小的整数可以用范围内的值直接赋值;

byte b1 = 127;//对
byte b2 = 128;//错,超出byte范围

3)浮点数的字面值是double类型;

double e = 3.14;//对
float e = 3.14;//错,3.14的字面值为double,float为4个字节,存不下double类型的数据

4)字面值后缀LDF;

long x = 999L;//999字面值是int类型,需转成long类型的数据,加字面值后缀L即可变成long类型
float x = 3.14F//3.14字面值是double类型,加上字面值后缀F后变成float类型
double x = 3D;//3字面值为int类型,加后缀D变成double类型

5)进制后缀。

0b -标识这是二进制,如:101
0 -标识这是八进制,如:023(八进制是三位数!!!)
0x -标识这是十六进制,如:0x0001
\u -标识这是char类型,属于十六进制,默认值为\u0000

2.基本类型转换

1)小转大(隐式转换)

byte m = 10;
long n = m;//小转大,右面m是小类型,给左面n大类型赋值,可以直接实现

2)大转小(显式转换)

需要强制类型转换
float x = 9.89F;
int y = (int)x;//大转小,右边x是大类型,给左边小类型y赋值,不能直接赋值,需要添加强制转换代码

3.数据类型转换规则

1)小数据类型能够自动转换成大数据类型;

2)容量大的类型转换成容量小的类型时必须使用强制类型转换;

3)转换过程可能会导致溢出或者损失精度。

int i = 128byte b =byte)i;//打印结果是-128
//byte类型是8位,最大值为127,所以当int强制转换为byte类型时,值128就会溢出变成-128

4)浮点数到整数的转换是通过舍小数得到,而不是四舍五入

flout f = 32.7f;
int a = (int)f;//输出结果为32

5)不能对boolean类型进行类型转换

三、运算符(算数运算符、比较运算符、逻辑运算符、三元运算符、赋值运算符)

运算符种类写法作用
算数运算符+ - * /基本四则运算符
%取余
–(a=a-1)自减(–a:先减1再使用和a–:先使用,再减1)
++(a=a+1)自增
比较运算符<、>、<=、>=基本比较运算符
==比较两个操作数是否相等,或者两个变量地址值是否相同,相等结果为true
!=比较两个操作数是否不等,不等结果为true
逻辑运算符&逻辑与,两边结果同为true结果才是true
&&短路与,同逻辑与原理相同,但只要有一边的结果为false,就会停止执行,并返回false(效率高)
:逻辑或,两边结果只要有一个为true,结果即为true(需要两边的条件都要执行完才可以判断最终的结果)
::短路或,与逻辑或原理相同,但只要有一边为true,就停止执行,结果为true(也许判断完第一个条件就结束执行–效率高)
+字符串连接(String)
非,非真即假,非假即真
三目运算符?: 条件?结果1:结果2条件成立,返回结果1,否则返回结果2
赋值运算符=简单的赋值运算符,如:int a = 3;//将数字3交给a保存
+=、-=符合运算符,如:a += 30;//相当于a = a+30
*=、/=

注:上述表格中,由于排版原因,特注明:逻辑或、短路或符号分别为 | 、|| 。

四、结构嵌套:分支结构(if、switch)、循环结构(嵌套for循环、while、do-while)

1.分支结构

if(条件1){
  代码1
}
//条件1成立,执行代码1;否则直接跳过if结构
if(条件1){
  代码1
}else{
  代码2
}
//如果条件1成立,执行代码1,随后跳if-else嵌套结构;否则跳过代码1,执行完代码2后跳出if-else嵌套结构
if(条件1){
  代码1
}else if(条件2){
  代码2
}else{
  代码3
}	
//如果满足条件1,即条件1的返回值为true,执行代码1,随后跳出if-else嵌套结构;否则跳过此代码块“{代码1}”,执行后续代码(前两个条件均不满足是执else{}里的代码3)
switch(表达式) {
      case1:语句体1;
      break;
      case2:语句体2;
      break;default:语句体n+1;
      break;
}

switch 表达式的取值:byte,short,int,char,JDK5以后可以是枚举,JDK7以后可以是String;case后面跟的是要和表达式进行比较的值; 语句体部分可以是一条或多条语句; break表示中断,结束的意思,可以结束switch语句;default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。

if语句使用场景:

1.针对结果是boolean类型的判断;
2.针对一个范围的判断;
3.针对几个常量值的判断。

switch语句使用场景:

1.针对几个常量值的判断。
注意:switch语句能够实现的,if一定能够实现,反之不成立。

2.循环结构

for (参数初始化1; 判断条件2;更新循环变量4) {
    循环体3		
}	

1.首先执行表达式1,一般是定义变量;
2.执行表达式2,判断是否满足循环条件;
3.满足循环条件,结果为真,执行循环体3;
3.执行表达式4,更新循环变量,该表循环变量的值,再次执行表达式2,若果为真就继续执行,结果为假,终止循环。

while(循环条件){
     循环操作
}
while(循环条件){
     循环操作
}

/*
1.关键字while后的小括号内为循环条件。
2.循环条件是一个布尔表达式,它的值为布尔类型"真"或“假”。
3.大括号内为循环操作,若循环条件一直不满足,将重复执行。
*/

1.首先对循环条件进行判断,如果循环条件为真,则继续执行循环操作;
2.执行完循环操作,再次判断循环条件,如果还为真,则继续执行;
3.如果条件为假,则跳过循环语句,执行后面的语句。

do{
  循环操作
  }while(循环条件)
/*
1.以do开头,关键字while后的小括号内为循环条件。
2.大括号内为循环操作,若循环条件一直不满足,将重复执行,与while不同的是do-while是先循环在判断。
*/

1.首先执行循环操作。
2.执行完毕后,对关键字while后的小括号内的循环条件进行判断。
3.如果结果以为真则继续循环,如果结过为假则跳出循环

多重循环

for (循环条件1){
    循环操作1
for (循环条件2) {
    循环操作2
    }
}
while (循环条件1) {
      循环操作1
while(循环条件2){
      循环操作2
     }
}
do {
   循环操作1
do {
   循环操作2
    }while(循环条件2) ;
    }while(循环条件1);
while(循环条件1) {
    循环操作1
    for(循环条件2) {
    循环操作2
   }
}

以while和for循环嵌套语句为例。其中while为外层循环语句,for为内层循环语句,称为二层嵌套。
执行过程为:外层while执行一次,内能for循环就从头到尾完整执行一遍。

三种循环的区别:
1.for:知道循环数;
2.while、do-while:循环次数不确定;
3.while:先判断,如果不符合条件,不执行代码;
4.do-while:代码至少执行一次,再去判断,符合条件,继续执行。

五、方法(基本概述、形式及其调用)

1.定义及作用

方法又叫函数,就是完成特定功能的代码块。
主要是为了减少代码,实现代码复用;方便后期维护。

2.格式

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2) {
		函数体;
		return 返回值;
}

修饰符:几种权限修饰符(public、protected、private)
返回值类型:用于限定返回值的数据类型
方法名:一个名称,为了方便我们调用方法
参数类型:限定调用方法时传入参数的数据类型
参数名:是一个变量,接收调用方法时传入的参数
方法体:完成功能的代码
return:结束方法以及返回方法指定类型的值
返回值:程序被return带回的结果,返回给调用者

3.注意事项

1)方法不调用不执行;
2)方法与方法是平级关系,不能嵌套定义;
3)方法定义的时候参数之间用逗号隔开;
4)方法调用的时候不用在传递数据类型;
5)如果方法有明确的返回值,一定要有return带回一个值。

六、重载(同名不同参)

1.概述

在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。

2.特点

1)与返回值类型无关,只看方法名和参数列表;
2)在调用时,虚拟机通过参数列表的不同来区分同名方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值