学习内容:
按照小组学习安排
1、了解Java语言概述
2、数据类型和运算符
3、流程控制与数组
———————————————————————————————————————
学习产出:
1、(1)JDK是Java的工具包,是Java的核心;JRE是Java的运行环境,有JRE,Java程序才能运行;JVM是Java虚拟机,是Java跨平台使用的关键
(2)Java运行机制,先编写代码,然后编译器编译,检查语法错误,最后运行程序
2、(1)八种基本数据类型
byte ,short ,int ,long ,float ,double,char,boolean
(2)一个整数在不被定义的前提下,系统默认处理为int类型,int类型上限为2147483648
(3)原始数据 00000000 00000000 00000000 00000000 10000000 00000000 00000000 00000000
强转之后的数据 10000000 00000000 00000000 00000000
10000000 00000000 00000000 00000000目前存储在计算机内部,而计算机内部是以补码形式存储数据
所以10000000 00000000 00000000 00000000现在是补码形式
将补码转换为源码输出就是结果
以上为强转基本原理(大概,笔者写这段的时候也不确定)
强制转换会导致精度损失,有时会如同上面,输出为负数,精度损失极其严重
(4)byte i=50;
System.out.println(i);
虽然按照大容量无法转换为小容量的规定,此行代码不能运行,但byte较为特殊,只要字面值不超出byte的 容量(-128——127),那么就可以运行 听说是sun公司为了方便编译运行而引入的特殊语法机制,short类型也遵循上述机制
(5)在Java中所有的浮点型字面值都会被默认为double类型,如需使用float类型则需在字面之后写上F/f,此方法未发生类型转换,或者在字面值前加上(float),此方法为类型转换
(6 )赋值运算符中,尽管b = b+5和 b += 5的运算结果相同 ,但逻辑不同
扩展赋值运算符不改变运算结果类型,假如定义变量类型为byte,那么不管怎样对这个变量进行
追加或追减或者扩展运算,类型均不改变(编译器在编译时会自动转换为int类型,扩展运算符不受此影响)
但如果运算结果超出定义类型的范围,则会出现类型损失
3、if语句的四种编写方式
第一种
if(布尔表达式){
Java语句;
Java语句;
Java语句;
}
这种方式只有当布尔表达式为true时大括号里的语句才可以运行
第二种
if(布尔表达式){
Java语句;
Java语句;
Java语句;
}
else{
Java语句;
Java语句;
}
布尔表达式为true时,执行if后大括号里的语句
布尔表达式为false时,执行else后大括号里的语句
第三种
第三种:
if(布尔表达式){
java语句;
}
else if(布尔表达式){
java语句;
}
else if(布尔表达式){
java语句;
}
else if(布尔表达式){
java语句;
}
这种方式可写多个else if,第一个布尔表达式为false时,则判断第二个表达式,知道有一个表达式为true
此事便执行这个表达式后的语句
第四种
if(布尔表达式){
java语句;
}
else if(布尔表达式){
java语句;
}
else if(布尔表达式){
java语句;
}
else if(布尔表达式){
java语句;
}…
else{
Java语句;
}
这种方式与第二种类似,当上述if后的布尔表达式均为false时,执行else后的语句
每一个if后的语句也称为一个if的分支,若有一个分支执行,则整个if语句结束
第三第四种方式就是控制语句的嵌套,所有控制语句都可以合理的嵌套
嵌套使用的时候代码格式要注意完美,大括号里的大括号要缩进
if语句的分支里如果只有一条Java语句时,大括号可以省略,但不推荐这么写
例
f(布尔表达式)//这里的if只管第一条Java语句,不管第二条Java语句
第一条Java语句
第二条Java语句
else
第三条Java语句
此串代码编译错误,本例中的if范围只到第一条Java语句,所以这里的else没有if
Scanner使用格式
package 包
import java.util.Scanner ;
public class 类 {
public static void main(String[] args) {
System.out.println(“”);
Scanner scanner = new Scanner(System.in);
float a = scanner.nextFloat();
switch语句属于选择结构
switch语句一般结构
switch (int或string类型的字面值或变量){
case int或string类型的字面值或变量:
java语句;
break ;
case int或string类型的字面值或变量:
java语句;
break ;
case int或string类型的字面值或变量:
java语句;
break ;
case int 或 string 类型的字面值或变量:
java语句;
break ;
default :
java语句;
switch 语句的执行原理:
switch 后面小括号当中的"数据"和case后面的“数据“进行一一匹配,
匹配成功的分支执行。按照自上而下的顺序依次匹配,若字面值或者变量相同就是匹配成功
匹配成功的分支执行,分支当中最后有"break;“语句的话,整个 switch 语句终止。
匹配成功的分支执行,分支当中没有” break;"语句的话,
直接进入下一个分支执行(不进行匹配),这种现象被称为 case 穿透现象。【提供 break;语句可以避免穿透】
所有分支都没有匹配成功,当有 default 的语句话,会执行 default 分支当中的程序
注意: switch 和 case 后面只能是 int 或 string 类型的字面值或变量
但如果是 byte,short,char,则可以写在 switch 和 case 后面,因为他们可以自动转换为 int 类型
case语句可以合并
如 int a = 1;
switch(a){
case 1:case 2:case 3;
System.out.println(“Test code!”);
}
for循环结构
for(初始化表达式;布尔表达式;更新表达式){
Java语句
}
执行原理
初始化表达式、布尔表达式、更新表达式都不是必须的!【但是两个分号是必须的】
初始化表达式最先执行,并且在整个for循环当中只执行一次。
布尔表达式必须是true/false,不能是其它值。
for的执行过程:
先执行初始化表达式,并且该表达式只执行一次,判断布尔表达式的结果是true还是false
布尔表达式true
执行循环体
执行更新表达式
判断布尔表达式为true还是false
为true
执行循环体
执行更新表达式
判断布尔表达式为true还是false
布尔表达式fa1se
循环结束
数组
数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。即:数组就是一组数据
数组的格式
关键字+数组名+[],也可以写成关键字+[]+数组名,
例如:double hens[]表示是double类型的数组,数组名hens
给数组中放入数据,如double hens={3,5,1,3.4,2,50}表示数组的值/元素,依次表示数组的第几个元素
我们可以使用数组名[下表]来访问数组中的元素
比如a[0]表示第一个元素,注意,数组中第一个元素编号为0
遍历数组得到数组的所有元素的和,使用for
数组名.length表示数组的长度,比如在double hens={3,5,1,3.4,2,50}中,数组长度就是6
数组使用方法
使用方式1 动态初始化数组的定义
数据类型+数组名[]=new 数据类型[长度]
例如int a[]=new int[5]————创建了一个数组,名字a,存放5个int
也可以
数据类型+数组名[]
数组名=new 数据类型[长度]
类似于定义变量,可以直接 int b =1;
也可以 int b;
b =1;
使用方式2 静态初始化
语法:数据类型数组名0={元素值,元素值…}
int a[]={2.5,6,7,8,89,90,34,56},
如果知道数组有多少元素,具体值上面的用法相当于: int a[=new int[9];
a[0]=2;a[1]=5;a[2]=6; a[3]=7;a[4]=8;a[5]=89;a[6]=90;a[7]=34;a[8]=56;
例 double hens[ ={3.5,1,3.4,2.50};等价于
double hens[] = new double[6];
hens[0]= 3; hens[1] = 5; hens[2] = 1; hens[3] = 3.4; hens[4]=2; hens[5]= 50
数组使用注意事项和细节
1.数组是多个相同类型数据的组合,实现对这些数据的统一管理
2.数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。
3.数组创建后,如果没有赋值,有默认值
int 0, short 0, byte 0, long 0, float 0.0,double 0.0, char \u0000,boolean false,String null
如 int c[] = new int[3],在未赋值的情况下c[0],c[1],c[2]均为0
4.使用数组的步骤 1.声明数组并开辟空间 2给数组各个元素赋值 3使用数组
5.数组的下标是从0开始的。
6.数组下标必须在指定范围内使用,否则报:下标越界异常
比如 int []arr=new int[5];则有效下标为0-4
7.数组属引用类型,数组型数据是对象(object)
总结:第一次写博客,有些冗长杂乱,以后会不断改进