Java基础教程-运行机制、基本数据类型、流程控制

2021-04-07  本文已影响0人  DayBreakL

一、Java语言概述

Java语言运行机制及运行过程

  1. java语言的特点
image.png image.png

不同操作系统上的JVM不一样。

理解比喻:TFboys在北京、上海、甘肃开演唱会,不同的操作系统,JVM相当于舞台,在不同地方的舞台不一样,TFboys的唱跳相当于JAVA代码,在不同的舞台上都可以进行这一套唱跳。

image.png
  1. java核心机制
image.png image.png image.png

java环境搭建

image.png

公司中一般不超过8。

image.png image.png

JDK 、JVM、JRE的关系

image.png

官方版

image.png
  1. 下载安装
image.png
  1. 配置环境变量
image.png image.png image.png image.png

开发初体验

image.png
class HelloChina {
   public static void main(String[] args) {
    System.out.println("hello world");
   }
}

注释

image.png image.png image.png image.png

API文档

image.png

java8 API文档

https://www.matools.com/api/java8

image.png

第一个编程总结

image.png

良好的编程风格

image.png

java常用集成开发环境

image.png

二、Java基本语法

关键字和保留字

image.png image.png image.png

标识符

image.png image.png

变量

image.png image.png image.png
  1. 基本数据类型
image.png image.png image.png image.png image.png image.png
  1. 基本数据类型变量间转换
image.png image.png image.png image.png
  1. 基本数据类型与String转换
image.png image.png image.png
  1. 进制与进制之间的转换
image.png image.png

二进制转十进制

如:11000101,1*20+0+1*22+0+0+0+1*2^6=1+4+64=69

image.png

求10111011的十进制:

---->计算机底层都以补码方式存储,所以10111011是补码。最左边是负号位,表示位一个负数。

---->补码-1,反码10111010

---->除符号位,取反,原码 11000101

---->转为10进制 ,1*20+0+1*22+0+0+0+1*2^6=1+4+64=69

---->加上负号,-69

image.png

为什么128强转为byte时,结果为-128?

int 128 ----> 0000 0000 0000 0000 0000 0000 1000 0000

强制转化为byte型 ----> 去掉签名的 24位 ,结果为1000 0000 ,即-128

十进制转二进制

采用除2取余的逆,如:13 。

image.png image.png

二进制转八进制/十六进制

image.png

十六/八进制转二进制

image.png

函数转

image.png

运算符

image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png

1.False x=2,ture y=2

2.False x=2,y=1

3.ture x=2,false y=2—>x=7

4.ture x=2,y=1 —>x=7

image.png image.png image.png image.png image.png image.png image.png image.png image.png

程序流程控制

分支结构
image.png image.png image.png image.png image.png image.png image.png image.png

根据制定月份输出季节:(case条件一类时可以这么输出)

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int month = scan.nextInt();
        switch (month){
        case 3:
        case 4:
        case 5:
            System.out.println("春季");
            break;
        case 6:
        case 7:
        case 8:
            System.out.println("夏季");
            break;
        case 9:
        case 10:
        case 11:
            System.out.println("秋季");
            break;
        case 12:
        case 1:
        case 2:
            System.out.println("冬季");
            break;
        }

    }


}
image.png
循环结构
image.png image.png image.png image.png
public static void main(String[] args) {

        for(int i=1;i <=150;i++){
            System.out.print(i+" ");
            if(i%3==0){
                System.out.print("foo ");
            }
            if(i%5==0){
                System.out.print("biz ");
            }
            if(i%7==0){
                System.out.print("baz ");
            }
            System.out.println();

        }
    }
image.png
public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        System.out.println("请输入两个正整数");
        int positiveIntOne = scan.nextInt();
        int positiveIntTwo = scan.nextInt();
        int min = (positiveIntOne<=positiveIntTwo)? positiveIntTwo:positiveIntOne;
//      定义最大公约数
        int greatestCommonDivision = 0;
        for(int i=1;i<=min;i++){
            if(positiveIntOne%i==0&&positiveIntTwo%i==0){
                greatestCommonDivision = i;
            }
        }
//      定义最小公倍数
        int leastCommonMultiple = 0;
        for(int i=1;i<=positiveIntOne*positiveIntTwo;i++){
            if(i%positiveIntOne==0&&i%positiveIntTwo==0){
                leastCommonMultiple = i;
                break;
            }
        }
        System.out.println("最大公约数:"+greatestCommonDivision);
        System.out.println("最小公约数:"+leastCommonMultiple);
    }
image.png image.png image.png image.png
public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        System.out.println("请输入整数,输入0表示输入结束");
        int positive_count=0;
        int negative_count=0;
        while (true){
            int num = scan.nextInt();
            if (num>0){
                System.out.println("这是一个正数");
                positive_count++;
            }
            if (num<0){
                System.out.println("这是一个负数");
                negative_count++;
            }
            if (num==0){
                System.out.println("程序结束");
                break;
            }

        }
        System.out.println("正数有:"+positive_count+"个,负数有:"+negative_count+"个");

for(;;) 表示一直循环。相当于while (true).

image.png

99乘法表

public static void main(String[] args) {


        for(int i=1;i<=9;i++){//控制行数
            for(int j=1;j<=i;j++){//控制列数
                System.out.print(i+"*"+j+"="+i*j+"\t");

            }
            System.out.println();


        }

100以内的所有质数

public static void main(String[] args) {

        Boolean isFlag =true;//标识i是否被j除尽,除尽就修改其值

        for(int i=2;i<=100;i++){//遍历100以内的数
            for (int j=2;j<=i-1;j++){ //i%j
                if (i%j==0){
                    isFlag = false;
                }
            }
                if(isFlag==true){
                    System.out.print(i+" ");
                }
            //内循环结束重置isFlag
            isFlag=true;

        }
}

质数代码优化

image.png image.png

带标识的break continue

public static void main(String[] args) {

        label:for (int i=1;i<=4;i++){
            for (int j=1;j<=10;j++){
                if (j%4==0){
//                  break;  //默认跳出当前循环,即内层循环
//                  continue;  //默认跳出当前循环的本次循环,即内层循环的本次循环
//                  break label; //跳出指定标识label的一层循环
                    continue label; //跳出指定标识label的一层循环的当次循环
                }
                System.out.print(j);
            }
            System.out.println();
        }
}
image.png

质数代码优化-二


image.png
上一篇 下一篇

猜你喜欢

热点阅读