简单的入门Android开发和Java语言基础[图]

简单的入门Android开发和Java语言基础[图]
前言:
去年年底到今年年初,我做过简单的智能家居,也实现过一些简单的直连和远程的智能家居。于是就将最简单的通信发布出来:智能家居简单实现—使用ESP8266简单实现和APP通讯
由于这方面的资料少之又少,所以阅读量飙升的很快。也有很多人加了好友问我问题。通过问题我发现,很多都是学硬件的、或是做智能家居方面的学生,基本都不会 Android 开发的。问也有很多问我怎么学 Android 开发的。
很多的人认知还是停留在学习这种软件开发技术需要去培训机构报一个班,或者去学校学习一下相关专业。其实入门基础的软件开发,根本就无需以上的操作。现在网上的资料这么丰富,自己花点心思就可以找到很多很好的资料,然后再系统的学习,完全是可以达到要求的,根本就不需要去花费那些时间和金钱。
鉴于以上的需求,我在这就总结一下如何简单的入门 Android。现在的 Android 开发支持用两种语言,Java 和 Kotlin。Kotlin 是去年才 Google 官方宣布支持 Android 开发的,所以用得并不太广泛,主体还是用 Java 的多。所以这里就选择学习 Java 语言基础,然后再学习 Android 开发基础。
Java 语言基础:

学习 Java 基础,我是过来人了,初学者是建议视频加书本。虽说这里要结合书本,其实我也没买过 Java 基础的书,我是用网站代替的,有一个网站以书面的形式把Java基础展示得还蛮不错的。
JAVA企业面试题精选 OOP:
2.11.是否可以继承String类?
参考答案:
??String类是final类,故不可以继承
2.12.阐述一下static关键字的作用
参考答案:
??static表示”静态”的意思,用来修饰成员变量和成员方法,也可以形成静态代码块.只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区找到它们.因此staitc成员可以在它的任何对象创建之前访问,无需引用任何对象.
??1)修饰成员变量.用static修饰的成员变量不属于对象的数据结构;static变量是属于类的变量,通常可以通过类名来引用static成员;static成员变量和类的信息一起存储在方法区,而不是在堆中,一个类的static成员变量只有”一份”,无论该类创建了多少对象.
??2)修饰成员方法.static修饰的方法则不需要针对某些对象进行操作,其运行结果仅与输入的参数有关,调用时直接用类名引用.由于static在调用时没有具体的对象,因此在static方法中不能对非static成员(对象成员)进行访问.static方法的作用在于提供一些”工具方法”和”工厂方法”等.
??3)static块:属于类的代码块,在类加载期间执行的代码块,只执行一次,可以用来在软件中加载静态资源.
2.13.解释Java关键字的含义及用法
1)abstract
2)extends
3)final/finally
4)implements
5)import
6)instanceof
7)synchronized
8)throw/throws
参考答案:
1)abstract:抽象,修饰类和方法.含有abstract方法的类是抽象类,抽象方法主要是为了让子类继承实现.
2)extends:继承,子类通过继承父类来添加变量或方法,或者覆盖父类的方法;子接口继承父借口来添加方法.
3)final/finally:final用于定义常量.finally用来执行一段代码,不管在前面定义的try语句中是否有异常或运行时错误发生.
4)implements:在类的声明中是可选的,用来指明当前类实现的接口.
5)import:在源文件的开始部分指明后面将要引进的一个类或整个包.
6)instanceof:判断其指向对象的实际类型.
7)synchronized:修饰方法或方法块.防止多个线程同时访问这个类中的synchronized块.
8)throw/throws:throw允许用户抛出一个exception对象或者任何实现throwable的对象.throws用在方法的声明中来说明哪些异常这个方法是不处理的,而是提交到程序的更高一层.
2.14.静态变量和实例变量的区别?
参考答案:
??静态变量也称为类变量,归全类共有,它不依赖于某个对象,可通过类名直接访问,而实例变量必须依存于某一实例,只能通过对象才能访问到它.
2.15.GC是什么?为什么要有GC?
参考答案:
??GC是垃圾回收的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动检测对象是否超过作用域从而达到自动回收内存的目的.Java程序员编程的时候不用考虑变量不用时释放内存,Java虚拟机可以自动判断出并回收垃圾.
2.16.件数垃圾回收的优点和原理.并举例2中回收机制
参考答案:
Java语言中一个显著的特点就是引入了垃圾回收机制,使C++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理.由于有个垃圾回收机制,Java中的对象不再有”作用域”的概念,只有对象的引用才有”作用域”。史记读后感心得体会,垃圾回收可以有效的防止内存泄漏,有效的使用可以使用的内存。
??垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收.
1)增量收集器
??增量收集器把堆栈分为多个域,每次仅从一个域收集垃圾.这会造成较小的应用程序中断.
2)分代收集器
??这种收集器把堆栈分为两个或多个域,用以存放不同寿命的对象.JVM生成的新对象一般放在其中的某个域中.过一段时间,继续存在的对象将获得使用期并转入更长寿命的域中.分代收集器对不同的域使用不同的算法以优化性能.

