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有很大难度吗?应如何有效的入门?