绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Java基础概念知识
2019-10-12 15:47:44

简述Java代码从编写到运行的全过程

编写代码: 将需求通过代码实现

编译成字节码文件:将编码后的源程序编译成字节码文件 .class

类装载(classloader): 为运行程序寻找或装载所需要的类

字节码校验(bytecode verifier): 校验class的代码,保证安全性,比如对象类型,对象访问权限

解释(interprter):机器不认识字节码文件,需要被解释器解释后才能运行

运行: 后代码可以在运行环境中进行运行

简述虚拟机的工作机制

同 【简述Java代码从运行到运行的全过程】

简述回收机制

垃圾回收是指JVM通过一些垃圾回收算法回收分配出去且未被使用的内存空间,提高程序运行效率,防止出现内存泄露。由于回收内存空间需要耗费时间,频繁的进行垃圾回收会影响程序的运行效率,因此当出现未被引用的对象,JVM不会立即进行回收,而是选择在合适的时候进行回收。所以在程序中使用system.gc()不会立马进行垃圾回收,而是通知JVM需要进行垃圾回收

简述java安全机制

类装载器结构(class loader): 装载和寻找程序执行所需要的类

class文件检查器(the class file verifier): 虚拟机校验装载的字节码文件的完整性,通过四趟进行校验

趟:检查文件结构,比如检查文件是否符合JavaClass文件的节本结构

第二趟:类型数据的语义检查,例如检查final类有没有被子化等

第三趟:字节码验证,确保操作数栈总是包含正确的数值以及正确的类型。

第四趟:符号引用的验证,由于Java程序是动态链接的,所以Class文件检查器在进行第四次扫描中,必须检查相互引用类之间的兼容性。

内置于JVM的一些安全特性:

a) 类型安全的引用转换

b) 自动垃圾回收机制

c) 空引用检查

d) 结构化的内存访问

Java管理器以及java api

简述java面向对象的三大特性

封装: 将属性私有化只有类内部才能使用,提供对外使用的公有方法,就像常见的java bean,属性都是priavte,set和get方法都是共有的。

为什么不直接将类的属性设置为public供外部使用,因为直接使用的话,无法对属性进行相应的处理再获取,或者有些共有属性只读,不能修改,就不能直接将属性设置为公有供外部使用。

继承: 子类继承父类的方法和属性,并且可以重写父类方法或者可以扩展新方法。java是单继承语言,就是一个子类,只能继承一个父类。java的继承属提高了java的程序复用性和扩展性

多态: 指java不同类的对象可以对同一函数调用进行响应,也就是函数调用可以根据发送对象的不同而采用不同的行为方式。java多态分为运行时多态和编译时多态,编译时多态指方法的重载,即在编译时就可以确定使用哪个方法,运行时多态是指Java在运行时个根据调用方法的实例类型来决定调用哪个方法。所以多态是指在继承的基础上,对父类的引用可以指向子类对象,调用子类重写的方法,就是子类向上转型成父类,但是子类特有的扩展方法无法使用,可以通过强制类型转换实现调用特有方法

方法的按值传递和按引用传递

按值传递:方法的形参类型不是引用类型,则是按值传递,那么调用该方法时,形参将实参拷贝一份进行运算,不会改变实参的值。

按引用传递:方法的形参类型为引用类型,则是按引用传递,那么调用该方法时,传递的是实参的地址,形参的运算会改变实参的值。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

IT知识联盟
创建时间:2019-07-05 15:30:45
分享收集到的大小知识点
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • 王超
    栈主

小栈成员

查看更多
  • ?
  • youou
  • gamebus
  • chinacc
戳我,来吐槽~