原文地址:https://www.cnblogs.com/dushublog/p/9418337.html

时间: 2024-10-07 05:24:22

简单的入门Android开发和Java语言基础[图]的相关文章

零基础学Android开发之Java语言学习01-什么是java

一.什么是Java? Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年正式推出. Java分为三个体系: JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版) JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版) JavaME(J2ME)(Jav

Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}

Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPoi 错误信息字符串:java.lang.RuntimeException: Unable to start activity ComponentInfo{com.first/com.first.Game}: java.lang.NullPointerException 一般都会在Activity  o

Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPointerException 错误的集中原因及解决办法

上面那个问题刚解决,就又来一个问题~~~~ 错误信息字符串:java.lang.RuntimeException: Unable to start activity ComponentInfo{...}: java.lang.NullPointerException 网上有不少解决办法 一般都会在Activity  onCreate()方法里的setContentView(XXX)发生此错误,网上查阅了很多原因,大概有四种重要可能的原因: 原因一:xxx的错误,若为R.layout.main 

Android开发之Java必备基础

Java类型系统 Java语言基础数据类型有两种:对象和基本类型(Primitives).Java通过强制使用静态类型来确保类型安全,要求每个变量在使用之前必须先声明. 这种机制和非静态类型的语言有很大差别,非静态语言不要求对变量进行声明.虽然显式类型声明看起来较繁琐,但其有助于编译器对很多编程错误的预防,例如,由于变量名拼写错误导致创建了没有用的变量,调用了不存在的方法等.显式声明可以彻底防止这些错误被生成到运行代码中.关于Java类型系统的详细说明可以在Java语言规范(Java Langu

java--学习java从这里开始:Java语言基础(1)《基础知识篇》--黑马程序员

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- Java语言基础(1) 从这篇日记开始说一些关于java的语言基础知识, 1  Java语言概述 java的创始人——詹姆斯·高斯林(James Gosling) 1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第7一代工作站NeWS系统,但不受重视.后来转至Sun公司,1990年,与Patrick,Na

[JAVA_开课吧资源]第一周 Java语言概述、Java语言基础

主题一 Java语言概述 » JDK介绍及其基本组件 Sun公司利用Java开发工具箱(Java Development Toolkit ,JDK)发布Java的各个版本.JDK由开发和测试Java程序的独立程序集组成,它们都从命令行调用. [请点击查看更多内容 转自51CTO.com] » 使用CMD开发运行Java程序 代码文件的拓展名必须为.java,并且文件名应该与类的类名完全相同.编译一个程序是指使用编译器将源代码翻译成java字节码.下面的命令用来编译源代码文件welcome.jav

day04<Java语言基础+>

Java语言基础(循环结构概述和for语句的格式及其使用) Java语言基础(循环结构for语句的练习之获取数据) Java语言基础(循环结构for语句的练习之求和思想) Java语言基础(循环结构for语句的练习之水仙花) Java语言基础(循环结构for语句的练习之统计思想) Java语言基础(循环结构while语句的格式和基本使用) Java语言基础(循环结构while语句的练习) Java语言基础(循环结构do...while语句的格式和基本使用) Java语言基础(循环结构三种循环语句

day03<Java语言基础+>

Java语言基础(逻辑运算符的基本用法) Java语言基础(逻辑运算符&&和&的区别) Java语言基础(位运算符的基本用法1) Java语言基础(位异或运算符的特点及面试题) Java语言基础(位运算符的基本用法2及面试题) Java语言基础(三元运算符的基本用法) Java语言基础(三元运算符的练习) Java语言基础(键盘录入的基本格式讲解) Java语言基础(键盘录入的练习1) Java语言基础(键盘录入的练习2) Java语言基础(顺序结构语句) Java语言基础(选择结

Java语言基础-多线程-①线程的创建和启动

简单阐释进程和线程 对于进程最直观的感受应该就是“windows任务管理器”中的进程管理: (计算机原理课上的记忆已经快要模糊了,简单理解一下):一个进程就是一个“执行中的程序”,是程序在计算机上的一次运行活动.程序要运行,系统就在内存中为该程序分配一块独立的内存空间,载入程序代码和资源进行执行.程序运行期间该内存空间不能被其他进程直接访问.系统以进程为基本单位进行系统资源的调度和分配.何为线程?线程是进程内一次具体的执行任务.程序的执行具体是通过线程来完成的,所以一个进程中至少有一个线程.回忆