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

目录

  • 嵌入式学JAVA
  • Java安卓开发环境搭建并运行HelloWorld
  • 概念引入
    • JavaSE,EE,ME的区别
    • JRE
    • JDK
  • 编程实操:从C面向过程转变
    • 变量定义与输出
    • 数组的定义与遍历(循环、控制、选择和C完全一样)
    • 函数的调用:类比c语言结构体的使用
    • 输入数据:Scanner

嵌入式学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();          //要用staticputAIn(100);        //要用staticfunc t = new func();//不用static,通过变量来调,类似于C语言,//要使用结构体里的函数指针,就要有一个实际的对象t.addB(5);         //调用}
}

输入数据:Scanner

import java.util.Scanner; //自己跳出来的包 main函数输入了scanner后ctrl+shift+opublic 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);}                  //显示空格
}

导包(波浪线不认识):main函数输入了scanner后ctrl+shift+o自动导包

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu20 编译dpdk错误 -Werror=address-of-packed-member

0x0 在ubuntu20上编译dpdk 18.11报错&#xff0c;gcc 版本为9.3.0&#xff0c;报错如下&#xff1a; error: converting a packed ‘const struct ether_addr’ pointer (alignment 1) to a ‘unaligned_uint16_t’ {aka ‘const short unsigned int’} pointer (alignment 2…

Java 特性

Java有四大特性&#xff1a; 1.封装&#xff1a;隐藏对象的属性和实现细节&#xff0c;仅仅对外公开接口。 封装具有一下优点&#xff1a; 便于使用者正确、方便的使用系统&#xff0c;防止使用者错误修改系统属性&#xff1b;有助于建立各个系统之间的松耦合关系&#xff1b;…

MyBatis 传递多个参数

