入门学习java 带你了解什么是Java面向对象
随着IT行业的发展,软件工程师这一职业越来越多地被大家所关注。Java技术具有卓越的通用性、高效性、安全性和平台移植性,它可以跨平台的应用到不同的领域。其中Java面向对象是学习Java必须了解的基础知识之一。
1、什么是对象?
首先要说明一点,对象不是java独有的,事实上对象只是一种概念,一种用于解决问题的程序设计的思想方法。要理解对象就必须得要和面向对象结合起来。在面向对象中把某一类事物所共有的属性和行为抽象出来之后就形成了一个类。而类的一个实际的例子就叫做对象。所以从上可以看出类和对象之间存在着这样一种关系:类是具有共同的属性名称和行为的一组对象的抽象,而对象则是一个类的真实的例子。
类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。类描述了具有相同特性(数据元素、状态变量)和行为(对数据元素、状态变量的操作)的对象集合,如果我需要某个具有一定功能的工具,那么我可自定义这个类,里面有我需要的数据,还有让这个类提供的功能。
对象是具有类类型的变量。类和对象是面向对象编程技术中的**基本的概念。类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。
JAVA是一种面向对象的程序设计语言,对象是由类抽象出来的,所有的问题都是**对象来处理,对象可以操作类的属性和方法来解决问题,所以了解对象的产生、操作和消亡是十分必要的。对象可以认为是在一类事物中抽象出某一个特例,**这个特例来处理这类事物出现的问题,在Java语言中**new操作符来创建对象。
2、对象和对象引用
如下表达式:A a1 = new A;它代表A是类,a1是引用,a1不是对象,new A才是对象,a1引用指向new A这个对象。
在JAVA里,“=”不能被看成是一个赋值语句,它不是在把一个对象赋给另外一个 对象,它的执行过程实质上是将右边对象的地址传给了左边的引用,使得左边的引用指向了右边的对象。JAVA表面上看起来没有指针,但它的引用其实质就是一个指针,引用里面存放的并不是对象,而是该对象的地址,使得该引用指向了对象。
在初始化时,“=”语句左边的是引用,右边new出来的是对象。在后面的左右都是引用的“=”语句时,左右的引用同时指向了右边引用所指向的对象。再所谓实例,其实就是对象的同义词。
3、Java面向对象的特性——继承性
继承是面向对象**显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。
继承是Java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承可以理解为一个对象从另一个对象获取属性的过程。
粤嵌提醒大家,在初学Java的时候,对于对象、类、继承、数组等基础知识一定要去熟悉概念,**好是**实例去理解,可以说如果不熟悉这些概念,后面的学习一定会遇到很多难题。与其返回来复习花费更多的时间,还不如一开始就掌握。
Java课程体系
JavaEE互联网开发工程师课程体系 | |
课程名称 | 时间(天) |
Java1.8 XML&JSON | 22 |
Oracle | 4 |
JDBC | 2 |
Java&Oracle&JDBC项目 | 6 |
HTML | 1 |
CSS | 2 |
JavaScript | 1 |
jQuery | 2 |
BootStrap | 2 |
JDBC强化 | 1.5 |
Servlet(贯穿站内短消息小项目) | 4.5 |
Jsp(贯穿站内短消息小项目) | 2.5 |
Ajax(贯穿站内短消息小项目) | 1.5 |
web加强 | 1 |
项目管理(svn&maven) | 1 |
Java Web项目 | 6 |
JavaEE高级 | 28 |
合计 | 88天(4个月) |
JavaEE高级课程体系 | |
课程名称 | 时间(天) |
J2EE基础加强 | 1.5 |
MyBatis | 4 |
Spring4.X | 5 |
Spring整合MyBatis | 0.5 |
Spring MVC | 3 |
Spring SpringMVC MyBatis整合 | 1 |
Redis | 2 |
Linux | 1 |
JavaEE毕业项目(2~3人一组) 项目中涉及SpringBoot、ActiveMQ、Nginx、Shiro、Zookeeper/Dubbo等主流技术以增强实战经验和就业砝码 |
10~15 |
合计 | 28 |
一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
可以。必须只有一个类名与文件名相同。
垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收
对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。**这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。可以。程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。
什么是强类型,什么是弱类型?哪种更好些?为什么?
强类型是在编译的时候就确定类型的数据,在执行时类型不能更改,而弱类型在执行的时候才会确定类型。没有好不好,二者各有好处,强类型安全,因为它事先已经确定好了,而且效率高。一般用于编译型编程语言,如c ,java,c#,pascal等,弱类型相比而言不安全,在运行的时候容易出现错误,但它灵活,多用于解释型编程语言,如javascript,vb等
什么是Interface?它与Abstract Class有什么区别?
接口(Interface)是用来定义行为规范的,不会有具体实现,而抽象类除定义行为规范外,可以有部分实现,但一个类能实现多个接口,但只能继承一个父类
Java目前前景怎么样?还能继续学吗
目前智联,boss,拉勾网的招聘来看,java的需求量还是排名**,但是这个需求是有前提条件的,就是需要有工作经验,因为你没有工作经验,公司就会认为你没有开发项目的能力,自然不会要你,所以你在学习中,一定要培养自己的经验,什么是经验?就是多多遇到问题,然后解决问题,这就是解决,也可以成为解决问题的能力。有人说Java饱和了,这是绝对不可能的,只能说你现在竞争大,学习的人,质量差了而已。所以很多人说找不到工作。其实他自己啥都不会。这只是针对一线城市而言,相对于二三线城市来说对于实际开发经验是稍微的放松的。
什么叫JIT?什么是NGEN?它们分别有什么限制和好处?
Just In Time 及时编译,它是在程序**次运行的时候才进行编译,而NGEN是所谓的pre-jit,就是说在运行前事先就将生成程序集的本机镜像,并保存到全局缓存中,适用NGEN可以提高程序集的加载和执行速度,因为它可以从本机映像中还原数代码和数据结构,而不必像jit那样动态生成它们。感觉和缓存的道理大同小异。
相关推荐: