Java开发面试宝典(基础知识点汇总-第一季)

目录

javac命令和java命令分别做什么事?

java中的基本数据类型?

面向对象的特征有哪些?

访问修饰符的可访问性?

重写和重载的区别?

抽象类和接口的区别?

成员变量和局部变量的区别?

线程的基本概念,线程基本状态以及状态之间的关系?

构造函数的定义和特性?

java中方法参数的传递?


javac命令和java命令分别做什么事?

java分为两部分:编译和运行

javac负责编译部分,当执行javac时会启动java的编译器程序,对指定扩展名为.java的文件进行编译,生成jvm可以识别的字节码文件(.class文件即为java的运行程序);java负责运行部分,启动jvm,加载运行时所需要的类库,并对.class文件进行执行。

java中的基本数据类型?

整型,浮点型,字符型,布尔型

面向对象的特征有哪些?

  • 抽象:抽象就是抽取,抽取共有的属性和功能,分为过程抽象和数据抽象
  • 封装:目的是保护数据,通过private关键字实现将数据私有化,若要访问被封装的属性和方法,必须创建对外的访问接口
  • 继承:一个类继承另一个类,继承的类称为子类、派生类,被继承的类称为父类、基类、超类,子类可以继承父类的非私有的属性和方法
  • 多态:一种声明多种表现形式,一个接口多种方法。java中包含编译时多态(通过overload实现)和运行时多态(通过override实现)

访问修饰符的可访问性?

位置defaultpublicprivateprotected
同一个类
同一个包内的类 
不同包内子类  
不同包且非子类   

 

重写和重载的区别?

  • 方法重载overload:在同一个类中,方法名相同,参数列表(参数列表包含参数的个数、顺序、类型)不同,和返回值无关。
  • 方法重写override:在子类继承父类的关系中,子类的方法名,参数列表,返回值和父类相同

抽象类和接口的区别?

  • 抽象类和接口都不能被实例化,若要实例化,只能通过子类进行实例化;
  • 抽象类要被子类继承,接口要被类实现 ;
  • 抽象类中可以有抽象方法也可以有实例方法,接口所有的方法都是抽象方法;
  • 抽象类中变量是普通变量,接口里定义的变量只能是公共的静态的变量;
  • 抽象类里的抽象方法必须全部被子类实现,若子类不能全部实现父类的抽象方法,那么该子类只能时是抽象类,同样,实现接口时,若不能实现全部接口方法,那么该类也只能为抽象类;
  • 抽象方法只能声明(不能静态,不能私有),不能实现,接口是设计的结果,抽象类是重构的结果;
  • 接口可继承接口,并可实现多接口。一个类可实现多个接口,抽象类能实现(implements)接口,抽象类是否可继承实体类,前提是实体类要有明确的构造函数。
  • 抽象类语法:abstract class 类名{}
  • 接口关键字interface,

成员变量和局部变量的区别?

  • 成员变量直接定义在类中,局部变量定义在方法中、形参、语句中;
  • 成员变量在这个类中有效,局部变量只在自己所属于的大括号内有效,大括号结束局部变量失去作用域;
  • 成员变量存在于堆内存中,随着对象的产生而存在,消失而消失,局部变量存在于栈内存中,随着所属区域的运行而存在,结束而释放。

线程的基本概念,线程基本状态以及状态之间的关系?

线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程(process)之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

线程的状态转换是线程控制的基础,线程状态可分为5大状态,分别是:生、死、可运行、运行、等待/阻塞/睡眠

  • 新状态:线程对象已经创建,还没在其上调用start()方法;
  • 可运行状态:当线程有资格运行,但调度程序还没把他选定为运行线程时线程所处的状态。当start()方法调用时,线程首先进入可运行状态,在线程运行之后或者从阻塞,等待,睡眠状态回来后,也返回到可运行状态
  • 运行状态:线程进入运行状态的唯一一种方式

构造函数的定义和特性?

要使用面向对象,首先必须构造对象,并指定他们的初始状态,然后通过对象调用方法;

使用构造函数constructor来构造新的实例,他的作用是构造对象并进行初始化。

特性:

  • 构造函数的方法名和类名相同
  • 一个类可以有多个构造函数
  • 构造函数可以有多个参数
  • 构造函数无返回值类型
  • 构造函数的主要作用是完成对类对象的初始化工作
  • 构造函数用new关键字来调用
  • 在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化
  • java中可以不定义构造函数,系统会自动为止生成一个默认构造函数

作用:

  • 对象初始化
  • 引入更多灵活度

java中方法参数的传递?

方法参数只有两种类型:基本数据类型和引用数据类型

在java中,参数的传递只有一种方式,就是按值传递

对于基本数据类型,传递的值就是变量自身的值

对于引用数据类型,传递的值就是对象的引用(方法不能改变传递给他的参数的自身)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值