【深入浅出】JAVA及安卓入门1-我的失败面试之行

前言                                                                                 

    虽然我已经被华硕研发中心录用,只等将三方协议交给华硕了,但是我还是一个闲不住的人,在学习java的过程中,我还去了诚迈面试,当时只是去试试,看看这些外包公司到底是咋么样的?需要我们这些本科生具备什么样的能力,然后在我完成了他们的笔试题以后,然后参加了他们的面试,面试官可能是临时拉过来面试的吧~~老感觉他不太乐意~~~然后面试官开始问我各种问题,什么多态,什么安卓的源码你有没有看过~~~基本我是被问倒了,要知道我也是刚刚开始自学java和安卓的人啊,你问我这个,让我如何跟你说详细呢?然后他看我写的简历,说你是咋么统计代码量,知道什么是代码量不?我就说按我的理解就是我写的代码啊~他是公司一个人一天有效代码最多就500行,你拿出这样的简历也不怕别人笑话,好吧,面试官果然是大神,不过先工作的面试官,如果我也是工作了几年的人当然也不会犯这样的错误是吗?做人,我总是觉得应该留点后路,对吗?万一以后我们是同事呢?不过,我十分感谢你,让我看到了自己足够的不足,我开始反思自己了,面试官指出你既然知道sqlit3的使用,就该知道这个数据库是咋么实现,是的,我在这里学到了一点,那就是我真的没有深入地去理解我自己所学的东西,应该更加深入地学习,不是吗?

    当时我可能在拿到华硕的offer以后就开始松懈了,这点必须承认,因为我发现我脑海里面已经没有像开始那样地可以用很专业的术语来解释我的理解了,我只有用我自己的言语来解释我的理解,诚然,开始是有点背书的嫌疑吧,不过我还是喜欢去自己慢慢理解,于是我忘记了许多的术语,就剩下一些自己的理解了!

面向对象基础                        

    不得不说,面向对象是我们现在最主流的编程语言了,相对于面向过程的C语言有太多的优势了,面向对象有3大特点,这是经常被考的一个面试题吧,当然我是指技术面哦!当然最受不了的就是面试官故意把我们经常忽视的一个特点挑出来问我们了--抽象,这个是来自C++的一个特性吧,我对C++不是很熟,但是在JAVA和C#中很少会提及这个特点。

   当时我就被问到了什么是抽象,我是这样答的:我们写的代码就是把具体的有共同特点的特性取出来,抽象成一个类! 后来我也查了资料,别人是这样说的:

1、面向对象本身来说是一种抽象能力。

2、数据结构,算法针对机器来抽象。

3、面向对象针对人来抽象。

{

       抽象:

            抽象类定义:不能被实例化的类
            抽象方法:方法的实现由子类决定,在父类中我们将该方法声明为抽象方法
            关键字:abstract
            如果将一个方法声明为抽象方法只有两个结果:
            1,类也必须声明为抽象类,如果一个类包含了抽象方法,那么该类也必须是抽象的。
            2,任何子类必须重写抽象方法,除非子类本身也是抽象的

}

下面介绍三大特点:

(1)继承:

    我的理解:两个类具备一些相同的特性,子类可以有父类的特性,而子类也可以有自己的特性方法这就区别于父类了!(我的想象就是儿子可以继承老子的财产,但儿子也可以自己创造财富,这世界上还没有父亲继承儿子的财产的情况吧~~~)

    术语:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继 承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增 加新的方法使之更适合特殊的需要。

(2)封装:

     我的理解:封装,就是封装啊,把一些你不想暴露给被人看到的东西进行封装,不给其他人直接使用,防止出现错误,要修改的话必须通过get\set函数(我不知道我这样理解是否对,但是面试官觉得我就懂些皮毛,开始问我什么基类的作用~~,好吧,我这个真的没去研究,貌似又是C++的内容,看来我得好好看看C++了)

     术语:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

(3)多态:

    我的理解:其实在做项目中,我用的最少的就是多态,除了arraylist<string>等,我真的不太清楚它是用来干什么的?我理解为类或者是对象的多种状态!面试官从我口中就知道我对这方面没有太多经验,特意让我写一个多态的使用,List<String> = new ArrayList<String>(),当时我脑子是一片空白,不知道我应该如何写的,于是瞎写,他问我知道为什么用list去接不?有什么作用?表示我真的不清楚。至今我还是不太理解多态的真正意图,知道它可以加强代码的扩展性~~

   术语:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

