一、前置知识
1.什么是内存?
内存是一个暂时存储数据的物理结构。其造价昂贵,工艺有上限。
2.java虚拟机默认获取的物理内存是本台计算机内存的1/8
3.bit-->Byte-->KB-->MB-->GB-->TB-->PB-->EB-->ZB-->YB-->BB-->NB-->DB-->CB-->XB(大数据就是在PB级别)
二、变量
1.变量是计算机内存中的一块空间
2.变量组成:变量类型+变量名+值
3.变量定义流程:
声明变量:
数据类型 变量名
赋值:
变量名=值
4.变量必须先赋值后,才能够使用,否则会报错!
三、数据类型
- 基本数据类型
- 整型int&&short&&long&&byte
- 浮点型float&&double
- 布尔boolen
- 字符char
- 字符是两个字节,编码是万国码(Unicode),0~65535
- 引用数据类型
- 字符串String
- 数组
- 对象
十进制 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
---|---|---|---|---|---|---|---|---|
二进制(只能写0和1) |
四、控制台录入
1.import 包名
2.声明一个Scanner变量
如:Scanner input=new Scanner(System.in)
3.使用Scanner中的对应函数(函数类型):
.nextInt();//获得整数
.next();//获得字符串
.nextDouble();//接收小数
.next().charAt();//接收首个字符
and so on
五、选择与分支结构
一)选择结构
1.if结构
if(布尔表达式){
//代码块
}
//例子程序
public class TestBasicIf{
public static void main(String[]args){
//when you have 100 score of java ,you well be gain a iphone max
double score = 99D;
if(score == 100.0){
//execute if's logical codes block
System.out.println("you have an iphone max!")
}
//normal codes
System.out.println("it's over.")
}
}
2.if-else结构
if(布尔表达式){
//code block 1
}else{
//code block 2
}
//normal codes
3.if-else if
一般用于区间判断问题
if(布尔表达式1){
//code block 1
}else if(布尔表达式2){
//code block 2
}else if(布尔表达式3){
//code block 3
}else{
//code block 4
}
//normal codes
4.嵌套if循环(略)
二)分支结构
语法
switch(变量|表达式){
case value1:
logical code block1;
case value2:
logical code block2;
case value3:
logical code block3;
default:
不满足时的逻辑代码
}
可判断的类型:
byte–short–int–char–String
例子
public class TestSwich{
public static void main(String[]args){
// menu of a weak
int weekDay = 5;
switch(weekDay){
case 1:
System.out.println("牛肉面");
case 2:
System.out.println("麻辣香锅");
case 3:
System.out.println("炸酱面");
case 4:
System.out.println("火锅");
case 5:
System.out.println("大盘鸡");
case 6:
System.out.println("海底捞");
case 7:
System.out.println("辟谷");
default:
System.out.println("程序结束");
}
}
}
break;//用来跳出下面的代码
适合做-等值判断
六、循环结构
1.while
适用于解决循环次数明确的情况
while(布尔表达式){
//logical code blocks
//也就是循环操作的部分
//注意迭代:i++
}
先判断,再执行
2.do while
适用于解决循环次数不明确的情况
do{
//logical code blocks
}while(布尔表达式);
执行流程:
先执行一次循环操作之后,再进行布尔表达式的判断
example
import java.util.Scanner
public class TestDoWhile{
public static void main(String[]args){
Scanner input = new Scanner(System.in);
//Tom童鞋写作业,如果完成的不好,则重新抄写一遍,如果抄写得好,则结束
char answer;//初始部分
do{
System.out.println("好好学习,天天向上");//循环操作
System.out.println("老师给予评价:");//循环操作
answer = input.next().charAt(0);//迭代部分
}while(answer != 'y');//循环条件
}
}
3.for
for是可以完全替代while的
语法:
for(初始部分;循环条件;迭代部分){
//循环操作
}
4.流程控制
break;—>跳出switch、循环结构
import java.util.Scanner
public class TestBreak{
public static void main(String[]args){
Scanner input = new Scanner(System.in);
boolean flag = true;
double sum =0D;
for(i=1;i<=5;i++){
System.out.println("请输入第"+i+"位学生的成绩:");
double score = input.nextDouble();
if(score <0||score>100){
flag = false;
break;
}
sum+=score;
}
if(flag){
double average=sum/5.0;
System.out.println("平均分为:"+average);
}
System.out.println("输入有误");
}
}
注意:break跳出整个循环
continue;—>跳出本次循环
当看到continue时,直接去找迭代部分,下面的循环体内的代码不在运行
import java.util.Scanner
public class TestBreak{
public static void main(String[]args){
Scanner input = new Scanner(System.in);
double sum =0D;
for(i=1;i<=5;){
System.out.println("请输入第"+i+"位学生的成绩:");
double score = input.nextDouble();
if(score <0||score>100){
continue;
}
sum+=score;
i++;
}
double average=sum/5.0;
System.out.println("平均分为:"+average);
}
}
5.嵌套循环(略)