零基础学Java,你必须先搞懂这几个问题!

Java作为稳坐当下互联网行业龙头老大位置的热门语言,被广泛应用于Android、网站开发、金融服务、高频金融空间等众多领域。因此,一直以来,Java也是新人入行、跳槽转行者的首要选择。然而零基础学习Java,有没有什么问题需要特别注意一下呢?

零基础学Java,你必须先搞懂这几个问题!

Java语言的特点,Java与c++的区别

Java语言具有简单易学、安全性、可靠性、支持多线编程、编译和解释共存、与平台无关性等特点。Java与c++都是面向对象的语言。两者的区别是,C++的类支持多重继承,而Java的类是单继承的,但接口是多继承的。

Java应用程序和小程序的区别

通俗来讲,applet小程序并没有main方法,而是类似于flash小游戏,主要嵌在浏览器页面上运行(调用init()线程或run来启动),而应用程序则是利用main方法,即主线程启动。

Java面向对象编程的三大特性

Java面向对象编程的三大特性分别是:封装、继承和多态。

封装:即将一个对象的属性私有化,另外提供一些可以被外界访问属性的方法。属性不想被外界访问的情况下,可以不像外界提供访问的方法。不过,一个类若不向外界提供可访问的方法,就毫无意义可言了。

继承:即使用已存类的定义作为基础建立新类。新类的定义不仅增添了新的数据和功能而且可以使用父类的功能,但是不能选择性的继承父类。

多态:指程序中定义的引用变量指向的具体类型和依靠此引用变量发出的方法调用在编程中并不确定。而是在运行过程中才确定。

零基础学Java,你必须先搞懂这几个问题!

面向对象和面向过程的区分

第一,面向对象具有封装、继承、多态性等特点,因此可以设计出低耦合的系统,且易于维护、复用、和扩展。而面向对象的缺点是在性能方面比面向过程要低。

第二,面向过程的优点是性能相比于面向对象要低。但缺点是在维护、复用、扩展方面的作用低于面向对象。

重载和重写的区别

重载:重载发生在同一类中,方法名一定要相同,而参数类、个数、顺序可以不同。

重写:重写发生在父子类中,方法名以及参数列要保证相同,但返回值范围、所抛出的异常范围小于等于父类;而访问修饰符则大于等于父类。

成员变量与局部变量的区别

首先,从语法方面来看。成员变量属于类,而局部变量是方法的参数或者是在方法中定义的变量;而局部变量不同于成员变量,不可被static修饰,也不能被访问控制修饰符所修饰。

其次,从变量在内存中的生存时间方面来看。局部变量会随着方法的调用而自动消失,而成员变量是对的组成部分,会随着对象的创建而存在。

此外,如果成员变量没有被赋予初值,那么将会自动以类型的默认值而赋值,但局部变量则不会自动赋值。

构造方法的特性有哪些

构造方法的特性主要包括:不存在返回值,但不可用void声明构造函数;自动执行生成类的对象,不许调用;名字和类名相同。

什么是方法的返回值?有什么作用?

所谓方法的返回值是指获取到某个方法体中的代码执行后所产生的效果。其作用是,接受出结果以供其他操作使用。

线程有哪些基本状态?

Java线程的基本状态分为NEW(初始状态)、RUNNABLE(运行状态)、BLOCKED(阻塞状态)、WAITING(等待状态)、TIME_WAITING(超时等待状态)、TERMINATED(中止状态)。

Java序列化中如果有些字段不想进行序列,该如何处理?

使用transient关键字修饰是对于不想进行序列化的变量的处理方式。不过transient仅仅只能修饰变量,却不能修饰类和方法。被其修饰的变量值将不会被持久化更不会被恢复。

欢迎Java工程师朋友们加入Java进阶高级架构:809389099


群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,
MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)
合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

猜你喜欢

转载自blog.csdn.net/Java___Architect/article/details/89514295