JAVA入门                                                  

   下面我将介绍java的一些入门性的知识,也是作为我自己在学习过程中的笔记好了,不过我的更新可能比较慢,因为我自己也在研究ARM9的,没有很多时间来进行完整的整理,我只是拎出一部分我认为自己在学习中碰到的一些重点提炼出来给大家,我觉得我写的东西应该适合那些有点基础的人吧~~

   首先,我在面对bool变量的时候,java中是boolean这是与C不一样的地方,数组方面的话 int [] a = new int [] {1,2,3,4},申明和初始化也与C有很大的差别哦!然后那些控制流、循环等,我就不再一一说了,这个真的是万变不离其中!

    好了,我今天就写到这里了,找时间我继续写,坚持写出一系列来,同时我也希望大家关注我的微博哦!

MSP王宁斌ASUS

http://weibo.com/samuelwnb

当然也可以发邮箱与我进行联系:[email protected]

时间: 2024-10-10 17:52:08

【深入浅出】JAVA及安卓入门1-我的失败面试之行的相关文章

【深入浅出】JAVA及安卓入门2-无聊唧唧歪歪

接上文的失败面试之行,今天来浅谈JAVA!事实上我们在主流的安卓开发过程使用的更多的是android的API,真正地使用JAVA并不是很多,但一个大厦要建起,最后有一个结实的地基吧! 目前我们最常用的JAVA的API文档是JDKAPI1.6这个版本,这个文档在CSDN上有很多!环境的搭建我就不说了,本文的主要目的是介绍JAVA 首先是我们不注意的东西,而有时会直接在笔试中会考到! OOA:面向对象分析 OOD:面向对象设计 OOP:面向对象编程 所以AOP什么的大家应该知道是什么了吧! 在JAV

热烈庆祝【深入浅出Java虚拟机——入门篇】培训课程在51CTO上线了

我的视频[深入浅出Java虚拟机--入门篇]在51CTO学院上线了. 想了解的可以点击: http://edu.51cto.com/course/course_id-1952.html 课程框架如下: 1.jvm概述 2.java规范和JVM规范简述 3.生活中的数字在计算机中的表示 4.jvm内存划分 5.jvm内存模型 6.jvm调试跟踪参数 7.jvm内存控制上 8.jvm内存控制下 9.jvm中class的装载过程 10.jvm中classloader的设计模式 11.jvm中有关cla

Java学习从入门到精通[转]

Java Learning Path (一).工具篇  一. JDK (Java Development Kit)  JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar).不论什么Java应用服务器实质都是内置了某个版本的JDK.因此掌握JDK是学好Java的第一步.最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA

Java学习从入门到精通(2) [转载]

Java Learning Path(二).书籍篇 学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握.需要有一个循序渐进的阅读过程.我推荐Oreilly出版的Java系列书籍. 在这里我只想补充一点看法,很多人学习Java是从<Thinking in Java>这本书入手的,但是我认为这本书是不适合初学者的.我认为正确的使用这本书的方法应该是作为辅助的读物.<Thinking in Java>并不是在完整的介绍Java的整个体系,而是一种跳跃式的写作方法,是一种类似t

真正的Java学习从入门到精通

http://www.it.com.cn/f/edu/059/6/169189.htm 一. 工具篇JDK (Java Development Kit) JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar).不论什么Java应用服务器实质都是内置了某个版本的JDK.因此掌握JDK是学好Java的第一步.最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK

Java入门-浅析Java学习从入门到精通【转】

一. JDK (Java Development Kit)  JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar).不论什幺Java应用服务器实质都是内置了某个版本的JDK.因此掌握 JDK是学好Java的第一步.最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发 的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等

【Servlet】深入浅出Java重定向和请求转发

import java.text.*; import java.util.*; import java.io.*; import javax.servlet.http.*; import javax.servlet.*; import com.bjpowernode.exam.model.*; import com.bjpowernode.exam.manager.*; public class SearchStudentServlet extends HttpServlet { public

Java学习笔记—第十二章 Java网络编程入门

第十二章  Java网络编程入门 Java提供的三大类网络功能: (1)URL和URLConnection:三大类中最高级的一种,通过URL网络资源表达方式,可以很容易确定网络上数据的位置.利用URL的表示和建立,Java程序可以直接读入网络上所放的数据,或把自己的数据传送到网络的另一端. (2)Socket:又称"套接字",用于描述IP地址和端口(在Internet中,网络中的每台主机都有一个唯一的IP地址,而每台主机又通过提供多个不同端口来提供多种服务).在客户/服务器网络中,当客

Java Web 从入门到精通(部分练习)

<Java Web 从入门到精通>——这是老师给我们的,我发现这里面的东西很全面,也很详细,不愧是老师给我们的.我想这周的作业按照上面的做一些练习. 换行标记符<br>    标记开头<p>结束</p>    居中标记<center> 6个标题标记<h1>至<h6>数字越小,字体越大 无序列表标记<ul>   有序列表标记<ol> 表格标记<table> width border表格边框