面试常问Java基础问题

类是对象的模板,对象是类的实例。类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。类不能直接使用,对象是可以直接使用的。

问:谈谈你对面向过程和面向对象的理解

参考

  • 面向对象主要有三大特性:继承、封装、多态。

  • 面向对象关注对象本身和结果,面向过程注重实现的过程。
    面向对象可以理解成对待每一个问题,都是首先要确定这个问题由几个部分组成,而每一个部分其实就是一个对象。然后再分别设计这些对象,最后得到整个程序。

  • 例如:当提问者与自身谈话时

    以面向过程思想分析,一问一答,如自我介绍、项目经历、实习经历等等,按问题一个一个回答,重点在问答过程上

    以面向对象思想分析,先 new 两个对象出来,一个提问者,一个回答者,在各自的对象里封装了提问(回答)这些自我介绍、项目经历、实习经历的方法,然后根据需要调用方法即可。这样做的好处就是 假设中途提问者追加其他遗漏的问题,如果是面向过程,就需要从头到尾重新回答一遍,强调的是过程,如果是面向对象,只需要把遗漏的信息封装成方法放在对象里,直接调用对象的方法就可以,强调的是对象。

面向对象优缺点

  • 优点:易维护、易复用、易扩展,由于面向对象具有封装、继承、多态的特性,可以设计出低耦合的系统,使系统更加灵活
  • 缺点:性能比面向过程低

面向过程优缺点

  • 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源
    单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发,性能是最重要的元素。
  • 缺点:不像面向对象易维护、易复用、易扩展

问:对面向对象思想的理解

万物皆对象

  • 面向对象这种程序设计模式他将现实世界中的一切事物都看做是对象。例如一个人、一辆车、一只鸟等,都可以是一个对象。
  • 强调从对象出发,以对象为中心,用人类的思维方式来认识和思考问题。
  • 每个对象都具有各自的状态特征(属性)及行为特征(方法),Java通过对象之间行为的交互来解决问题

Java 面向对象的三大特性

  • 封装(核心思想):将对象的属性和行为特征包装到一个程序单元(类)中,把实现细节隐藏起来,通过公用的方法来展现类对外提供的功能,提高了类的内聚性,降低了对象之间的耦合性
  • 继承:对原有类的拓展,指从已有类中派生出新的类,新的类能够吸收已有类的数据属性和行为,并能扩展新的功能
  • 多态:是在继承的基础上,指允许不同类的对象对同一消息做出响应,根据对象创建实例的不同调用不同的方法,本质是编译时和运行时才决定对象的行为
    例如,子类类型的对象可以赋值给父类类型的引用变量,但运行时仍表现子类的行为特征(在内存中运行的,new的实例)。即同一种类型的对象执行同一个方法时可以表现不同的行为特征

延伸——Java语言特点

  • Java 为纯对象的语言
  • 跨平台/移植性(一次编译到处运行)
    了解Java执行过程
    • 最开始编写的 Java 代码是 #¥**.java文件**
    • 在编译(javac命令)后,原有文件会生成一个新的 Java字节码文件(#¥.class)
    • JVM 会执行字节码文件,并把字节码文件转化为机器指令
    • 机器指令可以直接在 CPU 上运行,也就是最终的程序运行
  • 较好的安全性、健壮性
  • 提供很多内置库类,简化开发人员的程序设计工作(如支持多线程、垃圾回收器)
  • 易理解,移除C语言中的指针等复杂结构
  • 高性能、分布式等
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一. Java基础部分 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 9 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 9 7、char型变量中能不能存贮一个中文汉字?为什么? 9 8、用最有效率的方法算出2乘以8等於几? 9 9、请设计一个一百亿的计算器 9 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 11 11、"=="和equals方法究竟有什么区别? 11 12、静态变量和实例变量的区别? 12 13、是否可以从一个static方法内部发出对非static方法的调用? 12 14、Integer与int的区别 13 15、Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 13 16、下面的代码有什么不妥之处? 13 17、请说出作用域public,private,protected,以及不写时的区别 13 18、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 14 19、构造器Constructor是否可被override? 15 20、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法? 15 21、写clone()方法时,通常都有一行代码,是什么? 15 22、面向对象的特征有哪些方面 15 23、java中实现多态的机制是什么? 17 24、abstract class和interface有什么区别? 17 25、abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized? 18 26、什么是内部类?Static Nested Class 和 Inner Class的不同。 19 27、内部类可以引用它的包含类的成员吗?有没有什么限制? 20 28、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 21 29、super.getClass()方法调用 21 30、String是最基本的数据类型吗? 22 31、String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有? 22 32、是否可以继承String类? 23 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 23 34、String 和StringBuffer的区别 23 35、如何把一段逗号分割的字符串转换成一个数组? 24 36、数组有没有length()这个方法? String有没有length()这个方法? 24 37、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"; 24 38、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 25 39、下面的程序代码输出的结果是多少? 25 40、final, finally, finalize的区别。 27 41、运行时异常与一般异常有何异同? 27 42、error和exception有什么区别? 28 43、Java中的异常处理机制的简单原理和应用。 28 等等........

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值