JAVA基础 —— 变量,选择,循环,数组,输入与输出等

Posted 行稳方能走远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA基础 —— 变量,选择,循环,数组,输入与输出等相关的知识,希望对你有一定的参考价值。

嵌入式学JAVA

嵌入式学习JAVA是为了安卓开发,做UI界面。
早期2009–2012年,塞班系统横行,其所有应用均是采用C++和QT方案。

2009-2017年,嵌入式UI采用的基本上都是C++和QT方案,但现在嵌入式使用安卓趋势越来越多,以及最近鸿蒙系统被讨论的火热,我们现在学习安卓的应用以及安卓中间件是非常有必要的,即便未来鸿蒙发展起来了,也不会有特别大的鸿沟去对接;如果鸿蒙没有发展起来,它的市场占有也一定超过ios(闭源)。所以现在嵌入式的C++和QT方案不提倡去学习了,老产品了。安卓中间件有C++和C语言部分的知识,学完JAVA学习C++会变得简单。未来也可以无缝对接鸿蒙系统的应用层和底层,这就是为什么现在嵌入式要学习JAVA的原因。

安卓(android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。软件语言采用:C/C++(底层)、Java、Kotlin等(应用层)。

Java安卓开发环境搭建并运行HelloWorld

开发环境搭建
开发环境支持JAVA和安卓的开发,开发环境安装包下载路径如下,解压后双击eclipse.exe即可运行。

链接: https://pan.baidu.com/s/1j4vwyLngN5tRxRGK-YUIjA
提取码: 6ysj

运行HelloWorld

在这里插入图片描述

概念引入

JavaSE,EE,ME的区别

具体区别

Java SE(Java Standard Edition)
SE(标准版)主要用于桌面程序,控制台开发(JFC)

Java EE(Java Enterprise Edition)
EE(企业版)企业级开发(JSP,EJB):网站开发和基于 b/s模式的编程

Java ME(Java Mobile Edition)
ME(微缩版)嵌入式开发(手机,小家电):手机软件游戏编程

与过往学习的简单类比

SE 就像第一阶段,C语言,是基础。
EE 就像第二阶段,Linux系统编程,多了一些接口api,主要是Web服务(早期)
ME 就像第三阶段,ARM设备开发对应的api。主要是电子产品,嵌入式设备

JRE

Java运行环境(Java Runtime Environment,简称JRE)是一个软件,JRE可以让计算机系统运行Java应用程序(Java Application)。JRE的内部有一个Java虚拟机(Java Virtual Machine,JVM)以及一些标准的类别函数库(Class Library)。

java之所以跨平台就是因为有JRE,只要有JRE就能运行java。

JDK

JDK(Java Development ToolKit),是Java语言开发工具包。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。

没有JDK的话,无法编译Java程序(指java源码.java文件),如果想只运行Java程序(指class或jar或其它归档文件),要确保已安装相应的JRE。

从这些最简单的东西开始了解java吧。直接记下老师上课讲的例子就够了,都很简单。

编程实操:从C面向过程转变

变量定义与输出

public class Test {
    public static void main(String[] args) { //写完main用ALT+?然后回车就出来了
        System.out.println("hello world");//ln是带有回车符号的print 
                                          //syso快速写出这个函数
        int a;  //变量也是这么定义的
        a = 10;
        int b;
        b = 20;

        System.out.println("a="+a);//sout是这个输出函数的简写,打完回车即可
        System.out.println("b="+b);//C语言要占位符

        int c = a + b;
        System.out.println("c="+c);
        System.out.println("a="+a  +  " b="+b + " c="+c);//想要连起来输出这个加号就是必须的

        //C 语言中:printf("%d + %d = %d",a,b,c);
        System.out.println(a +"+"+ b +"="+ c);//+相当于一个连续符

        //alt shift f10 是选择文件运行,ctrl+alt+f10是快速运行当前选择的文件

        float f = (float) 0.1;  //在这个环境中小数一概认定为double类型,强制类型转换
        double d = 0.2;

        System.out.println("f="+f);
        System.out.println("d="+d);
    }
}

数组的定义与遍历(循环、控制、选择和C完全一样)

public class array {

    public static void main(String[] args) {
        //定义的时候初始化
        //int[] score = {1,2,3};//在定义的时候不允许写数组的大小

        //开辟空间,等待输入
        int[] num = new int[3]; //不要int num[],规范起来

        //也可以分开
        //int []a = null;//java中的null是小写
        //a = new int[3];

        int i;  //数组的遍历也是使用下标
        for (i=0;i<num.length;i++){  //不用再sizeof(num)/sizeof(num[0]),这就是面向对象的魅力
            num[i] = i;
        }
        for(i=0;i<num.length;i++){
            System.out.println(num[i]);// 下标法访问
        }
    }

}

函数的调用:类比c语言结构体的使用

//对比C语言的结构体
/*
struct Test{
    int a;
    char name[128];
    void (*pFunc)();
};

void myPrint()
        {
            printf("陈立臣没我帅\\n");
        }

int main()
        {
               struct Test stu1 = {
                    .a = 10,
                    .name = "小明",
                    .pFunc = myPrint,//对函数指针的赋值只需要函数名即可,函数名就是地址
                };
               stu1.pFunc();//和下面JAVA中不用static很像
        }

 */

public class func {      //整个类就像一个结构体

    int score;          
    int age;             
    int num = 10;        

    static void myPrint()//main函数要想调用的话此处前面要加static
    {                    //否则IDEA也不给你补全,输入函数名的过程还一直报错
        System.out.println("陈立臣没我帅");
    }

    static void putAIn(int a){
        System.out.println("a的值是"+a);
    }


    void addB(int b){    //不写static就能让main函数调用的方法
        b = b + 1;        
        System.out.println("b++的值是"+b);
    }

    public static void main(String[] args) {
        myPrint();          //要用static
        putAIn(100);        //要用static

        func t = new func();//不用static,通过变量来调,类似于C语言,
                           //要使用结构体里的函数指针,就要有一个实际的对象
        t.addB(5);         //调用
    }
}

输入数据:Scanner

import java.util.Scanner; //自己跳出来的包 main函数输入了scanner后ctrl+shift+o

public class input {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);    //这是个类,可以理解为C里面的结构体,类里面有实现的函数供你调用
             //变量  开辟空间     传递参数       //结构体肯定要定义出一个变量来,要开辟空间,从系统的输入来进行浏览
                                                //scanner不认识(嘿嘿,我的IDEA输入完成后自动导入了包),
                                                //如果没导入,通过ctrl+shift+o来入包(包是放在系统中)
        int a;
        String str; //对于java没有char* 这种。char str[128];
        float f;
        double d;

        System.out.println("请输入一个整型数");
        a = sc.nextInt();

        System.out.println("请输入字符串");
        sc.nextLine();  //要把上面的回车吸收了,否则str=回车,直接跳到输入浮点数
        str = sc.nextLine();

        System.out.println("请输入一个浮点数");
        //sc.nextLine();那为什么这里不用吸收回车呢?
        f = sc.nextFloat();

        System.out.println("请再输入一个小数");
        d = sc.nextDouble(); //这里也不用吸收来自上面的回车,难道只需要吸收第一个回车?

        System.out.println(" "+a   +   " "+str  +  " "+f  +  " "+d);
    }                  //显示空格
}

以上是关于JAVA基础 —— 变量,选择,循环,数组,输入与输出等的主要内容,如果未能解决你的问题,请参考以下文章

会一点java,有面向对象编程基础,选择入门unity有很大难度吗?应如何有效的入门?

Java基础学习笔记(基本规范变量定义运算符分支/循环结构函数)

Java 基础 | 循环结构和数组

JAVA编程基础

C++ Primer Plus基础知识部分快速通关

我想要自学java,请教自己java的方法,实用的,非诚勿扰。