2019独角兽企业重金招聘Python工程师标准>>> 在MyBatis中可以用以下的方式来传递多个参数 1. 用java.util.Map来传递, Code 如下: public List<User> getAllUsersByUserName(String username, int start, int limit){Map<String,Object> params new H…

Linux stmac网卡代码分析----probe

probe 主要分析一下驱动的主要框架&#xff0c;必要地方细致分析下 文件位置&#xff1a; drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c 从文件的最后看起&#xff1a; module_pci_driver(stmmac_pci_driver); stmmac_pci_driver结构体如下&#xff0c;里面包含了id_…

Java面向对象(1) —— 封装

目录一、封装的概念二、类的封装以及使用三、访问修饰符四、属性封装的实现五、方法封装的实现六、UML类图七、类的构造方法与可重载八、this关键字九、static关键字十、方法重载&#xff1a;overload十一、包&#xff1a;package一、封装的概念 将字段&#xff08;C结构体中的…

linux下源码软件包的安装

我们在使用linux做服务器的时候&#xff0c;因为linux自带的软件包都有些老&#xff0c;不是最新的&#xff0c;但是有时候我们为了使用最新的软件&#xff0c;会使用最新的软件的源码来进行安装。所以我们需要用心去做了...在我们拿到一个软件的源码时&#xff0c;源码一般都是…

react-native 打包apk 并解决 图片 不出现问题

react-native官网打包apk方法&#xff1a;https://reactnative.cn/docs/signed-apk-android/ 解决办法&#xff1a; 找到项目 android目录下 gradle.properties文件 打开加入如下代码&#xff1a; android.enableAapt2false这段代码非常重要 官网缺少 。不然打包apk图片不出现。…

龙芯派2亚克力外壳

0x0 龙芯派自带的亚克力顶板没有风扇的孔位&#xff0c;在长时间运行时亚克力板很烫&#xff0c;因此我设计了个带风扇孔位的亚克力顶板 效果如下&#xff1a; 风扇规格 4X4风扇 供电由龙芯派的GPIO上的5V管脚供电 使用方法 1.某宝搜索亚克力板定制 2. 将本文件发送给店家…

Java面向对象(2) —— 继承

目录前言继承的概念和实现extends关键字super关键字继承过来的属性和方法的权限研究方法重写OverrideObject根类常见方法toString()常把toString()方法重写后应用equals()重写&#xff1a;判断两个对象p1和p2特征是否相同IDEA的重写模板&#xff1a;敲equals可选择的方案之一St…

dpdk18.11 收发包流程分析

pci probe RTE_PMD_REGISTER_PCI(net_ixgbe, rte_ixgbe_pmd); 宏注册了net_ixgbe driver到pci bus rte_ixgbe_pmd 的定义如下 static struct rte_pci_driver rte_ixgbe_pmd {.id_table pci_id_ixgbe_map,.drv_flags RTE_PCI_DRV_NEED_MAPPING | RTE_PCI_DRV_INTR_LSC,.pr…

人工智能芯片龙头之一gti概念股_AI芯片龙头寒武纪IPO价格定了!概念股全名单收好...

寒武纪披露首次公开发行股票并在科创板上市发行公告&#xff0c;确定发行价格为64.39元/股&#xff0c;本次科创板上市发行剔除无效报价和最高报价后剩余报价拟申购总量为3,405,910万股&#xff0c;整体申购倍数为回拨前网下初始发行规模的1327.12倍。战略配售投资者包含中信证…

Java面向对象(3) —— 抽象类、接口、内部类、匿名内部类

目录抽象类&#xff08;abstract&#xff09;抽象类的使用方法抽象类的应用&#xff1a;模板方法模式接口接口的概念接口的特点接口的使用接口实现与抽象类继承的区别接口的多继承内部类概念成员内部类&#xff08;使用较多&#xff09;及应用创建成员内部类的实例在成员内部类…

Kohana和Zencart

2019独角兽企业重金招聘Python工程师标准>>> 我有一个Kohana php框架但是客户求和zencart系统结合。我有一个想法是Kohana重新zencart 有没有人用过&#xff1f;应该没有吧 Kohana 是一款纯 PHP5 的框架&#xff0c;基于 MVC 模式开发&#xff0c; 它的特点就是高安…

Linux stmac网卡代码分析 -- open

Open stmmac_open是在stmmac_netdev_ops结构体里的&#xff0c;这个ops在probe时就已经注册到了net_device结构体里&#xff0c;在网卡对于stmmac_open函数调用的时间我还不确定是否是在网卡link up时 下面看看stmmac_open函数&#xff0c;文件位置&#xff1a; drivers/net/…

g++ linux 编译开栈_方舟编译器编译hello world踩坑全记录

闲来无事&#xff0c;看到方舟编译器完整开源&#xff0c;于是打算拿来试着编译一个东西来&#xff0c;接下来把踩过的一些坑记录一下。参考文档方舟编译器的官网是OpenArkCompiler​www.openarkcompiler.cn但是这个网站上的文档其实是过时的&#xff0c;没有更新过的&#xff…

绘制自定义键盘

先看下微信当中的自带的数字键盘 这种实现方式比较简单&#xff0c;可以直接用inline-block标签&#xff0c;设置每行平均宽度&#xff0c;比如一行要放4个按钮&#xff0c;可以那么宽度就可以设为25%&#xff0c;同时要注意设置css样式为box-sizing: border-box,这样在设置边框…

配置管理小报100329:脚本中ftp命令无法自动输入密码怎么办?

为什么80%的码农都做不了架构师&#xff1f;>>> 知识点&#xff1a; 作者&#xff1a;王&#xff08;zbwangjian.cn&#xff09; 脚本中ftp命令无法自动输入密码怎么办&#xff1f;参考&#xff1a; http://www.linji.cn/post/1620/ http://www.hamo…

linux下使用网易邮箱发邮件

0x0 最近要写个脚本监视系统运行情况&#xff0c;有异常及时通过邮件通知我。 本次测试中使用网易的邮箱作为邮件发送服务器&#xff08;邮箱账号需要开启smtp服务如下图&#xff09;&#xff0c;由于网易邮箱验证比较严格&#xff0c;需要进行一些额外操作才可以正常发送邮件…

ubuntu下网易云音乐适配高分辨率屏幕

0x0 环境 ubuntu20处理器 AMD 我主流工作环境是Ubuntu20&#xff0c;而且很依赖音乐&#xff0c;网易云音乐适配了Ubuntu&#xff0c;而最近我换了个4K屏幕 开机启动网易云音乐后发现界面文字变得很小完全没法看&#xff0c;如下图 分析发现网易云音乐是通过 /opt/netease/ne…

Java基础 —— 异常

目录异常的概念及分类异常的处理try-catch-finally异常抛出throw(s)自定义异常异常的概念及分类 什么是异常 异常是指在程序的运行过程中发生的一些不正常事件。比如&#xff1a;除0溢出、数组下标越界、所要读取的文件不存在。 异常导致的后果 项目JAVA程序的执行过程中如出现…