学习Java已经三年了,如今开始作Android开发,虽然说还在用Java语言但本人如今才真真的意识到不管学什么基础才是最重要的,可能一些刚接触Java或者Android的朋友如今还体会不到基础的重要性,感受能作出实实在在的东西来才是本身真真能力的集中体现。都说IT行业是一个要会学习的行业,由于这个行业的知识更新很快,也许就是这个缘由不少新人很重视新技术的使用方法缺每每忽视了基础。我认为做为技术人员的咱们两样东西很重要,一个是兴趣、二是会学习,如何才能作到这两点呢?java
兴趣不能说是一我的与生俱来的东西,兴趣是能够培养的,好比从本身写的代码中得到成就感。安全
会学习就是学会钓鱼的方法,这样学习效率会提升不少,计算机的世界里面离不开0和1,一样学程序的离不开最基本的课程,这些看似不重要的大学课程不是不重要,而是没有遇到合适的机会,你的经验还不足以领悟这些。在学习和开发Android的过程当中忽然想再系统回顾一下Java SE部分的知识,为后面的道路打下坚实的基础。多线程
1、万事万物皆对象架构
这句话当时在学习Java的时候听起来有道理,当时没有真真的领悟,如今感受总结的很是好,这一句话彻底阐述的面向对象的根本原理。工具
咱们从窗户向外望去:学习
一、每棵树:每一课树均可以当作一个对象。开发工具
二、每一个人:每个人也能够当作一个对象。spa
三、每一个人上班的事件: 能够当作一个对象。操作系统
。。。。。。线程
类则是从某一部分对象中抽象出来的一个群体,这些群体具备某些共同的特征,咱们能够根据咱们所需的某几个特征抽象出咱们本身想要的类。
每一个人都是对象,咱们能够抽象出来人的共同特征,就像咱们给天然界的物质分类同样(小学的天然课是咱们学习面向对象的第一堂课)。
每一个人上班的事件是对象,咱们能够抽象出来上班,上班和上课就是两个类。
2、面向对象的四个基本特征
一、抽象:类是一个抽象的概念,也就是说类是不肯定的,是一个变化的概念,而不是一个实实在在的东西。咱们能够将能够跑的东西分红一类,也能够将既能够跑又能够飞的东西分红另外一类。只要你头脑里面有一个分类的想法就能够分红一类,因此类是抽象的,可是对象是实实在在的哦。因此咱们在定义一个类的时候也能够用接口和抽象类。
二、继承:继承其实就是一种组合关系,好比刚才提到的,能跑、既能跑又能飞,这二者之间就有一种包含关系。
这种包含关系能够分为两种,一种是is-a关系,好比学生is-a人,这种关系就须要用继承 extends 。还有一种关系就是is-a-part(一部分),好比眼睛是脸的一部分,这种关系就要用组合关系,须要用眼睛做为脸的属性注入进去。
三、封装:封装是面向对象和面向过程最大的不一样,你只须要知道你想要的东西,无须知道具体内容和过程。好比你有一个手机须要充电,你此时只须要知道你的手机接口是什么形状(如usb),和电流参数便可无须知作别的,就能够充电。封装能够提升对象的安全程度,不须要暴露的东西私有化,你就无权访问。
四、多态:这个很容易理解,你能够说小明是个学生也能够说小明是我的。学生和人都是类,而且有继承关系,因此说多态是基于继承关系的。
3、Java语言的特色
一、简单:这个对于只学过一种Java语言的朋友来讲就无法说明了,由于没有可比较的参照物,简单和复杂也是一个相对的概念。
二、面向对象:java语言的代码中只有类和配置文件(其实有的配置文件底层会转化成对象,好比Android中的xml文件)。
三、跨平台:不是Java跨平台实际上是Java运行环境(Java虚拟机)跨平台。
四、安全:主要有两个方面,一个是Java不支持指针,二是Java中的对象都有面向对象的封装特性。
五、多线程:Java处理多线程更加简单和便捷。
4、Java运行环境
Java运行环境的架构如图所示,就是咱们从官网上下载的JDK的安装包安装后的结构。
JVM:处于最底层,直接和咱们的操做系统打交道,是Java语言的运行环境,能够将咱们编译的.class文件翻译成不一样机器可以识别的机器码。不一样平台都有所对应的JVM,因此说Java中惟独JVM是不跨平台的,正是由于JVM的这个特色才使Java语言具备跨平台的特色。
Java SE API:实际上是一组提供给用户操做的接口,开发Java语言其实就是操做这些接口。
JDK:开发工具,集成和封装了开发和编译Java源代码的工具。
以上纯属我的的观点,若是有问题或者更好的观点请指出,欢迎分享我的的理解来交流和讨论,共同进步。