本篇从所有语言都会学习的基础程序设计阶段入手,主要包括了关键字、数据类型、运算符、流程控制等方面的内容。
前言(了解)
1.Java是什么?
简单来说,Java就是一个编程语言,是一个编程工具。
2.Java可以做什么?
Java本身作为编程语言来说,基本上编程语言可以干的事情,它都可以干。只是针对Java本身的特性来说,更加侧重于在互联网程序的开发领域。常见的互联网程序比如天猫、京东、物流系统、网银系统等,以及服务器后台处理大数据的存储、查询、数据挖掘等也有很多应用。
3.JDK,JRE,JVM?
JDK:程序员使用Java语言编写Java程序所需要的开发工具包(JDK包括JRE,工具类等),是为程序员使用的。
JRE:运行Java程序时需要的运行环境。
JVM:Java虚拟机用来解释执行字节码文件(class文件),Java的跨平台特性就是通过JVM实现的。
4.开发流程
一个完整的Java文件开发过程是:编写、编译、执行。
编译:是指将我们编写的Java源文件翻译成JVM认识的class文件,在这个过程中, javac 编译器会检查我们所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功。
运行:是指将 class文件 交给JVM去运行,此时JVM就会去执行我们编写的程序了。
正文
首先我们得明白程序都是首先由一个个的字符、数字等组成,然后这些字符等,通过某些手段组织起来,最后呈现出我们所看到的程序,比如淘宝、QQ等。
我们可以从Java最基本的结构去了解。
一、基中基
1.基本的结构
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
//以上内容就当个公式先记住吧,简单来说,这就是个程序的入口。
2.关键字
定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
特点:关键字中所有字母都为小写
常用关键字:public 、static、final、 new、this、super等
3.标识符
定义:Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符
命名规则:由数字、字母、下划线、以及$符号组成,注意不能以数字开头,也不能使用Java关键字。
- 命名规范
- 变量名规范:全部小写。
- 类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。
- 方法名规范:首字母小写,后面每个单词首字母大写(小驼峰式)。
4.变量
概念:是内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化,变量是程序中最基本的存储单元。
作用:用于在内存中保存数据
//格式
数据类型 变量名 = 初始化值
int a = 10;
4.1 变量分类:数据类型
对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。
public class Variable {
public static void main(String[] args){
//定义字节型变量
byte b = 100;
System.out.println(b);
//定义短整型变量
short s = 1000;
System.out.println(s);
//定义整型变量
int i = 123456;
System.out.println(i);
//定义长整型变量
long l = 12345678900L;
System.out.println(l);
//定义单精度浮点型变量
float f = 5.5F;
System.out.println(f);
//定义双精度浮点型变量
double d = 8.5;
System.out.println(d);
//定义布尔型变量
boolean bool = false;
System.out.println(bool);
//定义字符型变量
char c = 'A';
System.out.println(c);
}
}
注意:long类型:建议数据后加L表示。float类型:建议数据后加F表示。
4.2 变量分类:声明位置
- 在方法体外,类体内声明的变量称为成员变量。
- 在方法体内部声明的变量称为局部变量。
总结:首先熟悉了Java程序的最基本的结构。第二,了解常量、变量。第三,通过案例熟悉了怎么去写Java代码,常量就是数字(0-9)、字符(a-z、A-Z)这些;变量就是在内存空间里面,分配一段空间,给它取名字为a,然后在给a这个空间里面放一个10。并且用System.out.println();这个语句去输出。
5.数据类型
5.1 分类
- 基本数据类型:整数类型、浮点数类型、字符类型、布尔类型
- 引用数据类型:类、数组、接口
5.2 格式
- 数据类型 变量名 = 数据值;
结合变量部分的按数据类型分类一起学习
总结:基于前5点的学习,应该对一个基本的Java程序有了解了。第一,我们需要写出最基本的结构,来形成代码的基础框架。第二,根据我们需要的类型,去定义数据类型并且为其赋值。第三,使用输出语句,获得我们想要的值。
6.数据类型之间的转换
不同的数据类型之间是可以进行转换的,比如:int类型可以转换成为long类型,同时long类型也可以转换为int类型。
6.1 自动转换
-
自动转换:将取值范围小的类型自动提升为 取值范围大的类型(可以参考5.数据类型)
byte,short、char->int->long->float->double
注意:Boolean类型不能转换为其他任何数据类型
byte,short,char不会相互转换,他们三者在计算时会转换为int类型。
案例
public class Demo{
public static void main(String[] args) {
int i = 1;
byte b = 2;
// byte x = b + i; // 报错
//int类型和byte类型运算,结果是int类型
int j = b + i;
System.out.println(j)
}
}
6.2 强制转换
将取值范围大的类型 强制转换成 取值范围小的类型 。
格式:数据类型 变量名 =(数据类型)被转数据值;
**注意**:可能造成精度降低或者数据溢出。
案例
// double类型数据强制转成int类型,直接去掉小数点。
int i = (int)1.5;
6.3 注意事项
-
float变量定义:注意我们直接写出的浮点数字,默认类型是double,会提示强转。
解决:在浮点数字的后面加F,表示写出的数字类型是float
即:float a =10.1F; -
long类型变量定义:注意我们直接写出的整型数字是int,值过大会提示出错。
解决:在整型数字后面加L,表示写出的数字类型是long类型
即:long b=13516165112L;
7.常用ASCLL码
总结:ASCLL码是我们常用的编码,可以用于比较字符或数字的大小。
二、运算符
简单来说,运算符就是我们在进行程序运算时的符号标志,比如+、-等
1.1 算术运算符
算术运算符:主要是包括加减乘除这些运算符号,就和我们的基础运算一样的。
代码示例
public class Demo{
public static void main(String[] args){
int a = 10;
int b = 20;
int c = a+b;
System.out.println(c);
}
}
1.2 赋值运算符
赋值运算符:是为变量名进行赋值的。
代码示例
public class Demo{
public static void main(String[] args){
int i = 5;
i+=5;//计算方式 i=i+5 变量i先加5,再赋值变量i
System.out.println(i); //输出结果是10
}
}
总结:使用i+=5;
赋值运算符的效果等同于i=i+5
,其他的运算符的效果是一样的。只是在后面进行代码编写过程中会有很好的效果。
1.3 比较运算符
比较运算符:用于比较符号两侧大小的符号,结果为fals或true。
代码示例
public static void main(String[] args) {
System.out.println(1==1);//true
System.out.println(1<2);//true
System.out.println(3>4);//false
System.out.println(3<=4);//true
System.out.println(3>=4);//false
System.out.println(3!=4);//true
}
1.4 逻辑运算符
逻辑运算符:用于逻辑运算比较。
注意:逻辑运算符,是用来连接两个布尔类型结果的运算符,运算结果都是布尔值 true 或者 false
代码示例
public static void main(String[] args) {
System.out.println(true && true);//true
System.out.println(true && false);//false
System.out.println(false && true);//false,右边不计算
System.out.println(false || false);//falase
System.out.println(false || true);//true
System.out.println(true || false);//true,右边不计算
System.out.println(!false);//true
}
1.5、三目运算符
格式
数据类型 变量名 = 布尔类型表达式?结果1:结果2
解释:通过布尔表达式进行判断,如果为true,那么得到结果1;如果为false,那么得到结果2;
代码示例
public static void main(String[] args) {
int i = (1==2 ? 100 : 200);
System.out.println(i);//200
int j = (3<=4 ? 500 : 600);
System.out.println(j);//500
}
三、流程控制
概述
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果有直接的影响。
所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
分类
1.顺序结构
顺序结构:顺序结构按语句出现的顺序执行
代码示例
public static void main(String[] args){
//顺序执行,根据编写的顺序,从上到下运行
System.out.println(1);
System.out.println(2);
System.out.println(3);
}
2.分支结构
分支结构又被称为选择结构,根据条件成立与否来执行操作,
-
if条件语句
格式1: if(关系表达式){ 语句体; }
代码示例1
public static void main(String[] args){
System.out.println("开始");
// 定义两个变量
int a = 10;
int b = 20;
//变量使用if判断
if (a == b){
System.out.println("a等于b");
}
int c = 10;
if(a == c){
System.out.println("a等于c");
}
System.out.println("结束");
}
格式2:
if(关系表达式) {
语句体1;
}else {
语句体2;
}
代码示例2
public static void main(String[] args){
// 判断给定的数据是奇数还是偶数
// 定义变量
int a = 1;
if(a % 2 == 0) {
System.out.println("a是偶数");
} else{
System.out.println("a是奇数");
}
System.out.println("结束");
}
格式3:
if (判断条件1) {
执行语句1;
} else if (判断条件2) {
执行语句2;
}...
}else if (判断条件n) {
执行语句n;
} else {
执行语句n+1;
}
代码示例3
public static void main(String[] args) {
// x和y的关系满足如下:
// x>=3 y = 2x + 1;
//‐1<=x<3 y = 2x;
// x<=‐1 y = 2x – 1;
// 根据给定的x的值,计算出y的值并输出。
// 定义变量
int x = 5;
int y;
if (x>= 3) {
y = 2 * x + 1;
} else if (x >= ‐1 && x < 3) {
y = 2 * x;
} else {
y = 2 * x ‐ 1;
}
System.out.println("y的值是:"+y);
}
-
switch语句
格式: switch(表达式){ case 取值1: 语句1; break; ··· case 取值n: 语句n; break; default : 语句块n+1; break; }
注意:返回值为:int、byte、char、String
case中的取值为常量,比如case 10。
代码示例
public static void main(String[] args) {
//定义变量,判断是星期几
int weekday = 6;
//switch语句实现选择
switch(weekday) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("你输入的数字有误");
break;
}
}
3.循环结构
如果条件满足,它会重复执行某一循环体,直到不满足条件为止
-
while 循环
While(条件表达式/布尔表达式){ 语句块; } 步骤:1循环的条件和操作;2套用while写代码;3检查循环是否能够退出。
public static void main(String[] args) {
//while循环实现打印10次HelloWorld
//定义初始化变量
int i = 1;
//循环条件<=10
while(i<=10){
System.out.println("HelloWorld");
i++;
}
}
-
do…while循环
do{ 循环体 步进表达式 }while(条件表达式);
区别:1.while(){}先判断,如果条件满足,再执行
2.do{}while()先执行一次循环操作,再判断条件,如果条件满足,继续执行循环操作。
代码示例
public static void main(String[] args) {
int x=1;
do {
System.out.println("HelloWorld");
x++;
}while(x<=10);
}
-
for循环
for(定义循环变量;判断循环条件;更新循环变量){ 循环体 }
注意:外层循环控制行数,内层循环控制列数
public static void main(String[] args) {
//1.定义一个初始化变量,记录累加求和,初始值为0
int sum = 0;
//2.利用for循环获取1‐100之间的数字
for (int i = 1; i <= 100; i++) {
//3.判断获取的数组是奇数还是偶数
if(i % 2==0){
//4.如果是偶数就累加求和
sum += i;
}
}
//5.循环结束之后,打印累加结果
System.out.println("sum:"+sum);
}
4.break与continue
①break是用于终止本轮所有循环,即不执行本次循环break后面的语句,直接跳出循环。
②continue是用于终止本次循环,即本次循环continue后面的代码不执行,进行下一次循环的入口判断。